На роз'ємі P1 доступний порт UART0, а конкретно сигнали UART0_TXD та UART0_RXD. До нього можна під'єднати будь-який пристрій із послідовним зв'язком. Я під'єднав плату з позначенням P120205, оснащену модулем BlueTooth BTM-222.
Рис. Плата P120205, спроєктована в програмі KiCad.
Рис. Вигляд виготовленої плати P120205.
Під'єднуючи плату, зверніть увагу на напругу живлення, яка для Raspberry Pi має становити 3,3 В, а також на те, що сигнал RX плати слід під'єднати до UART0_TXD, тоді як сигнал TX плати P120205 слід під'єднати до виводу, позначеного UART0_RXD на Raspberry Pi. Схему з'єднань показано на рисунку нижче.
Рис. Схема з'єднання плати P120205.
Після виконання з'єднань слід під'єднати комп'ютер через новостворений канал. Для цього на комп'ютері з системою Windows (у мене це була Windows 7 Home Edition) натискаємо правою кнопкою на піктограмі "Пристрої Bluetooth", а потім "Додати пристрій".
Рис. Піктограма "Пристрої Bluetooth" внизу екрана.
За мить у вікні має з'явитися наш пристрій "Serial Adaptor". Знову натискаємо правою кнопкою миші на його піктограмі й далі вибираємо "Додати пристрій". Потім натискаємо "Ввести код парування пристрою" і вводимо код 1234. Буде встановлено драйвери, і можемо з'єднатися з комп'ютером.
Рис. Вікно "Встановлення програмного забезпечення..."
Далі в Панелі керування -> Система -> Диспетчер пристроїв -> Порти (COM і LPT) слід визначити номер порту COM (у мене COM24).
Рис. Вигляд Диспетчера пристроїв з видимим послідовним портом.
Після визначення номера порту слід запустити програму PuTTY і ввести конфігурацію, як на наведеній нижче ілюстрації:
Рис. Вікно конфігурації програми PuTTY.
Щоб з'єднатися з комп'ютером Raspberry Pi, слід натиснути кнопку "Open". І тут невеличка несподіванка, бо можемо отримати вікно, подібне до наведеного нижче.
Рис. Вікно термінала PuTTY.
Ці помилкові символи виникають через те, що комп'ютер Raspberry має канал UART, який стандартно працює зі швидкістю 115200 біт/с, тоді як заводська швидкість плати P120205 становить 19200 біт/с. Щоб вирівняти швидкості, слід на хвилину змінити швидкість комп'ютера Raspberry Pi на 19200 і налаштувати плату P120205. Для цього закриваємо вікно термінала PuTTY. За допомогою термінала, з'єднаного через ssh, або безпосередньо на екрані монітора, під'єднаного до Raspberry Pi, входимо в систему й редагуємо файл /boot/cmdline.txt, де є запис:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
Усі значення 115200 слід змінити на 19200. У файлі /etc/inittab у рядку:
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
слід змінити значення 115200 на 19200. Після виконання цих дій і перезапуску Raspberry Pi можемо вже входити в систему за допомогою термінала, з'єднаного через інтерфейс BlueTooth.
Якщо хочемо використати канал UART для власних потреб або змінити налаштування модуля P120205, такі як PIN-код чи швидкість передавання, слід встановити термінальну програму та внести зміни в деякі файли. Це може бути minicom. Для цього вводимо:
sudo apt-get install minicom
У файлі /boot/cmdline.txt слід вилучити записи щодо пристрою ttyAMA1, тобто раніше змінений рядок тепер має виглядати так:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
У файлі /etc/inittab слід закоментувати (#) рядок:
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Далі перезапуск Raspberry Pi. Тепер можемо запустити термінал із заданими параметрами:
minicom -b 19200 -o -D /dev/ttyAMA0
Щоб змінити вибрані параметри, слід ознайомитися з документацією модуля BT222, зокрема з командами AT. Я змінив назву пристрою на RPI001, змінив PIN-код, вимкнув відлуння тощо.
ATN=RPI001
ATX0
ATP=12345678
ATM0
ATK0
ATE0
ATL5
Після кожної команди маємо отримати OK. Якщо отримаємо ERROR, це означає, що щось пішло не так, і команду слід повторити. Оскільки я змінив швидкість командою ATL5 на 115200, треба закрити програму minicom. Вихід із minicom: Ctrl-A, потім x і підтвердження клавішею Enter. Далі слід знову запустити minicom з такими параметрами:
minicom
-b 115200 -o -D /dev/ttyAMA0
ATQ1
ATI?
Маємо отримати щось подібне:
F/W VERSION: v6.26
Знову виходимо з minicom: Ctrl-A, потім x і підтвердження Enter. Від цього моменту маємо повністю робочий і придатний до програмування інтерфейс UART.
Використана тут плата Bluetooth P120205 – це наша власна конструкція. Подібні комунікаційні модулі – UART, RS485, Ethernet чи Bluetooth – ми проєктуємо та виготовляємо на замовлення.