Jump to content

    

psyhologic

Свой
  • Content Count

    73
  • Joined

  • Last visited

Everything posted by psyhologic


  1. Здравствуйте. Бьюсь уже достаточно долго, пытаясь научится рассчитывать PI фильтр. Вводные данные: Бортовая сеть авто 12 - 24 V ( взял за основу предположение - Rs = 0.5 ом, Ls = 1uH ). Требования к EMI шуму: CISPR-25 Class 5 - 54dBuV SPICE модель: http://www.ti.com/product/LM53635-Q1/toolssoftware Buck преобразователь LM53635LQRNLTQ1 (LM536355QRNLTQ1). TI Webench предложил следующий дизайн фильтра: Реальной платы пока нет, поэтому пытаюсь рассчитать аналитически, следуя вот этому документу http://www.ti.com/lit/an/snva489c/snva489c.pdf Period cycle T = 478.846 ns SW Freq = 1/T = 2088 354 084.6117 ~ 2.1 Mhz ton = 184.615 ns Duty ON impulse = (184.615 / 478.846) = 0.38 = 38% Poutmax = Vout * Imax = 5V * 3.5A = 17.5 W RmaxLoadOut = Vout/Iout = 1.4285 Ohm Zdc-dc = Vin * Vin / Pout = -10.413765 Ohm Ilmax = 3.8585 A и Ilmin = 3.1687 A Vp-p-noise = 20 * log ( (1.8478 / 3.14 * 3.14 * 2.1 * 10x6 * 20.094 * 10x-6 ) * sin(3.14 * 0.38) / 1 * 10x-6 ) = 138 Мои вопросы (я новичок, не обессудьте. Мозг уже закипает.): 1.) Видимо я где-то ошибся в математике. Как получилось 69.32 dBuV в Webench ? 2.) Насколько я понял электролитические конденсаторы используются в CLC фильтрах из за высокого ESR и способности рассеивать AC помехи в тепло. http://forum.cxem.net/index.php?/topic/137843-параметр-ripple-current-электролитического-конденсатора/ Если необходим миниатюрный размер, чем можно заменить ? Тантал / SF ? 3.) Необходимо согласование сопротивлений между фильтром и DC/DC преобразователем. Пиковый импеданс фильтра должен быть меньше, пикового импеданса DC преобразователя. http://www.ti.com/lit/an/snva538/snva538.pdf PSpice умеет как-то считать их ? не смог разобраться как вывести :( 4.) Источник AC шума сам DC / DC преобразователь, соответственно фильтр должен быть "развернут". PSpice показывает идеально гладкую линию напряжения на входе и "правильные" зубцы по току, не пойму почему не вижу перепадов напряжения на входе. Заранее благодарю за помощь !
  2. Вопрос целесообразности фильтров / защиты зависит от стартовых данных. Если у ТС БП ATX и один потребитель - схему действительно можно упростить. "уродливая каракатица" - это решение скорее для бортсети DC / DC в машине, там всё это актуально.
  3. DC-DC преобразователь - это "плотина" которая открывается, с частотой - 400kHz ~ 2.2MHz. Шум соответственно разноситься в обе стороны. До DC преобразователя поставьте CLC фильтр, подавляющий все частоты выше частоты регулятора. Смотрите AN-2162. Весь каскад защиты: DC -> TVS -> polarity protection -> CLC PI filter -> DC - DC -> Fuse (OCP) -> (TL431 + тиристор, OVP)
  4. Это зависит от вашего предохранителя. Вы реализуете эту OVP защиту после DC/DC преобразователя, зная максимальное потребление вашей нагрузки Iload и максимум Isource источника тока. Предохранитель должен быть немного больше нагрузки, но намного меньше максимального тока кз источника (или предохранителя выше, например в машине ). Боюсь предположить как поведет себя PTC предохранитель, плавкий просто сгорит. https://en.wikipedia.org/wiki/Crowbar_(circuit) https://circuitdigest.com/electronic-circuits/crowbar-circuit-diagram У вас перед DC / DC конвертером нет EMI фильтра - будет шуметь "вверх" по DC шине, на частоте модуляции и гармониках. Соответственно, добавьте фильтр если потребуется пройти квалификации по conductive EMI.
  5. Да, так будет лучше. Ещё убрать лишний кусок 12V над U1. И как показано на этих скринах.
  6. Проредите via, на ширину их диаметра. Вам не нужна лишняя индуктивность для возвратных токов.
  7. Остановился на STM8, так как их банально намного проще шить. Ещё раз, спасибо вам большое за подсказку с ADM8316 !
  8. А подскажите что-то из недорогих контроллеров automotive класса с выделенным UART для перепрошивки (dev board) до 5$ ? Для production ATtiny - "не в бровь, а в глаз", смотрю пока как их шить.
  9. Про производства / отладки да - проблемы с watchdog актуальны, подумаю как. На дев борде можно вместо мосфета R0 перемычку бросить для отладки я думаю. Боюсь транзисторами не обойдусь.
  10. Спасибо огромное, думаю эти чипы решат мои проблемы ! А чем эти процики шьються на фабрике и дома поиграться ? они вроде не EEPROM.
  11. Мудрая мысль... а если живы контроллер и модем, можно диагностировать проблемы с SoC. Надо думать. Те чипы, что прислал MegaVolt похоже решат на сейчас все мои проблемы с головой. FS sync / FS unmount / restart попробовать минимально выполнить.
  12. Разумеется, неразрешимой проблемы тут нет. Раздел вроде называется «В помощь начинающему», а так как я не являюсь специалистом по микроконтроллерам, я изложил своё видение «проблемы» и возможные варианты решения. То, что вам кажется очевидным, не всегда очевидно новичку. 1.) Реализация пробуждения устройства из standby режима по сигналу IMU. a.) Программируем IMU на отклик по акселерометру b.) Сообщаем контроллеру, что устройство переходит в standby. c.) Контроллер следит за INT2_XM и когда видит там HIGH – открывает mosfet питания. d.) Контроллер переходит в standby режим e.) SoC загружается 2.) Реализация watchdog. a.) SoC загружается и переводит контроллер в режим watchdog b.) Каждые N секунд, SoC должен послать контроллеру keepalive (I2C/UART) c.) Если контроллер видит X пропусков keepalive сигналов – подаёт LOW на EN вход SoC d.) Контроллер переходит в standby режим Давайте я переформулирую изложенное в вопросы: Есть ли альтернатива контроллеру для этих 2 задач ? Какой микроконтроллер лучше выбрать? Хочется программировать по UART, чтобы не заморачиваться с прошивкой на фабрике (лишний тех. процесс). Температурный режим -40 / +125 Задачу c watchdog наверняка можно решить готовым чипом, если да то каким ? Задачу c standby наверняка можно решить готовым чипом, если да то каким ? Возможно, кто то сталкивался с подобной задачей, если да - как вы её решали ? Корректна ли вышеизложенная логика работы контроллера на ваш взгляд ?
  13. Обе. Использовать как watchdog, им же ловить interrupt от IMU и запускать загрузку SoC.
  14. Здравствуйте Возникла следующая задача. Есть устройство, которое необходимо переводить в режим ожидания (фактически отключать все основные потребители - SoC, периферию, etc..) 1.) Когда устройство переходит в режим ожидания (by software). Нужно разбудить устройство по толчку (на борту есть LSM9DS0), пока думаю прицепиться к CTRL_REG3_XM. То есть физический толчок -> прерывание -> GPIO High -> контроллер или супервайзер -> загрузка SoC. 2.) В активном режиме работы, SoC должен по I2C / UART перепрограммировать таймер сброса(watchdog), каждые N секунд. Если этого не происходит - считаем устройство зависшим и делаем аппаратный рестарт. Было бы неплохо, сначала попробовать мягкий software рестарт (GPIO / I2C / whatever), подождать N секунд и рубануть уже EN или питание. Я понимаю, что проблему можно решить выделенным микроконтроллером. Так же хотелось бы его шить по UART прямо с SoC. Взываю к коллективному разуму, в поисках оптимального решения / микросхемы / возможных подводных камней. P.S. Микроэлектроника, SMD, температура -40 ~ +125.
  15. С MBED у меня опыта не много, а вот с ООП высокоуровневых языках предостаточно. Позвольте вставить свои 5 копеек. SerialPort - инкапсулирует всю логику работы с портом, скрывая все потрошка работы с железом. Дальше дробить скорее вредно. AlexandrY подсказал про возможные проблемы. CycleBuffer - класс / структура представляющая результаты чтения / записи. Можно вдохновиться здесь - http://nginx.org/en/docs/dev/development_guide.html#buffer ProtocolParser - работает с SerialPort / CycleBuffer, реализует разбор и копирование данных на специализированные Packets. Прячет всю работу с SerialPort от остального приложения. Packet и наследники Packet - фрейм вашего протокола разложенный на структуры / классы. MyProtocol - логика разбора и обработки пакетов протокола. Содержит instance ProtocolParser. Может быть построен по разным шаблонам проектирования. P.S. ViKo вы забыли упомянуть какую событийную модель использует ваше приложение. Request - Response / Publisher - Subscriber / etc.
  16. Смотря для чего, врядли человек только пощупавший STM станет заниматься дизайном новых полупроводников, лазеров или чем-то связанным с квант. мехом. А вот базисы теории электричества, да надо понимать и любить, без них увы ничего не выйдет.
  17. Интересно почему выбрали такую интересную схему энкодера для счётчика. В чём собственно её выгода ?
  18. ИМХО не стоит изобретать велосипеды, час программиста стоит ~35$ Надо менять архитектуру, ужимать поток до вменяемого и использовать стандартные / общепринятые протоколы типа MQTT. У нас, "славян" прямо беда какая-то с излишней самодеятельностью / изобретательностью, которая потом часто выливается в "горе от ума" ...
  19. Здесь ещё множество подводных камней скрыто. В случае TCP они разруливаются на уровне самого протокола. Например, TCP остановит передачу, пока получатель не обработает предидущую порцию данных и не пришлёт ACK. Даже если "квантировать" UDP payload (как было предложено выше), чтобы уместить его в один UDP пакет. Где гарантии того, что пока получатель будет парсить / обрабатывать payload на слабом железе, не прилетят ещё 1000 UDP пакетов, из которых 500 попадут в буферы ОС, а остальные будут просто отброшены. Это допустимо в некоторых архитектурных сценариях - ММО сервера, видео поток, etc ...
  20. Пожалуйста, не вводите людей в заблуждение, IP / UDP не обеспечивают полноценного reliability. Для IPv4 даже UDP checksum - опция. Даже если ОС или приложение реализует механизм проверки checksum - не прошедшие проверку пакеты будут просто отброшены (без повторной передачи). А в случае высоких нагрузок (80 MBit/s как раз такой случай) и слабого железа, скажется отсутствие network congestion у UDP. Потери пакетов превысят все разумные пределы. Вот почитайте на досуге - https://habr.com/ru/post/250227/ Что и требовалось доказать.
  21. Согласен, MQTT лишь транспорт publisher / subscriber. Который хорошо вписывается в архитектуру микросервисов. В одном из последних проектов, на compute pi 3 based устройстве, mosquitto напрягая процессор максимум процентов на 5 - справляется с 250 событий в секунду (JSON payload). Правда мы не посылаем все эти данные в сеть, а агрегируем / кешируем, а только потом отправляем в облако по HTTPS пачкой. Безусловно UDP самый шустрый. Но скажите пожалуйста, вам не надоели ещё эти "велосипеды" с custom протоколами. Я например, больше не покупаю устройства с самописными сетевыми протоколами. Почему ? Потому - что интегрировать их тяжко, ошибок в них много, документация худая, а время программиста стоит дорого. А потом как говориться - "вся рота идет не в ногу, один поручик шагает в ногу". Давайте дождёмся от ТС ответа, что же это за 10 MB/s телеметрии такой. Может из них можно сделать 10 KB/s и они прекрасно проскочат в MQTT и JSON.
  22. Тот же mosquitto на Linux-based устройстве. Что я должен был тут почерпнуть ? имхо - пустая статья. Забейте в google: mqtt performance и увидите сравнение производительности разных брокеров под разными нагрузками.
  23. С MQTT работал и много, но под Linux. Как он поведёт себя под RTOS, вам виднее. С такими объёмами «телеметрии» request - response, нужен Xeon с TCP Offload’ом Шутка ли 80 Mbit/s payload...
  24. Rigid flex вам в помощь ... параметров не скажу, не знаю.
  25. HTTP REST - Не забудьте подумать о многопоточности - Ограничены в количестве запросов в секунду - Можно пробрасывать через reverse proxy (устройство доступно в интернет из закрытой сети) - Nginx proxy сможет писать логи доступа А вообще датчики / телеметрию лучше через MQTT, но request / response модель придется реализовывать самому. 1..10 Mбайт/с телеметрии ... не заметил, извиняюсь. Что это у вас за телеметрия то такая ? Все бортовые системы шатла, не иначе.