Метеостанция... без микроконтроллера
Автор: Сергей Безруков (aka Ser60) Наверняка у многих читателей возникала потребность испытать сенсоры или другие микросхемы с интерфейсом I2C до установки их в проектируемое устройство. Такая проблема, конечно, легко разрешима и один из путей для этого – установить тестируемую микросхему на монтажную плату и связать ее с микроконтроллером (МК). При этом среда разработки программ для МК наряду с внутрисхемным отладчиком может быть использована для коммуникации с тестируемой микросхемой и отображения посылаемых и принимаемых из нее данных. Можно поступить и иначе - исключить МК путем использования преобразователя USB-I2C, которыми сегодня буквально завален рынок микроэлектроники. В этом случае можно будет производить всю отладку на компьютере, используя Ваш любимый язык и среду программирования, например Microsoft Visual Studio. Наверняка есть и другие способы. В статье пойдет речь о микросхеме USB-SMBus преобразователя CP2112, выпускаемой фирмой Silicon Laboratories. Помимо преобразования протокола в ней также имеется 8-битный порт ввода/вывода и встроенный стабилизатор на 3.3В, от которого можно питать тестируемую схему. Питание всей схемы, таким образом, будет производиться от порта USB компьютера. Особенностью CP2112 является аппаратная реализация протокола USB-HID, что исключает надобность в специальном драйвере и позволяет использовать стандартные драйверы, входящие в состав практически любой современной ОС. Для проверки концепции была собрана следующая схема. Про датчик Si7005 я уже рассказывал в соответствующей статье здесь на сайте (https://radiokot.ru/circuit/digital/measure/85/). Согласно ДШ, его питание или вход /CS следует заземлять при работе с другими сенсорами, подключенными к той-же I2C шине. Иначе, как показал опыт, сенсор блокирует линию данных SDA, что делает дальнейшую работу с шиной невозможной. В данном случае я коммутирую его питание через резистор R3, сконфигурировав пин GPIO.5 микросхемы IC3 на выxод. В остальном, каждая из микросхем включена по стандартной схеме из ДШ. Лавинные диоды D1-D3 предохраняют микросхему IC3 от повреждения, а резисторы R1, R2 являются подтягивающими для линий I2C. Вся схема собрана на макетке, файлы для Eagle каждой из плат прилагаются. Структура HID сообщений (reports) подробно описана в апноуте AN495 на вебсайте silabs.com фирмы. Для более высокоуровневой коммуникации с CP2112 из программы пользователя фирмой разработана специальная библиотека, доступная с сайта фирмы в форматах .dll для Windows и .dylib для MacOS. Первая, например, может быть использованя в программах на языках C/C++, C#, и VB. Все API функции этой библиотеки описаны в апноуте AN496. Тестовая программа для общения с сенсорами и индикации иx показаний написана на языке C# (исходник прилагается). Она предназначена для компиляции в среде Visual Studio 2012, и испытана под управлением операционных систем Windows-7 и Windows-8. Программа запрашивает сенсоры каждые 2 секунды и отображает полученные данные. Температура индицируется в °C, а давление в мм.рт.ст. Я не в коей мере не претендую на то, что дизайн окна программы соответствует тому, как Вы хотите видеть его у себя на компьютере. Код программы обильно прокоментирован, так что каждый при желании сможет подстроить его под свои нужды.
Файлы: Все вопросы в Форум.
Эти статьи вам тоже могут пригодиться: |
|
||||||||||||
|
||||