IOT / Esp32 / FreeRTOS / Arduino / stm32
800 subscribers
747 photos
133 videos
29 files
199 links
Копилка материалов по работе с микроконтроллером esp32 / stm32
Download Telegram
Разбираясь дальше с NTC-термистором внезапно натолкнулся на интересный документ по ошибкам в esp32 и способам их обхода. Конечно его сразу стоит сохранить для истории.
#espressif

https://www.espressif.com/sites/default/files/documentation/eco_and_workarounds_for_bugs_in_esp32_en.pdf
По платке постепенно начинается формироваться очередной список багов:
1) при заказе BOM не правильно указал конденсаторы на питании, и в итоге там малююююсенькие такие хренюшки, которыех наверняка недосаточно
2) Самый грустный баг из тех которые уже известны - это я неправильно использовал опорные источники напряжения) в итоге их приходится сдувать. Купил новые - буду пробовать использовать.
Ну шож. Я взгрустнул от неправильной аналоговой части платы.
А заказывать новую версию платы за 10к чтобы протестить аналоговую часть - жаба душит.

Пообщался с умными людьми и меня надоумили сделать под эту задачу отдельный модуль!) и на нём всё отладить.

Плюсы:
- сильно уменьшается стоимость итераций (получится 2k+ за итерацию, т.е получаем примерно 3 итерации модуля по цене 1 полной итерации)
- проще отделять программирование/конфигурирование бизнес-логики от программирования/конфигурирования устройства измерения. Ну те настройки mqtt и параметры измерения EC - не должны находиться в одной функции внутри кода, а в данном случае они точно будут разделены by design =)
- Проще делегировать задачи с железом - в том числе (как мы выяснили) "аналоговую часть". Не нужно будет объяснять зачем нужны цветомузыка, кнопочки, енкодер и зарядка для батарейки.
- EC/PH отдельными модулями - проще делегировать задачи и удешевлять и разсинхронизировать итерации с тестированием.
- потом можно будет из этих кусочков собрать франкенштейна на отдельной плате если покажется что это логичнее.
Опишем требования к модулю:
- выполнять только 1 маленькую задачу
- работать по UART или i2c-slave
- конфигурироваться

Какой-же камень под это подойдёт? Любой самый дешёвый и доступный.
Ну конечно-же STM32! 🥸

Отличным решением будет stm32G031 - на больших партиях цена $0.5, он есть на lscs по цене <$1 при заказе от 10 штук.

Камень прикольный, надо погонять =) Купим для этих целей отладочную плату Nucleo и приступим к самому прекрасному процессу - РАСПАКОВКЕ! уиии! новые неведомые железячки, как это прекрасно!.
С одной стороны платы пациент stm32G031,
С нижней стороны ST-Link на F103CBT6

Взял за 1200 рублей в https://www.terraelectronica.ru/product/3468813

А в на картинке цена на lcsc для истории
Надо потестить "аналоговую часть" схемы на stm32 как отдельный модуль.

Ну собирать на макетке - это не наш метод =) сделаем для этого плату для bluePIll. Для начала откроем CubeMx и зададим важные контакты (i2c, Uart, ADC), ну и все остальные. Потом конечно при разводке всё поперетыкаем, но начало положено.

Получается как-то так.
Разводить плату прям приятно) как будто собираешь пазл или решаешь ребус.

Нужно обязательно расположить всё так чтобы ничего не пересекалось, было с красивыми отступами и изгибами, чувствовалась гармония 😎

Хотя справа можно было поровнее расположить)
Получилась и тоге такая красота!
Заказ обошёлся в $40+
Заказ и BOM лист
Вернёмся пока к нашим баранам на esp32 и аналоговой части. Впаял источник опорного как положено (хотя скорее "как мне кажется правильно"). Сижу меряю напряжение на выходе, получаю вот такой график.

хм. можно ли это считать успехом? 🤔
Или напряжение можно получить точнее? По крайней мере радует что заказанный модуль с stm32 разведён скорее всего правильно.