Суббота, 23.11.2024, 12:32
| RSS
Поиск
Главная |
Защита, контроль, управление
Форма входа

Меню

Авторские проекты

Статьи

Raspberry Pi

Полезная информация

Обратная связь

Ссылки

Форум

Чат

Канал YouTube

Группа в Facebook


Календарь
«  Март 2014  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930
31

Наш опрос

Ссылки


Яндекс.Метрика





.
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Raspberry Pi для домашней автоматизации. Порт UART

Raspberry Pi для домашней автоматизации. Порт UART

Наш канал в YouTube


 
UART Raspberry Pi
 
Последовательный порт UART - один из самых распространенных и популярных для организации ввода и вывода данных. Он имеет аппаратную реализацию в большинстве микроконтроллеров различных производителей, на его основе созданы интерфейсы RS232 и RS485, которые являются обязательным атрибутом современных промышленных контроллеров ПЛК. 

Поэтому, вполне логично, что последовательный порт был предусмотрен разработчиками и в GPIO Raspberry Pi. По умолчанию на порт UART выведена консоль управления. Подключив этот порт через согласующее устройство к COM порту персонального компьютера, через консоль можно работать с Raspberry Pi. Но так как у нас такое управление организовано посредством программы Putty через SSH, то значительно больший интерес представляет использование UART для работы с однотипными портами, например, с UART микроконтроллеров.

Итак, приступим к настройке UART. Для начала обновим систему и пакет WebIOPi:

$ sudo aptitude update

$ sudo aptitude install subversion

$ svn checkout http://webiopi.googlecode.com/svn/trunk/ webiopi-trunk

$ cd webiopi-trunk

$ sudo ./setup.sh

Примечание: если у вас уже были установлены последние обновления, то указанные выше операции можно пропустить

Далее открываем файл конфигурации WebIOPi Config:

sudo nano /etc/webiopi/config

Находим в тексте заголовок [DEVICES] и раскомментируем эту строку (удалим знак # в начале строки):

 #serial0 = Serial device:ttyAMA0 baudrate:9600

 serial0 = Serial device:ttyAMA0 baudrate:9600 (рис.1)

 

serial Raspberry Pi

Рис. 1

 

Затем открываем файл inittab 

sudo nano /etc/inittab

Находим строку:

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

и закомментируем ее:

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 (рис.2)

 

ttyAMA0 115200

Рис. 2

 

Открываем файл cmdline.txt 

sudo nano  /boot/cmdline.txt 

В строке:

dwc_otg.lpm_enable=0 console=tty1 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

убираем данные для ttyAMA0: console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

Отредактированная строка должна выглядеть так:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait (рис.3)

 

console=tty1

Рис. 3

 

Выполняем перезагрузку Raspberry Pi командой sudo reboot, заходим через браузер на WebIOPi и открываем вкладку Serial Port (рис. 4)

 

 serial monitor UART

Рис. 4

Данная страница предназначена для работы с UART Raspberry Pi. Она представляет собой окно терминальной программы, в которой можно принимать и отправлять информацию через последовательный порт UART. Cамый простой способ для проверки приема и передачи данных – замкнуть между собой вход и выход UART (рис.5). В этом случае передаваемые данные будут сразу приниматься приемником – т.е. получаем «эффект эхо». Например, если набрать в строке «Output» любую информацию и нажать «Enter», то эта же информация отобразится и в окне «Input». Это говорит о том, что UART Raspberry Pi работает как в режиме передачи, так и в режиме приема данных.

 

UART GPIO

Рис. 5

 

Для более наглядной демонстрации работы последовательного порта, можно подключить его через согласующее устройство к СОМ порту компьютера. Схема такого согласующего устройства показана на рис. 6. Она представляет собой драйвер согласования уровней МАХ3232 с элементами обвязки. Питание МАХ3232 производится напряжением 3,3В с разъема GPIO Raspberry Pi.

MAX232 Raspberry Pi

Рис. 6

 

На рис.7 показано подключение Raspberry Pi к СОМ порту компьютера через согласующее устройство:

 

 UART/RS232/RS485

Рис. 7

Запустив на компьютере любую терминальную программу и установив в ней скорость 9600 кб/с, можно обмениваться данными с Raspberry Pi (см. видео)

 

 

Последовательный порт UART планируется использовать для организации интерфейса RS485, через который с Raspberry Pi будут «общаться» контроллеры системы домашней автоматизации. 

 

Содержание всех статей сайта по теме Raspberry Pi




Категория: | Просмотров: 31083 | Добавил: Admin | Теги: | Рейтинг: 2.5/4 |
Всего комментариев: 2


1 Basel  
Хороший проект получился! Но почему  9600 кб/с.? Это предел скорости UART PICов (что то сомневаюсь)? Или это максимальная "Адекватная" скорость у порта UART Малины?  Например нужно опрашивать в реальном времени 20 - 30 контролеров, каждый услышав свой адрес, шлет 10 байтов всяких данных а по спец команде после адреса устанавливается его программирование - смена рабочих параметров. Не медленно будет? Просто я думаю, если есть возможность использовать полноценный RS485, почему бы не сделать 115200 кб/с, как в малине по умолчанию? а лучше максимум)) Я не имею ввиду переделывать все прошивки в контролерах и весь ваш проект в целом, просто интересуюсь возможно, или будет большой процент ошибок? Контролеры я хочу использовать AVR.

2 Admin  
0
Ну почему "только 9600"? Просто при том количестве контроллеров и объемах передаваемой информации, пока этого вполне достаточно. А второй момент заключается в том, что на низких скоростях проще тестировать и отлаживать устройства. После тестирования можно перейти и на более высокие скорости.





T2M © 2024
Сайт управляется системой uCoz