TRO
Member
Модуль HM-10 работает с АТ командами для настройки и управления своей переферей. + прозрачно обменивается через UART посылками по 20 байт.
Поскольку я жадный то давно хотелось подключить дисплей к BLE модулю без всяких промежуточный контроллеров.
А поскольку еще и ленивый, то не хотелось изучать всякие языки и писать прошивку под чип модуля, т.е. нету знаний что бы написать свою прогу для модуля.
Поэтому появилось вот такое кривое и медленное решение для гуманитариев, где всей работы это запаять 12 проводков, и никакого программирования.
Начиная с версии 603, прошивка модуля умеет одной АТ командой выводить 10 бит в десять своих линий PIO2 ~ PIO11
V603
====================================================
-Add AT+MPIO<P1> command used to control multi-pios in one AT command
P1: 000 ~ 3FF
000 or 3FF is HEX format, change to binary format is 0000000000 or 1111111111,
left side to right side maped PIO2 ~ PIOB
Этих 10 линий как раз в притык хватает что бы управлять экраном 1602 в восьмибитном режиме при помощи примитивного ногодрыга.
Сказано - сделано, припаиваем модуль к экрану по нижеследующей схеме.
Кстати да, экран у меня 3 вольтовый (отличительная особенность на задней части экрана распаяна восьминогая микросхемка).
Далее подключаю терминалку Terminal 1.9b к модулю через USB_UART переходник, и даю через терминалку вот такой скрипт:
//******************************
// Terminal Script
// Created: 12.03.2020 12:24:42
//******************************
program test;
begin
comsendstr('AT+MPIO000');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO13C');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO13C');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO13C');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO101');
Delay(20)
comsendstr('AT+MPIO001');
Delay(20)
comsendstr('AT+MPIO108');
Delay(20)
comsendstr('AT+MPIO008');
Delay(20)
comsendstr('AT+MPIO101');
Delay(20)
comsendstr('AT+MPIO001');
Delay(20)
comsendstr('AT+MPIO10C');
Delay(20)
comsendstr('AT+MPIO00C');
Delay(20)
comsendstr('AT+MPIO106');
Delay(20)
comsendstr('AT+MPIO006');
Delay(20)
comsendstr('AT+MPIO331');
Delay(20)
comsendstr('AT+MPIO231');
Delay(20)
comsendstr('AT+MPIO332');
Delay(20)
comsendstr('AT+MPIO232');
Delay(20)
end.
Можно конечно было вручную набирать кучу команд AT+MPIOХХХ, но выдавать их пачкой удобнее при помощи скрипта.
Последние 4 команды в скрипте выдают 2 символа (по 2 команды на символ, ибо надо ногой дрыгнуть туда сюда), а все что перед ними - инициализация.
После инициализации подключился к модулю по воздуху терминалкой из смарта, и так же с помощью двух команд записал символ в экран.
Решение рабочее.
Плюсы в том что экономим на промежуточном контроллере (бюджетно), ничего программировать не надо, 12 проводков и можно выводить на экран АТ командами.
Минус в том что вывод на экран идет довольно медленно, для редко меняющихся значений вполне может подойти.
Сами модули я брал дешевые не оригинальные на чипе CC2541 с не подходящей китайской прошивкой, и программатором заливал прошивку HM-10, как это делать есть много информации в инете, в том числе без программатора обычной ардуиной, проще конечно купить модуль с уже с правильной прошивкой HM-10 версии 603 и выше, я шил версию 708.
Поскольку я жадный то давно хотелось подключить дисплей к BLE модулю без всяких промежуточный контроллеров.
А поскольку еще и ленивый, то не хотелось изучать всякие языки и писать прошивку под чип модуля, т.е. нету знаний что бы написать свою прогу для модуля.
Поэтому появилось вот такое кривое и медленное решение для гуманитариев, где всей работы это запаять 12 проводков, и никакого программирования.
Начиная с версии 603, прошивка модуля умеет одной АТ командой выводить 10 бит в десять своих линий PIO2 ~ PIO11
V603
====================================================
-Add AT+MPIO<P1> command used to control multi-pios in one AT command
P1: 000 ~ 3FF
000 or 3FF is HEX format, change to binary format is 0000000000 or 1111111111,
left side to right side maped PIO2 ~ PIOB
Этих 10 линий как раз в притык хватает что бы управлять экраном 1602 в восьмибитном режиме при помощи примитивного ногодрыга.
Сказано - сделано, припаиваем модуль к экрану по нижеследующей схеме.
Кстати да, экран у меня 3 вольтовый (отличительная особенность на задней части экрана распаяна восьминогая микросхемка).
Далее подключаю терминалку Terminal 1.9b к модулю через USB_UART переходник, и даю через терминалку вот такой скрипт:
//******************************
// Terminal Script
// Created: 12.03.2020 12:24:42
//******************************
program test;
begin
comsendstr('AT+MPIO000');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO13C');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO13C');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO13C');
Delay(20)
comsendstr('AT+MPIO03C');
Delay(20)
comsendstr('AT+MPIO101');
Delay(20)
comsendstr('AT+MPIO001');
Delay(20)
comsendstr('AT+MPIO108');
Delay(20)
comsendstr('AT+MPIO008');
Delay(20)
comsendstr('AT+MPIO101');
Delay(20)
comsendstr('AT+MPIO001');
Delay(20)
comsendstr('AT+MPIO10C');
Delay(20)
comsendstr('AT+MPIO00C');
Delay(20)
comsendstr('AT+MPIO106');
Delay(20)
comsendstr('AT+MPIO006');
Delay(20)
comsendstr('AT+MPIO331');
Delay(20)
comsendstr('AT+MPIO231');
Delay(20)
comsendstr('AT+MPIO332');
Delay(20)
comsendstr('AT+MPIO232');
Delay(20)
end.
Можно конечно было вручную набирать кучу команд AT+MPIOХХХ, но выдавать их пачкой удобнее при помощи скрипта.
Последние 4 команды в скрипте выдают 2 символа (по 2 команды на символ, ибо надо ногой дрыгнуть туда сюда), а все что перед ними - инициализация.
После инициализации подключился к модулю по воздуху терминалкой из смарта, и так же с помощью двух команд записал символ в экран.
Решение рабочее.
Плюсы в том что экономим на промежуточном контроллере (бюджетно), ничего программировать не надо, 12 проводков и можно выводить на экран АТ командами.
Минус в том что вывод на экран идет довольно медленно, для редко меняющихся значений вполне может подойти.
Сами модули я брал дешевые не оригинальные на чипе CC2541 с не подходящей китайской прошивкой, и программатором заливал прошивку HM-10, как это делать есть много информации в инете, в том числе без программатора обычной ардуиной, проще конечно купить модуль с уже с правильной прошивкой HM-10 версии 603 и выше, я шил версию 708.