Почитав в интернете статьи про дешевизну и богатые возможности STM32, я решил, что хочу "пощупать" эти чудесные и недорогие контроллеры на практике. Для начала был прикуплен программатор J-Link, и собрана простенькая схема, только питание и разъём программирования (JTAG).
Однако, схема работать не стала. Подавляющее большинство статей в интернете про самоделки на ST сводилось к миганию светодиодиком на готовой макетной плате типа Discovery, и на вопрос о том, почему не работает самопал, ответа они не давали.
Далее я распаял ещё несколько плат, но уже с использованием паяльной станции, чтобы избежать перегрева кристалла - но и они работать не стали.
Следующей итерацией было приобретение отладочной платы, несущей на борту заведомо исправный программатор с интерфейсом SWD. Но и с этого программатора ни одна из моих плат не заработала, контроллер с компьютера не виделся.
Путём проб и ошибок я выяснил, что для работы STM32 необходимо подключение питания не только на VCC и на VDD, но и на AVCC и AVDD, даже если Вы не планируете использовать аналоговые устройства (ЦАП, АЦП, компараторы). Без подачи питания на аналоговую часть - микросхема работать не будет. Кроме питания для запуска ничего не требуется, внешние кварцы не нужны. На внутреннем генераторе микросхема неплохо разгоняется, и при заявленых 24 МГц контроллер стабильно работает на 56МГц, и при этом никакого заметного нагрева микросхемы нет.
Тот самый китайский J-link.
Один из вариантов минимальной схемы на отладочной плате.
Однако, схема работать не стала. Подавляющее большинство статей в интернете про самоделки на ST сводилось к миганию светодиодиком на готовой макетной плате типа Discovery, и на вопрос о том, почему не работает самопал, ответа они не давали.
Один из вариантов после многочисленных перепаек.
Ещё одна попытка.
Далее я распаял ещё несколько плат, но уже с использованием паяльной станции, чтобы избежать перегрева кристалла - но и они работать не стали.
Следующей итерацией было приобретение отладочной платы, несущей на борту заведомо исправный программатор с интерфейсом SWD. Но и с этого программатора ни одна из моих плат не заработала, контроллер с компьютера не виделся.
Discovery, содержащий на борту SWD-программатор.
Путём проб и ошибок я выяснил, что для работы STM32 необходимо подключение питания не только на VCC и на VDD, но и на AVCC и AVDD, даже если Вы не планируете использовать аналоговые устройства (ЦАП, АЦП, компараторы). Без подачи питания на аналоговую часть - микросхема работать не будет. Кроме питания для запуска ничего не требуется, внешние кварцы не нужны. На внутреннем генераторе микросхема неплохо разгоняется, и при заявленых 24 МГц контроллер стабильно работает на 56МГц, и при этом никакого заметного нагрева микросхемы нет.
Заработало!
Теперь, по мере возможностей по времени, я буду продолжать эксперименты, и постепенно делать систему управления светом в доме на STM32.
Вот какой-то странный Вы человек - подпаял, распаял, не работает самопал... почему ? ... Стабильно работает на 56МГц при заявленных 24МГц..
ОтветитьУдалитьС таким подходом даже кастрюли лудить не посоветовал бы.
Сперва люди вообще-то документацию на прибор раскуривают (в первую очередь питалово), а потом уже паялом лезут...
Datasheet был почитан перед распайкой, да. На аналоговые входы питалово не подавал по старой Atmel'овской практике - там оно небыло обязательным.
УдалитьА про разгон - я же не говорю о том, что стоит его оставлять работать на такой частоте - да, со временем кристалл вполне может "поплыть", согласен. Это был просто тест на потенциальные возможности. Не стоит подходить столь строго, эксперименты - на то и эксперименты, чтобы узнать, где оно перестанет работать.
Да можно вон даже самопальный программатор/отладчик st-link-v2 сделать=) Внитри тот же стм32. Но эксперементы у вас весьма интересные, надо будет тоже попробовать подразогнать что-нибудь=)
ОтветитьУдалить