USB-to-UART в качестве программатора/отладчика для STM32

Или «Вот что лень с программистом делает»

Наконец дошли руки поиграться с платкой с STM32 (у меня такая). Камень STM32F103RBT6, пины разведены на гребенки, подключен USB, UART выведен на DB9 через MAX3232, есть разъем JTAG, пара кнопок, пара светодиодов — ничего особенного.

Первый вопрос, который возник сразу — как прошивать. JTAG-адаптером пока обзавестись не успел, но не раз читал, что STMки умеют вшитый на заводе UART-бутлоадер. Ок, пробуем. Качаем архив с прошивальщиком, расчехляем USB-to-UART переходничок на CP2102, переставляем джампер на BOOT0, запускаем, прошиваемся. Все с первого раза, это успех. Переставляем джампер еще раз, жмем ресет — видим мигающий диодик.

Это круто, подумал я. Но вручную переставлять джампера и жать ресет каждый раз — это не путь джедая. Поэтому «We need to go deeper»



Читать дальше

Хак по прерываниям SPI и ноге CS в режиме Master

Как известно, один из наиболее глупых косяков МК серии STM32 — отсутствие аппаратного управления шиной CS.

Когда я задавал французу, который вел лекцию по STM32 в Москве об этом вопрос, он даже удивился: кому это нужно? Однако, много мелкой периферии вообще не заводится без сброса линии CS после каждой посылки — ЦАПы, вообще воспринимают этот строб как команду к выставлению. А те, кто работать без этой линии как-то могут, рано или поздно ловят сдвиг передачи (это когда один строб SCK либо добавляется, либо пропадает) и тоже начинает глючить.

Но это пол беды. Казалось — настрой прерывание Transfer Complete, да дрыгай там ножкой. А вот и нет. Нету там прерывания такого.

Так что приходится применять хак: всегда включать режим полного дуплекса и использовать прерывание RX not empty.



Читать дальше
  • +1
  • 26 апреля 2012, 12:17
  • dekar

Оживление китайского логического анализатора на CY7C68013 и перепрошивка USBee в Saleae Logic и обратно

После того, как китайцы раздерибанили логический анализатор USBee и не нашли ничего сверхъестественного, пачками повалили клоны разной степени оригинальности. Такой же и я прикупил, с двумя аналоговыми каналами. Но скачав недавно свежую USBee Suite я здорово удивился. Эта софтина определила анализатор как поддельный и перепрошила VID и PID в нем, злобно хихикая. После чего моя новая игрушка превратилась в кирпич :(.
Первым делом я поправил VID и PID в файле драйвера, но софт так и не увидел девайса.
Выручил как всегда Гугл.Собственно эта статья- перевод с iteadstudio.com, но думаю будет полезна людям с похожими анализаторами (к тому же нагуглились только две ссылки на решение).
Так как VID и PID хранятся во внешнем EEPROM, сам чип продолжает работать как ни в чем не бывало. Соответственно нам понадобится установить софт от производителя чипа, который лежит здесь: http://www.cypress.com/?docID=6018.
После чего распаковываем архив прикрепленный к статье (это 7z, но сайт не позволил такое загрузить, поэтому переименован в zip). В папке лежит драйвер от Cypress. Нам нужно будет поправить в файле CyUSB.inf (в Win7 почему-то заработало после правки CyUSB2.inf) строчки:
[Cypress]
; Cypress FX2LP default ID
%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4&PID_8613

После чего наш девайс должен быть виден в программе Cyconsole EZ-USB.
Жмем кнопку «S EEPROM», которая перепрошивает малое ПЗУ, из архива выбираем файл LA.iic для работы с Saleae Logic или usbeeaxpro_crack.iic для сами догадайтесь чего. Через секунду наш анализатор снова рабочий.

Кстати, сам чип очень интересный и такой анализатор можно использовать как универсальную юсб отладочную плату, при желании превращая ее обратно в логический анализатор. За 40-50 долларов это одна из лучших покупок, но рекомендую брать версию с защитой портов.