Немного предыстории Я еще одна выпускница некоего московского университета (не буду уточнять какого, но он посредственный).
Полгода назад нам сообщили, что пора писать диплом.
На тот момент я только начал осваивать микроконтроллеры и мне это давалось непросто, а со скрипом, который издает холодильник, когда в одиночку пытаешься аккуратно переместить его, не повредив драгоценный ламинат (в моем случае линолеум).
Мое обучение началось, когда два года назад я заинтересовался темой микроконтроллеров и инженер, которого я о них спрашивал, дал мне плату 300х200мм и сказал, что на ней находится контроллер STM32F217ZGT6 и на этой плате есть все необходимое для обучения.
«В общем, как только освоишь, все остальное покажется фигней» (он, правда, не сказал, что для того, чтобы моргнуть светодиодом, нужно настроить SPI, о котором я на тот момент даже не слышал).
После трех не очень напряженных месяцев бесплодных попыток, осознания слабости навыков программирования и огромного количества прочитанных статей мне все же пришлось раскошелиться на STM32VLDISCOVERY и путем копирования программ и экспериментов с ними дело наконец пошло, но все равно медленно .
За полтора года я успел поработать разработчиком, поискал вакансии, где работают с STM32 (так как считаю, что это сейчас самые перспективные микроконтроллеры своего класса), набрался опыта и когда дело дошло до получения диплома, Я вспомнил свои больные мозоли.
Идея темы пришла мгновенно: «Оценочная плата для STM32 и (полный) курс обучения (для самых маленьких) по ней».
Да я знаю-знаю, слышал от многих инженеров, что на тему "отладочная плата" "если бы я был учителем, я бы провалил вашу защиту", но я все равно считаю, что любая идея имеет право на жизнь, поэтому для всем кому интересно, читайте дальше.
Я знаю, что есть много статей, в которых говорится что, где и как.
И как работать с регистрами, как понимать, что они делают и т.д. и т.п.
Для меня (может быть, от моего большого ума) многие подобные статьи были еще не понятны и я довольно долгое время не мог пройти дальше мигания светодиода без примеров рабочего кода.
Плюс даже в циклах (по 6-7 штук) статей не всегда соблюдалась система, многое не обсуждалось (чего мне очень не хватало), а главное заканчивались, не закрывая тему полностью, оставляя после себя еще больше вопросов .
Именно поэтому мне хотелось написать полный и законченный курс, чтобы другие, так сказать, не страдали и разобрались сами.
Итак, придя в институт и поняв, что для того, чтобы быстро освоить и понять, мне нужен стимул (вернее, хороший пинок), я начал бить себя пяткой в грудь (рыть себе могилу), что я не только напишу учебный курс (в нашем университете мне пришлось позвонить его методическому пособию), но и предоставлю рабочий макет. Тема принята, задание написано (вырыли могилу, заказали надгробие), осталось всё написать и спроектировать (лечь в могилу, закопать и поставить надгробие).
Жизнь показала, что времени у меня осталось меньше полугода, но все равно время, отведенное на диплом, почти закончилось, защита уже совсем скоро, но на удивление все не только готово, но и почти 100% проверено (на живых людях) в том числе).
Результат был следующий:
1. Сам курс (методическое пособие по-научному)
Кратко о нем можно сказать, что на мой взгляд и по отзывам тестеров он полноценный, но немного жестковатый и недоработанный.Так как я решил, что не буду писать учебник по СИ-программированию, поэтому в курсе нет пояснений операторов, поэтому и сказали, что курс местами суровый.
По поводу недоработок, скажу честно, у меня не было времени все отладить к сдаче, чтобы написать об этом не только здесь, но и в методическом пособии по сдаче.
Я тоже думаю, что может быть и лучше, но об этом чуть позже.
2. Отладочная плата на контроллере STM32F103RET6.
Здесь все немного лучше, чем в первом пункте, плата спроектирована, заказана (по обстоятельствам пришлось заказывать срочно) в Резоните, компоненты заказаны, паяны вручную (честно говоря, ни одно видео не передаст ощущение первой пайки LQFP64) и протестировал (большая часть сразу заработала).Но это макет и, конечно, не обошлось без накладок: проводка, переходники и прочие разные «костыли», но заказывать вторую ревизию, к сожалению, не успею, да и не стал бы , для защиты диплома, я уверен, этого будет достаточно.
Поэтому ниже я расскажу подробнее об этой макетной плате.
Когда я устроился на свою первую работу разработчиком электроники, я наткнулся на интересное мнение и, как оказалось, довольно распространенное.
Это мнение звучало примерно так: «Вот я программист и программирую микроконтроллеры, схемотехнику не знаю и знать не хочу, паять, кстати, тоже не умею».
Пообщавшись с группой программистов вне компании, я понял, что человек из моей работы далеко не одинок в своем мнении, и хотя я его не поддерживаю, стоит понимать и уважать мнение других, тем более, что оно подходит идеально вписывается в тогдашнюю концепцию разработки «все на борту».
.
В этом плане плата получилась довольно «толстой» и получила название STM32SB (SB-StudyBoard) V1.0b. Ниже мы рассмотрим, что в него входит. 1. Микроконтроллер Исходя из того, что я работал с микроконтроллером STM32F103RET6, для проекта был выбран именно он.
2. Схема питания и аппаратный USB-контроллер.
В этом микроконтроллере есть встроенный USB, который решено было вывести в отдельный разъем.
3. Спикер
Для освоения и обучения написанию мелодий было решено внедрить ШИМ-модуляцию.
4. Цифровой индикатор и сдвиговый резистор.
Чтобы одновременно освоить динамическое отображение и регистр сдвига, было решено их объединить.
5. Светодиоды
Светодиоды, что может быть лучше? Только трехцветные светодиоды, на которых можно освоить плавную смену цвета.
6.ЖК-дисплей
Стандартный ЖК-дисплей с 2 строками по 16 символов для освоения параллельного интерфейса.
7. Клавиатура
Матричная клавиатура, это нужно знать и уметь.
8. Расширитель портов ввода-вывода
Не бывает слишком много портов ввода-вывода, но здесь вы также можете освоить I2C.
9. Электронный термометр.
Датчик температуры 1-Wire — вещь полезная и ценный опыт работы с ним может пригодиться.
10. Электронный потенциометр.
С помощью этой штучки можно освоить полноценный SPI и попробовать измерять изменения напряжения через АЦП.
11. Реле
Хоть это и на уровне моргания светодиодом, все равно приятно услышать знакомый щелчок, правда?
12. Ключевые транзисторы
Тоже на уровне моргания светодиодом, но вдруг кто-то не понимает принципа.
13. Дублирование свободных пинов на внешние пины
Ну это естественная конструкция для любой отладочной платы, вдруг все, что в ней есть, никому не пригодится, а что-то свое все равно подключать надо.
14. Конвертер WIFI-UART (esp8266)
Преобразователь включен в схему в качестве разъема; здесь это тоже указано.
Используется уже достаточно нашумевший модуль esp8266.
15. Конвертер USB-UART.
USB — это всегда круто, в нем используется чип CP2102.
16. JTAG и SWD
Ну, где бы мы были без этих вещей?
Столь широкий набор внешних устройств позволит освоить большую часть методики и попробовать работать с большинством интерфейсов, не заморачиваясь с приобретением элементов и не вставая из-за стола, что соответствует концепции не только «все на борту».
», но и «для самых маленьких» (не умеющих паять).
Конечно, были некоторые заминки, но, как говорит один знакомый инженер, «мастерство инженера измеряется количеством дорожек, нарезанных на первой итерации платы».
Вот список моих «косяков», чего я не заметил, забыл или даже не знал при разработке этой платы: 1. Я понял, что пины SWD расположены в странном порядке и работе платы это как минимум не мешает. Я услышал, на мой взгляд, правильное мнение, что их надо размещать так, как они расположены на STM32VLDISCOVERY во избежание недоразумений для нового пользователя.
2. Подключать одноцветные светодиоды как на этой плате не стоит, так как для того, чтобы ими моргать нужно переназначить JTAG, но в результате получился неожиданный для меня эффект, указывающий на процесс загрузки прошивки.
3. Для этой платы я разработал свой логотип, который хотел перенести на печатную плату и разместить на плате, но забыл.
4. Для экономии места во второй ревизии платы я бы разместил некоторые неиспользуемые пользователем SMD компоненты на нижней стороне платы.
5. Я понял, что для более удобной разводки цепей с кварцевыми резонаторами было бы удобно заменить их на SMD. 6. Забыл расписаться, где находятся JTAG и SWD, там тоже не показано, как их подключать, и если с JTAG и его разъемом BH-20 все не так сложно, то с SWD ситуация несколько опаснее.
7. При разработке посадочного места ЖК-дисплея произошел казус и отверстия оказались слишком малы для болтов М3. 8. В преобразователе CP2102 контакты RX и TX перепутаны.
Так как я привык, что в документации дан пример подключения относительно микроконтроллера, а не внешнего устройства, пришлось вырезать 2 дорожки.
9. На этой плате расстояние между гребнями штифтов не стандартизировано в дюймах; поэтому возникает проблема с подключением к беспаечной макетной плате путем втыкания в нее.
10. Вылезла накладка с токоограничивающими резисторами в цепи индикации срабатывания реле; значение оказалось слишком высоким для переключения реле.
11. Ну, как обычно, «хорошая мысль приходит позже».
Итак, получив плату, я понял, что стоит сделать ее подходящего хоть для какого-то случая размера - видимо, во второй ревизии ее придется дорабатывать.
12. Изначально был заложен небольшой цифровой индикатор, так как он не занимал большой площади и был в наличии в магазинах, но оказалось, что на самом деле он доступен везде при заказе от 520 штук, поэтому пришлось лепить переходник для стандартного цифрового индикатора.
Наконец, я покажу вам 3D-модель этой платы:
А чтобы сравнить его фотографию, какой она получилась «в живую», вид сверху:
И вид сбоку, чтобы было видно больше «костылей»:
Извините, но мне не хотелось бы выкладывать весь проект до сдачи диплома, но после этой работы у меня возник вопрос: стоит ли развивать этот проект? Меня осенила идея написать серию статей, посвященных обучению, где был бы представлен такой полноценный курс по этой отладочной плате, где все будет написано простыми словами и доступно объяснено.
Хотелось бы услышать от вас в комментариях, насколько это было бы полезно и необходимо в настоящее время.
Спасибо за внимание! Теги: #Программирование микроконтроллеров #микроконтроллеры #stm32 #Сделай сам или Сделай сам #si #stm32f103
-
Почему Услуги Izrada Web Stranica Необходимы
19 Oct, 24 -
Новые Возможности Опросов В 3Cx Webmeeting
19 Oct, 24 -
Партнерские Выходные Agima 2021
19 Oct, 24 -
Представляем Elasticsearch Шаг За Шагом
19 Oct, 24 -
Помогите Мне Разобраться С Mod_Rewrite
19 Oct, 24