Самопальная девборда для STM32 в LQFP48

У меня уже была одна подобная "беспаечная" девборда (см. мой ЖЖ).

Но там я развел слишком мало ног, чтобы можно было не просто тестировать МК на предмет работает/не работает, но еще и тестировать часть периферии и разрабатывать. Да и косяком было то, что я вместо полноценного  разъема USB припаял микро-USB, который очень быстро отвалился.

Поэтому сделал более приличную. Вид спереди (справа - старая):

Самопальная девборда для STM32 в LQFP48 Stm32, Железо, Микроконтроллеры

Вид сзади:

Самопальная девборда для STM32 в LQFP48 Stm32, Железо, Микроконтроллеры

На сей раз развел ее так, чтобы можно было работать не только с STM32F0x2 и STM32F103, но и с STM32F303 (с которыми в ближайшее время мне необходимо освоиться). Ссылка на печатную плату на гитхабе.

Пока что написал прошивку только для STM32F072.

Прошивка умеет:

- менять заполнение ШИМ каналов (1 канал на TIM1 и 4 канала на TIM3);

- измерять напряжение на трех внешних каналах АЦП (потенциометр, 1/2 от напряжения на его среднем контакте, а также канал, подключенный к ЦАП) и двух внутренних (температура МК, Vdd);

- генерировать ЦАПом "пилу", причем, можно изменять стартовое значение (тем самым превращая "пилу" в M-образный сигнал);

- работать с чем-либо, подключенным к I2C1 на скоростях 5.8, 10 и 100кГц (а также есть режим "обнаружения" сидящих на шине I2C устройств);

- работать в режиме мониторинга АЦП: как только рукоятка потенциометра достаточно поворачивается, данные с трех внешних каналов отображаются в терминале + уровень напряжения на потенциометре индицируется эдакой светодиодной линейкой из четырех светодиодов, сидящих на ШИМ-каналах TIM3;

- работать с SPI1 (master) и SPI2 (slave) в режиме Rx DMA и Tx DMA, можно соединить выходы SPI1 и SPI2 и обмениваться между ними данными (т.к. работа SPI и Tx USART'ов висят на DMA, одновременно SPI и USART'ы работать не могут, нужно инициализировать что-либо одно);

- отображать строковую информацию, приходящую на USART1, USART2 и USART3, USART2/3 соединены на схеме перекрестно;

- передавать что-либо на один из трех USART'ов.