Перед новогодними за пару часов сплодил вот такую макетку :)
1. ds1340 - тут все без проблем, поддержана в новом ядре
2. Leds - светодиоды "нагло" через 300 Ом резисторы подвешены на пины АРМа. Забавно, что есть поддержка в ядре. Светодиод можно настроить в режим "heartbeat" "timer" и самое вкусное - "Nand" "MMS". Т.е. когда есть обращение к соответствующему накопителю - светодиод классно подмаргивает :)
3. ds1820 - тут все понятно..
4. tic149 (pcf8535), самая мистическая железяка
да ну.. железо почти все окучено..
в процессе разборка с датчиком температуры (софт) и индикатором..
мистичность истории в том, что в сорцах ядра я обнаружил драйвер с именем tic149fb. Как он там появился или откуда я его взял - напрочь не помню..
Традиционно перезаточил его под софтовый И2Ц, попробовал пристроить мой любимый размер шрифта 6х8, но бл$дское разрешение 132х64 экрана конфликтует с драйвером. Опять же надо по-людски оформить обращение к шине И2Ц :)
А шрифт 4х8 это нечто.. я, когда-то давно, сам рисовал такой. Особенно клёво получались буквы Ж Ы и Щ
О-о-о ...
Я тут пару дней уперся рогом - подключил TIC48 (правда на нем стоит PCF8531) к 9260, а он зараза дальше инита не работает ...
Т.е. инит проходит, LCD включается, показывает мусор, но после попытки выставления координат для заполнения "отключается", ну а если без предварительной установки координат (они по идее по 0-ям должны быть) заливать, то никаких изменений в картинке не наблюдаю ...
Все общение веду через свою апликуху, на I2C шине еще пару девайсов сидит (часики и вспомогательный контроллер, чувствуют себя хорошо).
Если инит проходит и мусор появляется, то уже хорошо. Полагаю, что ошибка где-то в переключение выбора страницы..
Прилагаю кусок инициализации от PCF8535 (это программно-пиновая реализация). По даташиту они достаточно схожи..
Интересно, а чем Вы к шине обращаетесь?
Я через I2C-GPIO (/dev/i2c-gpio-1), соответственно, как с обычным устройством - открываю файл, конфигурирую, пишу-читаю, ну и соответственно стартами и стопами уже не заведую (мне кажется, что в моем случае, где то в этом направлении причина).
будете смеятся - чисто пиновый интерфейс, шевелю ножками "ручками". Как оно работает, сам удивляюсь. :)
Пришлось написать программную реализацию, разумеется упрощенную и под конкретный случай. Все собираюсь переписать, чтоб было "как положено", регистрация устройства, все атрибуты и тыпы.. да руки не доходят.
А что тут смеяться, атмелцы сами так до сих пор нормальный драйвер I2C не сделали, тот что есть - имеет статус BROKEN, в итоге так же приходится использовать I2C-GPIO (ту что в ядре уже есть) ...
А чем имеющаяся реализация I2C не устроила?
Своей реализацией не поделитесь?
Да меня бы вполне устроила, знать бы как пользоваться. Как когда то про меня написали "мальчик знаками объяснил что его зовут Хуан" (С) sasami :)
Я не профессиональный программист и с той поры ушел не далеко..
Реализация - это громко сказано, скорее работа в одну сторону. Написано тривиально просто, но для диагностики вполне работает :)
Эти строчки прописаны перед инитом индикатора:
Спасибо, сейчас испытаю ...
В at91sam9260_devices.c есть структура i2c_gpio... в которой указываются пины и частота работы, в менюконфиг, в I2C hardware bus support включите GPIO-based, получите поддержку шины в ядре.
Потом можете собрать i2ctools (buildroot) для тестов ...