Форум myROBOT.ru » Шаг за шагом » Программирование микроконтроллеров » USB-UART адаптер из STM32L-DISCOVERY

Страниц (1): [1]
 

1. elmot - 22 Ноября, 2011 - 02:06:31 - перейти к сообщению

Слева направо - пациент для доступа по 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.

Исходники - тут
2. cjA - 22 Ноября, 2011 - 02:38:01 - перейти к сообщению
мдя...
а зачем?
(Добавление)
у меня был принтер кенон ххх на нем были процессор, память, драйвер и два выхода на шаговики. вот его бы перепрограмить
3. elmot - 22 Ноября, 2011 - 02:54:02 - перейти к сообщению
Затем, что нужен был шнурок, искать по магазам и потрошить USB-RS232 не было никакого желания. Кроме того, хотел освоить и USB и UART на STMке. Собственно, все цели достигнуты.
4. ftp27 - 24 Июня, 2013 - 17:54:32 - перейти к сообщению
Доброго времени суток. Уже больше двух недель потрачено на попытки как то либо разобраться в этом USB. У меня тот же самый кит (STM32L Discovery), использую прошивку Custom HID demo из примеров USB-FS-Device.
Все собирается и прошивается. Но устройство не видит. Присобачил к плате кварц 8Мгц на лапы OSC_IN и OSC_OUT со всеми кондерами и перемычкой. Все контачит (100-й раз все пропикал мультиметром). Толку никакого. Больше грешить не на чего, кроме как неверное тактирование. Вот кусок кода SystemInit:
CODE:
/*!< Set MSION bit */
RCC->CR |= (uint32_t)0x00000100;

/*!< Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0], MCOSEL[2:0] and MCOPRE[2:0] bits */
RCC->CFGR &= (uint32_t)0x88FFC00C;

/*!< Reset HSION, HSEON, CSSON and PLLON bits */
RCC->CR &= (uint32_t)0xEEFEFFFE;

// /*!< Reset HSEBYP bit */
// RCC->CR &= (uint32_t)0xFFFBFFFF;

/*!< Set HSEBYP bit */
RCC->CR |= ((uint32_t)0x00040000);

/*!< Reset PLLSRC, PLLMUL[3:0] and PLLDIV[1:0] bits */
RCC->CFGR &= (uint32_t)0xFF02FFFF;//0xFF52FFFF

/*!< Disable all interrupts */
RCC->CIR = 0x00000000;


Подскажите, пожалуйста, что не так. Уже в полнейшем тупике Замешательство
5. elmot - 24 Июня, 2013 - 18:48:56 - перейти к сообщению
Мой-то пример пробовали?
6. ftp27 - 24 Июня, 2013 - 21:35:36 - перейти к сообщению
elmot пишет:
Мой-то пример пробовали?

Да. Даже качал вашу собранную прошивку. Не работает.