Спаривание SiLabs и Arduino
- Войдите на сайт для отправки комментариев
Ср, 08/05/2013 - 11:11
Доброго времени суток. Передо мной стоит задача: вывести информацию через SiLabs C8051F300 на LCD через I2C (Arduino LCM1602). С SiLabs я достаточно хорошо знаком, а вот с Arduino не очень. Т.к. стандартные библиотеки, естественно, не подойдут, я хочу понять, какую именно инфу передают функции из оных. Покопавшись в библиотеках, я так и не смог разобрать, как эта штука инициализируется. Может есть у кого опыт или советом кто добрым поможет?
PS в google слать не надо, уже ходивши. Заранее спасибо.
Немного дополню. На данный момент сей "гаджет" выглядит так:
Позднее (надеюсь что вывод все-таки будет работать) планирую на шину повесить гидрометр и барометр, в МК уже строен тепловой датчик. В итоге должна будет получится небольшая метеостанция, с инфой о температуре, давлении и влажности. Сами функции протокола i2c уже написаны (в основном через SFR регистры),через CrossBar шина выведена на нужные пины, осталось разобраться с расширителем на LCD. Выбор протокола I2C неслучаен, у моей платы имеется всего 2 выхода с одного порта, и то раньше там были светодиоды =)
Посмотрите, с какой библиотекой работает данный дисплей (беглое гугление дает LiquidCrystal_I2C), качайте ее и смотрите, как реализованы функции.
Тут на форуме обсуждалось в теме http://arduino.ru/forum/programmirovanie/lcd-i2c-partizanit, да и вообще - похожих тем на форуме около десятка...
Да рыскал уже, но толи я ослеп,то ли лыжи не едут. К примеру - процесс инициализации:
Какие команды он отправляет, в какой последовательности и т.д так и не нашел. Я то понимаю, что если этот LCD подклюить к другому Arduino с этими библиотеками, проблем бы не было. Но ведь наверняка на других МК его можно заставить работать. Ну я надеюсь)
Мне пока непонятно - почему и откуда у Вас выплыл "другой ардуино"? И что в конечном итоге у Вас не работает? i2cscanner видит это устройство на шине?
ему нужен перечень команд для этого экрана, чтобы он мог написать свою либу под силабс. я правильно понял?
Ок, напишу еще раз, мне не лень. "другой ардуино" ниоткуда не выплывал - его нет. Я имел ввиду контроллер производства Arduino, т.к. с ними библиотеки LiquidCrystal_I2C будут работать. То, с чем работаю я, описано выше. Даже с рисунком. Про i2cscanner и говорить нечего, он не только устройство не увидит, но и саму шину тоже, как вы наверное понимаете. А понять я пытаюсь, какие команды в hex передаются на устройство.
Да, Александр, именно так.
Да рыскал уже, но толи я ослеп,то ли лыжи не едут. К примеру - процесс инициализации:
......
- и больше ничего.
Команды:
Инициализация:
ниже следующая же функция:
еще ниже функция:
Вот и вся инициализация.
та не Макс, это не перечнь команд. Это константы, которые подставляются при вызове функций, которые в wire. А в силабсах крапаль по другому TWI работает, точнее его там нет, есть чистый I2C, и эта хрень там работать не будет, без тупой отладки всех этих команд и переписи с нуля. может я не прав, но думаю, если бы я такое просил, допустим на lpc, то мне точно бы не помогло.
Мне показалось что на фото дуина Micro, а там какой-то свой контроллер, но сути немняет - разбираетесь как настраивается I2C и дальше по аналогии эти же команды дисплея отправляете. А TWI и I2С - это совершенно одинаковые протоколы/интерфейсы, просто называются по разному.
я конкретно в вопрос не въезжал, но если там родные команды hd44780, и просто по адресу 0x27 их записывать то да, это меняет дело. я просто предположил что там свой перечень команд, на которые нет документации, а просто пример скетча.
Извиняюсь, что не заходил некоторое время, праздники. Да, действительно , вот этой то строки я не заметил:
_displayfunction = LCD_4BITMODE | LCD_1LINE | LCD_5x8DOTS;
Теперь я понял как оно работает. Едиственное, я поначалу забыл о подгрузочных резисторах, т.е. i2c расширитель даже не отсылал ack. Сейчас пайку закончил, на днях вернусь к коду. В любом случае, когда закончу, отпишусь в этой ветке, для тех, кому это может пригодиться. Всем огромное спасибо за отклики!
P.S. Два одтягивающих резистора(3.6кОМ) от +5V к линиям SDA и SCL:
Все никак не могу до конца отладить работу этого LCD. Во первых - при выводе в цикле банального счечика дисплей мерцает каждый шаг. Но это еще ладно, в последнее время, вместо чего-либо на экране видны полторы строки, т.е первая и 3 верхних пикселя второй. При этом работа идет, т.е. он периодически мерцает, как при выводе. Сталкивался с таким кто-нибудь, что сделать можно? Заранее спасибо.