Перейти к содержанию
    

Ruslan1

Свой
  • Постов

    2 999
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент Ruslan1


  1. Так Вы уверены что это ответ модема из пина "передача от модема"? То есть эхо он передает, и ничего больше? никакого OK даже на простую команду "AT"? кусок схемы покажите. И вместе с согласователем уровней. Может, из-за CTS? Или он ответ в другой порт передает? Но тогда про эхо непонятно. У меня так сделано.
  2. Спасибо! нашел. Ой как стыдно... как я и говорил: нажал что-то, и сам не понял чего сделал, получается без причины человека обидел. Еще год назад. И ведь если бы меня в личке спросил за что я так, я бы извинился и убрал... Наверное он еще не знает.
  3. Да. UART интерфейс работает независимо от наличия SIM карты. Картинка низкого разрешения, прочитать невозможно. Проверьте схему подключения порта и уровни сигналов осциллографом. Подключите логический анализатор и убедитесь что 1) посылаете корректные команды и 2) что модем действительно не отвечает. P.S. А на каком языке удобней, английском или русском?
  4. Ой, кто здесь? 🙂 В смысле, тут еще и карма и плюсики есть? Сейчас посмотрел в профиле таки да. Меня больше вот что озадачило: я кому-то, как вижу, даже минус поставил (если я правильно понял смысл поля "Reactions Given" и красная стрелка вниз). Можно как-то в своем профиле посмотреть, за что я это поставил, кому и когда? Такое ощущение что что-то нажалось, а я даже не понял что сделал и когда...
  5. Лучше все-таки привести бОльший кусок оригинальной срисованной схемы. Чтобы знать что на входе и как используется выход А по описанному- этот самый ненарисованный мультиплексор меняет сопротивление, соответственно меняет средний уровень (Vcm) выходного сигнала. А нужно это чтобы использовать полный динамический диапазон АЦП в случае, когда входной сигнал может быть несимметричным (разные пик+ и пик- значения относительно его нуля). Например АЦП умеет изменять от 0 до +5V, а нужно сегодня измерять от -1 до +4 V. Ставите Vcm=+1V, и имеете выход от 0 до +5В. А завтра станете измерять от -2.5 до +2.5, так нужно будет Vcm=+2.5V. Про "смещение (логометрическое измерение) берется не то, которое подается на REF, а с мультиплексора": думаю оно подается на вход IN- (а выход операционника на IN+), то есть АЦП измеряет реальный входной сигнал, независимо от этого Vcm. И изменение Vcm не влияет на результат изменеий. Классика. Но подстройка этого Vcm нужна в отдельных аргументированных случаях, обычно в схеме это просто Vcm=Vadc_input_range/2.
  6. Под "простым" я имею в виду существование библиотек, которые можно с приемлемыми усилиями применить в микроконтроллере. И какие-нибудь примеры, где можно посмотреть и спрогнозировать, какие ресурсы понадобятся. Как, например, с протоколами SSL/TLS. Нашел интересный ресурс : oauth.net там есть ссылки на проекты, в том числе Си на Гитхабе для OAuth2. Вроде бы на первый взгляд читабельно и незапутано. Может и не так все сложно.... Upd: Но насколько этот протокол востребован и где прямо сейчас применяется?
  7. Спросили, есть ли простой путь для работы через протокол аутентификации OAuth на embedded устройствах. Нужно отправлять емейлы, больше ничего. например STM32 и FreeRTOS ? Пока что я сказал что нет, но вдруг я неправ. Гугление в интернете ничего хорошего не показало, так и не понял, насколько это популярно и востребовано для email.
  8. Делал устройство с большим диапазоном Vexc, 2-10V, и сопротивление моста может быть 100R-1K. 1. Сделал напряжение Vexc (2-10V). Тут самая хитрость- это малошумящий источник с хорошим КПД (взял DC/DC плюс следящий LDO). 2. поделил его на два (два точных резистора+ операционник), получил Vref в разрешенных для АЦП пределах (1-5 V). 3. Поделил это Vref (опять же два резистора+операционник), получил среднюю точку Vcm для дифф усилителя (типа АД620). Измеряю и Vexc от датчика (поделенный на два), и выход моста(усиленный), и еще знаю что выдал на сенсор полный размах АЦП. Так что могу и падение на проводах компенсировать в неполной схеме подключения, и вся схема Ratiometric: при изменении подаваемого Vexc результат не меняется, получаю то же значение ADC code. Ну и коэффициенты калибровки канала присутствуют в программе обработки, для точной настройки. Но на самом деле можно и не извращаться с Vref, если Vexc постоянное и известное. Обычно в АЦП битов больше, чем шумов от реального сенсора. Реверсил одну систему, чтоб подсмотреть идеи у "мэтров" - так там LT1009 используют (с подстроечными резисторами для калибровки на заводе), и преобразуют в нужные им напряжения через операционники типа OP262, который совсем не такой уж и прецизионный. И ничего кроме выхода моста не измеряют, и АЦП там 16 бит (Vref ~= Vexc), и только 4-проводка. И работает (по отзывам клиентов) отлично. По моему опыту- мало только первую гармонику фильтровать. следующие гармоники тоже фонят сильно. что-то типа картинки ниже. Обязательно софтовые фильтры-пробки нужны.
  9. открыл документы про SIM7022, первый попавшийся "Deutsche Telekom Certification Report" (SIM7022_ Deutsche Telekom_Report_20230419.pdf) там же есть "IMPACTS / POTENTIAL WORKAROUNDS" для этих проблем. Но вот где это в виде ерраты на сайте симкома? Upd: там же немцы положили тесты потребления, похоже близко к тому что я хотел, в разных режимах:
  10. Здравствуйте! напишу тут, чтоб новую тему не открывать. Разрабатываю первое устройство под NB-IoT. Для начала выбрал SIM7020G. Кстати, если новое- то есть что-то покруче у Simcom (глобальное)? В требованиях - один раз в час передавать данные, примерно 100 байт. Питание батарейное. Хочу посчитать потребление NB-IoT части устройства. Есть в интернете какие-то хорошие ссылки-примеры, как посчитать нужную емкость батареи для NB-IoT модема? Самое лучшее что нашел это SIM7020 Series_Low Power Mode_Application Note , вроде бы картинка ясная: Но вот этот таймеры T3412 и T3324: они зависит от конкретной сети (провайдера), или я действительно могу выбрать хоть два часа, и просто будить модем когда мне нужно (раз в час) через пины? в аппноте написано: Это значит, что провайдер может какие-то длительности (записанные мной в регистры) принять, а какие-то отвергнуть? Какие самые нехорошие случаи? 1 секунда? 1 минута? И какие типичные для сетей? Нужен ориентир, для вычисления энергопотребления. Upd: на сайте Симкома уже и нет SIM7020, зато есть SIM7022 и Y7028. Как я вижу, они еще меньше потребляют.
  11. Да, есть и такой подход. У брендов тоже видел (kyowa): сама плата у них полный мост, а всякие частичные мосты они организуют через резисторы во внешней универсальной коробке. На внешней коробке есть механические переключатели для выбора режима (подключения нужных резисторов). Дешево и сердито (хотя нет, совсем не дешево).
  12. Ставлю на то, что таким методом научного тыка Топикстартер еще много раз наткнется на непонятные ему сложности. Методология нужна. Разделить проблему на части (дерево) и доказать что каждая из частей (ветка дерева) работает корректно. А так... Ну, заработало сегодня, а завтра после обеда опять перестало... Непродуктивно и непредсказуемо. Хотя да, для демонстрации бурной деятельности хороший подход, иногда это даже нужнее результата (не сарказм: студентом подрабатывал в ремонте, так театр перед клиентом был не менее важен, чем результат):).
  13. Все-таки подключите многканальный логический анализатор (тот же Saleae), и запишите всю процедуру, от включения и инициализации микросхемы до неполучения от нее ответа. Тут все очень просто: при соблюдении спецификации микросхема должна ответить. Если не отвечает- то проблемы в железе. Под набором сигналов я имею в виду все управляемые пины: SPI, CS, Reset, +5V. Кстати, непонятно в какой момент там питание +5V берется, и как его подача синхронизирована с запиткой МК (3.3V) и стартом коммуникации. Может просто времянку не выдерживаете (задержки между CS и клоком, например, идли между +5V и Reset, или Reset и началом общения), или фаза клока не та. Или микросхема отвечает, но Вы ее ответ не принимаете.
  14. Боюсь что просто WS из RDY счетным триггером (то есть получить скважность 2) и пользовать I2S не вариант, У меня же до 32 байт на каждый DRDY валится (8 каналов x 4 байта), я не уверен что I2S в ESP32 имеет такой режим чтения. Но вот запускать этот триггер от DRDY, и сбрасывать его программно, когда уже прочитал нужное количество байтов в этом пакете данных- это вариант. Это тоже сработало бы. Проще и гибче, чем аппаратный счетчик, но требует еще один пин есп32 занимать.
  15. Думаю не врут, и I2S там есть. Просто мне I2S не подходит, там WS длинный, не меняется во время передачи данных от одного канала. С моим пульсом DRDY оно не будет работать. Да, в ЕСП32 есть разные режимы I2S. Вначале тоже думал: раз I2S есть то получится какой-то режим подобрать, но не получилось. Ну и у меня не два канала на один период WS, как думает этот I2S. Upd: Еще одно. Рабочей версией было изменение схемы: добавить железячное удлинение DRDY на следующее нужное количество клоков, и использовать его как CS для слейва SPI. Но удалось обойтись без аппаратных костылей, чисто программными.
  16. В стм32 решением стал именно аппаратный SAI (выбрал камень где он есть), потому я его тут так назвал. В есп32 ничего похожего не нашлось, пришлось свой огород городить. В документации АЦП интерфейс никак не называется, чтобы никто не спорил :) Однонаправленный стрим от АЦП в микроконтроллер (DCLK , DOUT и DRDY это выходы из АЦП), данные нужно начинать читать после DRDY. Проще некуда, но требует быстроты реакции. Тут как ни крути- нужно по DRDY начинать принимать, или фиксировать этот момент (если парсить бесконечно принимаемый поток битов).
  17. Я бы с удовольствием про ESP32 пообщался, сейчас это рабочая лошадка #2 в моих разработках, но, подозреваю, это не в теме топика :) Единственное что тут замечу из его недостатков, критичных для меня, это про упомянутую реакцию на прерывания. Коротко: Если кому-то нужно реагировать быстрее чам 350 ns - то врукопашную на ЕСП32 не получится. Длинно: Прерывания нужны, когда нужно сделать интерфейс, отсутствующий в ЕСП32. Для меня это был SAI для чтения потока из АЦП. Для его эмуляции нужен SPI, запускаемый в нужный момент по внешнему сигналу. На отдельном ядре поллингом удалось получилось время реакции, плавающее от 150 до 350 ns. Это ограничивает частоту SPI (350ns должно быть меньше половины клока, чтобы все работало). А частота SPI ограничивает возможности АЦП.
  18. Вот не надо по больной мозоли.... ESP32 имеет очень мало пинов. приходится обвешиваться всякими експандерами. ESP32 очень тормознуто реагирует на прерывания. Даже когда отдельное ядро на это выделил для поллинга. Дебаггер для ESP32 (чтобы пошагово ходить и смотреть) нужно делать, и выделять еще пины для JTAG, а в STM32 все уже есть в кейле и работает через ст-линк. Если в ESP32 cделать много шагов в сторону и упереться в коре паник, то отлаживаться приходится методом научного тыка (потому как дебаггер не организовал). Если нужно больше памяти- то только через сериал, и про перформанс такого решения думать не хочется. Конечно, есть и куча плюсов у ESP32. И начинающему я бы именно его посоветовал. Но он не лучше чем стм32, он для другого. Использую и есп32 и стм32, так как они не взаимозаменяемые.
  19. Вроде разобрался. Зачем-то в лоб Баттерворта подставил, вместо того чтобы по нужным характеристикам построить оптимальный IIR фильтр с помощью встроенных функций.
  20. Здравствуйте! Есть задачка фильтровать сигнал с полосой частот как один фильтр 1/3 октавы, и дополнительно - организовать канал с полосой пропускания несколько октав. семплрейт- 1000 SPS, третьоктавные частоты - от 1Гц до 398 Гц (27 элементарных 1/3-октавных каналов) С одиночными фильтрами вопросов нет- полосовые фильтры IIR 6-го и 8-го порядка покрывают нужный диапазон октав (1-500 Гц), и я вписываюсь в заданные в ISO лимиты по полосе (см. картинку ниже для фильтра на частоту 1 Гц). Но вот с полосовым фильтором на переменное число октав что-то не выходит так просто. Хочу "всего-то" сделать отдельные HPF и LPF на каждую из октав, и комбинировать из них нужный мне полосовой фильтр. То есть что-то типа как на картинке ниже: Пробую сделать Баттерворта, но получаю что-то непотребное: для низкого порядка не могу достичь нужного спада, а для высокого порядка получаю артефакты: [b1,a1] = butter(filtOrder,freq/(Fs/2),'high'); это фильтр 6-го порядка а это 8-го порядка если уменьшаю семплрейт с 1000 до 200, то он становится похож на фильтр: Это что-то я не так считаю? Может как-то можно получить нормальные крутые HPF фильтры на 1 Гц, для 1000 SPS? Думаю, если разберусь с HPF, то и c LPF будет ясно что делать.
  21. Что-то не так. Одно из: - Вы неверно оцениваете ситуацию (измерение идет не так, как Вы думаете) - неисправность оборудования. - ошибка или неверные настройки программного обеспечения, как родного драйвера, так и пользовательской части. Пишите/звоните производителю или представителю производителя.
  22. то есть делали по такой схеме: 1. Измерение входа#1 2. измерение закороченного входа 3. Измерение входа#2 И видели зависимость величины, измеренной на входе#2, от величины, установленной на входе#1 ?
  23. д-да, та тема и открыла глаза, что может что-то можно механизировать в этом направлении. Но там сложно спросили, и герберы и прочее им нужно. Мне проще нужно, соответсвенно может и средства есть еще какие-то. PCAD я уже лет 10 не использовал, не думаю что он сумеет работать даже на Вин7, хотя вдруг. (Upd: почитал больше, пишут что PCAD работает и на W7 и даже на W10)
  24. Нужно восстановить схему по плате. Если в рукопашную, то вижу, что справлюсь за 2-3 дня. Есть ли какие-то программные средства, которые помогут это сделать быстрее? Или процесс их поиска и изучения займет больше времени? Может, уже ИИ (GPT какой-нибудь) к этому подключили?
×
×
  • Создать...