UART интерфейс наряду со стандартными механизмами типа JTAG и SWD является является одним из основных методов отладки микропрограмм для микроконтроллеров. Обычно используется COM-порт, хотя последнее время все чаще мосты на USB-шину и драйверы виртуального COM-порта на PC, так как USB есть повсеместно, а вот COM-порт встречается все реже и реже.
Еще один способ использования UART, ставший доступным и дешевым относительно недавно - это UART-Bluetooth мост, позволяющий производить обмен с микроконтроллерами по беспроводному интерфейсу BlueTooth. При этом с софтовой стороны на PC все точно так же как и при работе по обычному физическому COM-порту, да и со стороны контроллера не нужны никакие дополнительные модификации. Мало того, Bluetooth-UART - это практически идеальный способ состыковки своего устройства с современным планшетом-кпк-телефоном на Android, WinCE и, скорее всего, iOS. Купить модули можно, к примеру, на DealExtreme, там цена за модуль около 200 рублей с доставкой.
Вообще, имеется информация о модулях HC-04 (на сколько я понимаю, полноценный) и HC-05 (видимо урезанный, только с функционалом UART). Какой модуль продается на DX не разбирался. В настоящий момент мне требуется только функционал UART.
Добавление: как выясняется, зоопарк модулей растет, попался модуль HC-05, видимо, "истинный". Определился не как linvor, а как HC-05. Распиновка оказалась у него несколько другая (светодиод не загорался):
Невысокая цена и подтолкнуло попробовать внедрить беспроводной интерфейс и опробовать его для целей отладки. Для своих целей я обернул модуль в оболочку и вывел основные линии на обычный удобный PBD-разъем с возможностью установки на плату управления LPC134x:
Для конфигурирования модуля используются сделующие команды:
Значение | Скорость (бод) |
1 | 1200 |
2 | 2400 |
3 | 4800 |
4 | 9600 |
5 | 19200 |
6 | 38400 |
7 | 57600 |
8 | 115200 |
9 | 230400 |
Команды требуется посылать по интерфейсу UART, когда Bluetooth не активен, иначе модуль не воспримет команды и передаст их по воздуху хосту. Скорость по-умолчанию 9600, хотя должен работать Autobaund (автоподстройка скорости), но это не проверял. Время выполнения команды до 1 секунды, пока не придет ответа, лучше ничего посылать нельзя. Что не маловажно, эти настройки энергонезависимы.
Так же есть статьи о программировании непосредственно самих модулей, это очень интересная опция, в отдельных случаях можно вообще построить целую систему на таком модуле, не прибегая к помощи отдельного микроконтроллера.
А вот и сам модуль на хост-компьютере:
Сброс на компьютер полетной информации: