
Гуру

Сообщений всего: 1141
Дата рег-ции: Дек. 2010
|
Слева направо - пациент для доступа по UART с припаянным проводом, плата-адаптер, шнурок USB
Итак, у меня есть STM32L-Discovery , демо плата на MK STM32L152RBT6. На борту МК есть много чего, но в данном случае используется только UART и USB клиент. На сайте STM можно скачать библиотеку STM32_USB-FS-Device_Lib_V3.3.0, которая относится к нескольким другим ознакомительным платам на базе STM32Lчто-тотам и STM32Fчто-то там, но, увы, не к имеющейся discovery. С первого раза пример отказался исполняться, и понадобилось внести в программу и плату несколько изменений - во первых, для работы USB необходимо наличие внешнего тактового генератора. На данной плате можно достичь этого двумя путями - распайть кварц, SMD-резистор и два SMD конденсатора в заботливо приготовленные гнезда, либо просто замкнуть припоем мостик SB17, который просто отправляет 8МГц тактового генератора с чипа ST-LINK(программатор-отладчик) на вход основного камня. Конечно, я пошел вторым путем. Программа Virtual COM из примеров библиотеки предполагала наличие именно кварца, и следовало ее изменить - в момент загрузки МК надо взводить бит HSEBYP в управляющем регистре PLL. Кроме того, на плате, для которой писался пример, выход UART программно коммутировался на порт ввода-вывода GPIOD, но почти все его биты не выведены наружу, т.к. задействованы на датчик касаний. Таким образом, вторая модификация программы - коммутация UART2 на пины PA2(TX) и PA3(RX).
Еще пришлось переделать проект под новую версию IAR - 6.2. Надо вручную убрать из настроек проекта файлы core_cm3.*, поставить в конфигурации библиотек флажок "Use CMSIS", выбрать конфигурацию STM32L152-EVAL, Processor variant "ST STM32L152xB". После этого все заработало.
Дополнительное условие - разъем программирования должен быть отключен! Иначе в USB что-то сглючивает и копьютер не может правильно инициализировать плату.
Распиновка
PA2 - UART TX
PA3 - UART RX
GND - он и в африке GND
EXT_5V - USB +5V
PA11 - USB DATA-
PA12 - USB DATA+
и, как уже упоминалось, замкнуть припоем SB17(с обратной стороны платы)
NB Не цепляйте непосредственно к COM портам(RS-232) Сожжете контроллер!
Входы-выходы RS232 - 12В, входы выходы контроллера - 3.3В. Для подсоединения к портам паяем переходник на MAX232.
Исходники - тут (Отредактировано автором: 22 Ноября, 2011 - 02:33:35) |