Опубликовано: 05.09.2018
Подсаживаю народ на STM, тут выяснили что всякие платы Discovery для простого радиолюбителя слишком космическая технология — камни дорогие, фаршу лишнего много. Вот покажи нам как сделать, что нибудь на рядовых микроконтроллерах, чтобы дешево и сердито.
Все таки, если вы впервые увидели STM и не знаете с чего начать, настоятельно рекомендую взять готовую отладочную плату и начать изучение с портов ввода-вывода GPIO, таймеров и т.д. Мы же в этой статье будем терзаться муками железной части.
Что смущает народ в стм? Возможно это:
1. Корпус, скажу честно, я тоже думал что смд паять сложно, но до тех пор пока 1 раз не припаял, теперь меня хрен заставишь сверлить DIP, это намного трудозатратнее.На мой взгляд все это страшно и непонятно до тех пор пока один раз не сделал, дальше идет как по маслу. Хотя нет, одна проблема пока еще висит, это тактирование, но об этом в другой раз.
Озвучим задачу. Вы наигрались с отладочной платой, уже немного умеете писать код и решили запилить что нибудь свое. Первый вопрос — какой выбрать камень? Вначале стоит озадачиться и почитать какую то общую информацию про разные серии микроконтроллеров, чем они отличаются, что можно сделать и чего нельзя. Допустим лень.
Тогда такой вариант. Допустим, одни пишут что stm32f4 это круто, другие пишут что круто, но цена нас не устраивает или не купить — отметаем. Ищем дальше, нашли stm32f1 круто, другой пишет что круто — смотрим цену, более менее порядок — решено, пускай будет серия 103.
Следующий шаг, выбор конкретного микроконтроллера, который соответствует ожиданиям, снова гуглим и читаем всякие хабры. Очень полезен параметрический поиск в интернет магазинах. Зачастую выбор определяется наличием микроконтроллеров в вашем регионе. Но, бывает так, что нет понимания, что хорошо и что плохо. В таком случае помогает метод проб и ошибок. Например, нашел статью с какой то девайсиной, которая похожа на то чего хочется, почитал комментарии, если нет вопросов — используешь такой же микроконтроллер.
Сразу нужно позаботиться о том, чем будем прошивать микроконтроллер, т.е. нужен программатор — самое элементарное писать в гугле — » программатор для STM32 » . Во всех отладочных платах, что мне доводилось держать в руках, был программатор St-link. Можете купить его отдельно, можете купить еще какой то программатор, никто вам этого не запрещает.
Остается понять из чего состоит минимальная схема. Под выбранный камень нужно почитать про тактирование и питание. В целом система не отличается от AVR — резонатор и два конденсатора
Питание обычно 3.3В, но мало ли что бывает. Самое правильное это прочитать все это в даташите, но можно подсмотреть как это реализовано в чужих схемах, гугл картинки вам в помощь. В итоге еще перед покупкой всех деталей, вы должны понимать, от чего вы будете питать схему, от чего тактировать и чем прошивать. Все это есть в даташите.
Допустим, я выбрал STM32F103C8T6, почему выбрал, а потому что где то услышал про него (метод проб и ошибок). Кроме того, у него 64кБ флеша, корпус LQFP-48, 20 КБайт рамы, 3 юарта, 2 spi, приемлимая цена. По характеристикам это весьма неплохо, как узнал? В этом помог опыт полученный от AVR, если бы я юзал этот камень первый раз то кроме цены и корпуса в 48 ножек остальное мне бы ни о чем не говорило. Опять же, тогда метод проб и ошибок.
Питать я буду от лабораторного источника питания в 3.3В, для тактирования возьму кварц на 16МГц и 2 конденсатора на 22пФ. В качестве программатора задействую плату STM32F4Discovery, которую приобрел ранее. Идем в магазин, покупаем все что нужно.
Когда все есть, переходим к процессу проектирования. Я решил просто распаять камень и ножки вывести на штырьки. Просто макетка.
1. Так как я рисую в Altium, то нужно попытаться найти посадочное место микросхемы и ее символ. Большая удача, если это есть в гугле, если нет тогда придется брать даташит в зубы и рисовать все с нуля. Хоть это и кажется сложным, но на самом деле это не так. В моем случае есть схема, которая содержит посадочное место и символ. Я тупо копирую их к себе в библиотеку, ибо может пригодится еще. 2. Обязательно открываем даташит и проверяем то, что скопировали, чтобы не получить лажу потом, в этом примере я посмотрел только 1 пин и 25, но лучше проверить каждый пин. 3. Создаем проект, цепляем библиотеки, смотрим уже конкретно, куда цеплять кварц, куда цеплять разъем программатора.Весь процесс можно лицезреть на видео.
Когда все элементы забиты в библиотеку, идет долгий этап подготовки схемы и разводка платы, такие моменты как протянуть проводок от одного элемента к другому думаю интуитивно понятен, поэтому в ускоренном режиме. Ключевые моменты, как перейти от схематика к pcb и заливка полигоном показаны в нормальной скорости.
Довольно не очевидный момент — подготовка к печати. Идея стырена у BSVi. Из схемы достается файл сверловки и гербер. Создается отдельный композитный слой, который переводим в негатив и зеркально переворачиваем, в общем делай как на видео и будет тебе щастье. Особо дотошным — читайте доки на альтиум.
Этап изготовления платы методом фоторезиста, для тех кто не знаком показан примерный план действий. Для тех кто делает в первый раз — ютуб кишит подобными видео, изучайте.
Далее идет процесс лужения и пайки, увы видео не удалось. Плата не идеальна — 2 дорожки перегрел, одну удалось восстановить другую нет, но в целом на работоспособности это не сказалось.
Теперь можно переходить к программированию. Снимаем перемычки с F4 и юзаем ее как погроматор.
Проверяю в кейле, камень определяется.
Весь процесс изготовления платы вместе с изучением даташита, отрисовкой и разводкой схемы занял 5 часов. Дальнейшие действия не отличаются от работы с отладочными платами, о чем писалось в прошлых статьях — пиши, заливай, проверяй
ЗЫ: Выяснилось, что ножку Boot0 надо заземлять, чтобы шить именно флеш память