Программа Сервисный Центр
0

Плата расширения для Raspberry Pi, совместимая с Arduino. Часть 1


Как известно, одноплатный компьютер Raspberry Pi (а также обновленная версия Raspberry Pi 2) может использоваться не только в качестве мультимедиа устройства. Он находит применение в приложениях Интернета вещей, системах автоматизации и управления, а также в системах безопасности и разграничения доступа. Основные проблемы, с которыми сталкиваются многие разработчики при использовании Raspberry Pi во встраиваемых системах, связаны с отсутствием аналоговых входов/выходов и строго регламентированным уровнем 3.3 В для портов ввода/вывода. Именно из-за этих, казалось бы, несущественных ограничений радиолюбители не могут подключать аналоговые датчики и платы расширения Arduino к Raspberry Pi. А ведь таковых периферийных модулей и плат расширения на сегодняшний день создано огромное количество, и именно они смогут расширить область применения Raspberry Pi.

Плата расширения для Raspberry Pi, совместимая с Arduino. Часть 1
Рисунок 1.Плата расширения GPIO Shield для
Raspberry Pi, совместимая с Arduino.

В статье мы рассмотрим плату расширения GPIO Shield, которая добавит возможность подключения аналоговых датчиков и плат расширения Arduino к Raspberry Pi (Рисунок 1). Напряжение питания на плату GPIO Shield может поступать от Raspberry Pi (5 В) или от внешнего источника (12 В), но более подробно мы рассмотрим этот вопрос ниже. Плата подключается к Raspberry Pi посредством GPIO-совместимого разъема, а для подключения типовых контроллеров Arduino и плат расширения имеются соответствующие штыревые контакты. Другими словами, предлагаемое аппаратное решение является своего рода мостом между Raspberry Pi и Arduino.

Принципиальная схема

При разработке платы расширения преследовались следующие цели:

  • Повышение функциональности портов GPIO за счет добавления непосредственно на плату расширения 4-канального АЦП с дифференциальными или несимметричными входами, а с дополнительным модулем – 16 цифровых линий ввода/вывода и ЦАП;
  • Использование напряжения питания 5 В платы Raspberry Pi или внешнего источника 12 В для совместимости с платами расширения Arduino;
  • Преобразование логических уровней 3.3 В – 5 В цифровых линий ввода/вывода и интерфейсов передачи данных I2C/SPI;
  • Возможность использования аналоговых входов АЦП в дифференциальном и линейном режиме;
  • Обеспечение совместимости с Raspberry Pi посредством установки 26-контактного разъема GPIO;
  • Установка разъемов для прямого подключения Arduino и будущих плат, которые планируются к выпуску;
  • Возможность установки дополнительных разъемов для подключения внешних адаптеров USB-I2C, USB-SPI.

На Рисунке 2 изображена принципиальная схема GPIO Shield, реализующая перечисленные цели на практике.

Плата расширения для Raspberry Pi, совместимая с Arduino. Часть 1
Рисунок 2.Принципиальная схема платы GPIO Shield.

Регулятор напряжения выполнен по классической схеме с использованием микросхемы стабилизатора LM7805. Перемычка EXT/INT предназначена для выбора способа питания платы расширения: внешний источник 12 В через регулятор 7805 или внутренний источник 5 В с контакта 2 разъема GPIO Raspberry Pi. Следует помнить, что используемая для питания внешней периферии схема регулятора напряжения на плате Raspberry Pi способна обеспечить выходной ток 500 мА для версии A и 300 мА для версии B. Поэтому для внешних модулей и датчиков с бóльшими токами потребления или для плат расширения с напряжением питания 12 В следует использовать внешний источник питания, и соответствующим образом установить перемычку EXT/INT.

Рассмотрим схему преобразования логических уровней, в которой использованы два разных приема.

Преобразование логических уровней цифровых линий ввода/вывода выполняется с помощью 8-разрядной двунаправленной микросхемы сдвига уровней TBX0108 компании Texas Instruments, имеющей две раздельные шины питания и автоматически определяющей направление передачи данных.

Порты A микросхемы подключаются к интерфейсу Raspberry Pi (разъем GPIO которого обозначен на схеме как RPY), порты B подключаются к разъемам IOL и IOH портов ввода/вывода Arduino. На выводы VCCA и VCCB подаются опорные напряжения для преобразования уровней, подключенные к шинам 3.3 В и 5.0 В, соответственно. Высокий логический уровень на выводе OE разрешает работу микросхемы, поэтому он подтянут через резистор к напряжению VCCA. Низкий уровень на этом выводе переводит все выходы микросхемы в высокоимпедансное состояние. Соответствие выводов разъемов Arduino и Raspberry Pi представлено в Таблице 

Что касается линий интерфейсов I2C, SPI и последовательного порта UART, для преобразования логических уровней мы выбрали решение на полевых N-канальных MOSFET BSS138, работающих в режиме обогащения с пороговым напряжением 1.3 В.

Схемы преобразования уровней идентичны для каждой сигнальной линии. В качестве примера рассмотрим линию SDA шины I2C. Затвор транзистора T7 подключен к шине питания 3.3 В, исток подключен к линии низкоуровневого сигнала (3.3 В), сток – к линии высокоуровневого сигнала (5.0 В).

Таблица 1.Соответствие выводов разъема
GPIO Raspberry Pi и разъема Arduino
Порты
Arduino
Разъем GPIO
Raspberry Pi rev.1
Разъем GPIO
Raspberry Pi rev.2
D2GPIO18GPIO18
D3GPIO23GPIO23
D4GPIO24GPIO24
D5GPIO25GPIO25
D6GPIO4GPIO4
D7GPIO17GPIO17
D8GPIO21GPIO27
D9GPIO22GPIO22

Теперь рассмотрим узел аналого-цифрового преобразования, для которого мы выбрали микросхему компании MicrochipMCP3428.

При разработке этого узла платы мы пошли на некоторый компромисс при распределении сигналов по выводам разъемов Arduino. Дело в том, что Arduino имеет 6 аналоговых входов, но два из них (A4, A5) используются совместно с интерфейсом I2C. При разработке проекта в среде Arduino IDE мы можем программно переопределять назначение выводов в соответствии с требованиями приложения. Для Raspberry Pi такой возможности нет, как нет и встроенного АЦП. В нашем случае мы выбрали внешнюю микросхему АЦП, которая подключается к микроконтроллеру по шине I2C через указанные выводы порта, оставляя свободными только 4 аналоговых входа. Но, в то же время, микросхема MCP3428 предоставляет 16-разрядную точность измерений линейных или дифференциальных сигналов.

Выводы микросхемы CH1+ … CH4+ подключаются к контактам A0 … A3, соответственно, разъема АЦП Arduino. Выводы CH1– … CH4– подключены к отдельному разъему, и с помощью перемычек J0 … J3 могут индивидуально замыкаться на «землю». Таким образом каждый вывод можно сконфигурировать на прием как линейных, так и дифференциальных сигналов. Сигналы SDA и SCL выведены на соответствующие контакты разъема Arduino, а также на разъем GPIO Raspberry Pi (выводы 5 и 3) через преобразователи уровней на транзисторах Q7 и Q8. Для установки адреса микросхемы на шине I2C используются входы ADR0 и ADR1. Указанному на схеме состоянию этих входов соответствует адрес 0x68 (см. техническое описание MCP3428).

Линии последовательного порта с выводов 8 и 10 разъема GPIO через преобразователи уровней подключаются к контактам TXD и RXD разъема Arduino.

Плата расширения для Raspberry Pi, совместимая с Arduino. Часть 1
Рисунок 3.Общий вид платы GPIO Shield со
стороны разъемов Aruino.

Общий вид платы со стороны разъемов Arduino показан на Рисунке 3, а в Таблице 2 приведен перечень используемых компонентов.

Таблица 2.Список использованных компонентов
Обозначение
в схеме
НоминалКорпус
R1 – R1710 кОмSMD 0805
R18470 ОмSMD 0805
С1, С3100 нФSMD 0805
C2, C4100 мкФ 25 В 
U1TXB0108PWR 
U2MCP3428-E/SL 
U3MC7805ABD2TD2PAK
LEDСветодиодSMD 0805
T1 – T8BSS138W-7-F 
D1GF1M-E3/67A 
RSTКнопка без фиксации 
Теги: Arduino, Raspberry
 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Декабрь 2016 (5)
Ноябрь 2016 (42)
Октябрь 2016 (34)
Сентябрь 2016 (38)
Август 2016 (34)
Июль 2016 (36)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"