Кроме стандартной обвязки, мини-USB разъема и цепей питания, на плате установлены три светодиода, один для сигнализации наличия питания и два с открытыми анодами для свободного использования (ограничивающие ток резисторы установлены).
Ну и последний нюанс — это первая платка с MCU, на которой я не поставил кнопку сброса (хоть и предусмотрел вывод на внешнюю цепь), и зря. На отладочных платах без нее очень неудобно, все равно потом пришлось подключать внешнюю.
Первый запуск ZP-STM32, LCD S65 на базе L2F50. На удивление, LCD работает на 36MHz, хотя ПСП для SPI STM32F103C8 на 36MHz равна ПСП на 18MHz.
Старый, добрый, но почти не нужный COM-порт без проводов Изначально обычный последовательный порт USART использовать не планировалось ввиду очевидного атавизма для новых разработок. Во встраиваемых системах, если нет прямой необходимости сопряжения с имеющимися устройствами, этот интерфейс используется в отладочных целях для вывода контрольной информации. Но такой вывод легко переназначается на любую другую периферию, пишется своя процедура потокового вывода, и конфигурируется нужный поток и буфер. Таким образом я конфигурировал графический SPI дисплей на AVR. Но нужно учитывать, что при этом требуется гораздо большее время для вывода информации, что может быть неприемлимо при отладке, поэтому подобный прием лучше подходит для сообщений об обнаруженных ошибках, а лог можно записывать в файл, хотя это потребует написания отдельной процедуры или установки какой-нибудь файловой системы.
Но как-то, копаясь в закромах, взгляд упал на давным-давно купленный комплект 868MHz RF-модулей FSK производства
HOPE RF , состоящий из одного трансивера и по паре передатчиков HM-T и приемников HM-R. Более полутора лет назад я в одной из заметок приводил их фотографии и измерял скорость передачи, модулируя вход передатчика меандром и контролируя качество приема осциллографом. Тогда было выяснено, что после 20KHz начинаются явно заметные проблемы с джиттером и постепенно появляются пропуски сигнала. С тех пор все модули так и пролежали без дела в упаковке. Их паспортная ПСП 4800 бод давно уже устарела, да и все более популярны 2.4GHz модули.
Но и эти вполне вполне могут сгодиться. Так как скоро перейду к роботостроению (уже заказал гусеничное шасси и двухмоторную трансмиссию под боевого лазерного робота, вторым шагом будет мобильная вертолетная площадка с боевым лазером на вертолете), то простые команды управления вполне можно передавать и со скоростью 4800 бод, к тому же радиус досягаемости RF-модулей - несколько сот метров.
А пока — можно потренироваться в стандартном канале последовательного порта. Для этого сконфигурируем USART1 микроконтроллера на симплексную передачу и подсоединим к выводу TX порта передатчик, у которго всего три контакта — питание и вход. Питание от 2.7 до 5 V. Если порт сконфигурирован с открытым стоком, то его нужно подтянуть на плюс резистором, или включить внутренний у порта.
Антенну подсоединять не будем (в комплекте идет залуженный с одного конца отрезок изолированного провода длиной в несколько сантиметров), так как дистанция пока не будет превышать пары метров.
Приемник, у которого 4 вывода (кроме питания и входа, еще и ENABLE с активным высоким уровнем), подсоединим к виртуальному COM-порту PC, сделанному на базе FT232RL. Для этого воспользуемся другим заброшенным девайсом, Arduino Duemillanove. Если оттуда снять процессор, то получим обыкновенный переходник USB-TTL USART.
На микроконтроллере запускаем в непрерывном цикле передачу строки «ZP USART», на PC конфигурируем любой удобный терминал (я использовал встроенный Hyper Terminal) на номер виртуального порта.
На экране должен постоянно появляться результат приема:
В радиусе двух метров от передатчика (USB-кабель 2.5м), прием без сбоев, на максимально возможно длине шнура иногда проскакивают помехи (напомню, антенны не подсоединяются, ENABLE у приемника активен постоянно). Не стоит забывать, что диапазон 868 MHz открытый, и там творится черт знает что.
Отсоединяем передатчик от платы (то есть мы в эфир ничего не передаем), смотрим, что показывает выход приемника:
Принимаем какие-то сигналы внеземной цивилизации. В отдельные часы такие сигналы даже воспринимаются компьютером как управляющие и на экране начинается чехарда — курсор хаотично бегает и включает все подряд. Отфильтрованная на входе спектральная плотность сигнала (рамка до 30Кгц):
Маркер стоит на 15625КГц – принимаем сигнал строчной развертки чьего-то телевизора, посередине — половинная гармоника, слева — сетевые наводки. Спектр часто меняется, появляются новые частоты, если рамку уводить выше, то увидим устойчивый сигнал от своего монитора (194KHz). Чувствительность приемника позволяет уловить все в радиусе нескольких сотен метров.
Поэтому нужно включать приемник только на моменты работы своего передачика (через ENABLE), применять фильтрацию и кодирование посылок, но в пределах небольшого помещения достаточно будет и ENABLE-защиты.
Разумеется, если убрать приемник и передатчик и соединить напрямую TX на плате ZP-STM32 и виртуального COM-порта, то вопрос помехозащищенности отпадает сам собой и достижимы скорости в миллионы бод.
Но и беспроводной последовательный порт работоспособен и вполне пригоден для передачи небольших потоков информации в виде отладочной информации или команд управления.
Испытания проводились на бредборде, общий вид которого на сегодня такой:
В правом нижнем углу ринга как раз идет подготовка к управлению трансмиссией боевого робота — черная микросхема это КА3082 (устаревшая, но зато как раз для бредборда, обороты регулируются аналоговым напряжением на одном из входов, в реальном прототипе, вероятно, будет что-то от Allegro A39xx, с регулировкой скорости путем ШИМ-модуляции входных логических сигналов). Рядом с ней стоит аллегровский датчик Холла для измерения потребляемого тока.
В среднем ряду, правее ZP-STM32, располагаются три NOR -флэшки от разных производителей и последовательная SRAM от Microchip в DIP корпусе. Между флэшками планируется устроить забег на скорость. Примечательно, что вместо заказанной M25P16 от Numonyx Farnell прислал старую производства STM. Если не ошибаюсь, STM передала их в новую компанию Numonyx в 2005 году, уже и Numonyx куплена Micron-ом, а под эту флэш, на сайте Micron, так и подцеплены самые первые драйвера от STM.
Пока не установлен контроллер тачскрина (TSC2200), как оказалось, в хозяйстве отстутствует переходник на 0.65мм, есть только на 0.635мм, на котором стоит TSC2007, но на этот раз попробуем контроллер со SPI и встроенным клавиатурным модулем, для экономии выводов STM32F103C8.
В декабре ZP-STM32 будет заменен на более серьезную плату на 144-ногом STM32, так как, кроме робота, будем работать с мультимедийным и 3D контентом.
Комментарии, вопросы и предложения
здесь. Zauropod,
19 ноября 2010 года.