Год назад я писал о бейдже в форме матрешки , который можно было получить на конференции ZeroNights 2016. В этом, или точнее, уже прошлом, 2017 году, на ZeroNights у организаторов одного из железных стендов также можно было получить плату-бейдж. На сей раз плата называлась Кракен и имела форму осьминога (или ананаса, смотря какой стороной повернуть :D). Кракен представляет собой отладочную плату на базе STM32F405RGT6. Насколько я смог выяснить, плату разработали Арсений Жгилев и Антон Канышев.

Первая проблема, возникшая у меня при пайке Кракена, заключалась в том, что обозначения компонентов в BOM и на шелкографии расходились. Ниже приведен скорректированный список необходимых компонентов с информацией о том, куда их нужно впаивать, и где можно купить:

Отмечу, что мелкие SMD резисторы и конденсаторы легко теряются, поэтому лучше взять их с небольшим запасом. OLED-дисплей в силу понятных причин является опциональным. Также понадобится некоторое количество гнезд и штырьков с шагом 2.54 мм, но я думаю, что они у вас и так есть. Наконец, к списку стоит добавить разъем IDC-10 . Далее станет понятно, зачем.

Fun fact! Внимательные читатели к этому моменту уже догадались, что плата умеет работать от Li-Ion аккумулятора, а также заряжать этот аккумулятор от USB. А вы прошли проверку на внимательность?

В собранном виде бейдж выглядит приблизительно так:

Здесь в него залита простенькая прошивка, которая по очереди зажигает все светодиоды на щупальцах, а затем также по очереди гасит их:

void init ( ) {
/* do nothing, yet */
}

void loop ( ) {
static const int pins [ ] = {
GPIO_PIN_4 , GPIO_PIN_5 , GPIO_PIN_6 , GPIO_PIN_7 ,
GPIO_PIN_8 , GPIO_PIN_9 , GPIO_PIN_11 , GPIO_PIN_10
} ;

for ( int i = 0 ; i < sizeof ( pins ) / sizeof ( pins [ 0 ] ) ; i ++ ) {
HAL_GPIO_TogglePin ( GPIOC , pins [ i ] ) ;
HAL_Delay ( 250 ) ;
}
}

Программирование платы осуществляется по аналогии с тем, как это делалось в заметке Готовим «взрослую» среду разработки под STM32 в Linux . Заметьте, что в приведенном коде пины используются не по порядку. Это не опечатка, а такая особенность разводки платы.

К слову об особенностях разводки. Вам, конечно же, бросился в глаза тоненький желтый проводочек, идущий через весь бейдж сквозь пару капель термоклея к куску макетки с проводами и разъемом IDC-10. Дело в том, что на плате оказался неправильно разведен SWD . Штырек на плате, который по задумке должен быть SWIO, идет к пину 55 микроконтроллера, а не пину 46, на котором на самом деле живет SWIO. Поэтому, если просто спаять плату как она есть, программатор не увидит микроконтроллер и будет ругаться очень странными ошибками.

Стоит ли говорить, что, поскольку я являюсь полным новичком в мире STM32, выяснить этот момент заняло у меня какое-то время . В итоге проблему я решил макеткой, разъемом IDC-10 и тонкими проводами , как изображено на приведенном фото. Разъем IDC-10 был выбран по той причине, что он же используется в программаторе STLink v2. Таким образом, я могу подключать программатор к плате просто с помощью соответствующего шлейфа, не вспоминая постоянно, какой провод откуда и куда нужно подключать. Удобно.

Исходники к этой заметке, а также схему платы, вы найдете в этом репозитории на GitHub . За кадром осталась работа с OLED-экранчиком, но об этом уж как-нибудь в другой раз. Несмотря на упомянутые дефекты платы, было весело. Пожалуй, даже веселее, чем было бы без них. Именно благодаря Кракену у меня возник интерес к микроконтроллерам STM32. А вы думали, откуда?

Так что, спасибо создателям платы, организаторам стенда, а также организаторам конференции ZeroNights за то, что делаете нашу гиковскую жизнь интересной и наполненной фаном!

А есть ли у вас такой бейдж? Если да, то успели ли вы его спаять, или только собираетесь это сделать? Если нет, то хотели бы получить такой на следующей конференции?

Дополнение: Микроконтроллеры STM32: работа с OLED-экранчиками на базе SSD1306 по I2C и SPI .

admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

1 месяц ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

1 месяц ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

1 месяц ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

1 месяц ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

1 месяц ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

1 месяц ago