Есть дисплей с видеоконтроллером T112. Не магу ни как разобраться, как посылать ему команды по I2C шине… Правильно ли я отправляю команды? И зачем там 2 slave адреса?
Код:
void send_cmd(unsigned char addr, unsigned char data){ I2C_Start(); // старт I2C_WriteByte(0x50); // slave адрес I2C_WriteByte(addr); // адрес регистра I2C_WriteByte(data); // данные I2C_Stop(); // стоп }
Вложение:
Комментарий к файлу: Часть даташита tw112.pdf [156.17 KiB]
Скачиваний: 400
Не удалось... Не понятно: по какому адресу отсылать данные, как настроить Tcon, питание матрицы и пр. Нету нормального даташита. Есть только исходники китайского dvd с похожим контроллером.
Киньте в личку адрес, отправлю полный даташит на t112 с регистрами. Есть у меня экранчик на таком скалере без центрального проца, хочу запустить... И еще есть рабочий двд со скалером MX88V462 (даташита нет) и цпу MT1389HD, сейчас пытаюсь сниферить инициализацию. Нужно отсеить остальные микрухи сидящие на шине. Возможно ковыряние прояснит картину с t112.
Даташит с регистрами у меня есть, но разобраться в нем - что куда в какой последовательности не смог… Скинул в лс исходники. Там есть инициализация контроллера и дефейны для разных разрешений дисплеев – может, чем поможет…
Вложения:
Комментарий к файлу: datasheet MX88V462.pdf [1.89 MiB]
Скачиваний: 815
Как обычно в I2C происходит адресация к регистрам если их больше 256? В даташите на MX88v462 указано только то, что регистры разбиты на 3 группы со своими базовыми адресами 0x00 (от 0x00 до 0xC4), 0xF0 (от 0x00 до 0x94), 0xF2 (от 0x00 до 0x5F). Так понимаю, что адресное пространство регистров 16 бит.
Осциллограф диско расшифровывает пакет красиво, со всеми атрибутами start, stop, ask, nask, но в нем нет возможности сохранения данных. Снифер на tiny2313 пакет инициализации передает в терминальник в виде 1060 строк по 3 байта. 2 строчки это 1 посылка. У MX88v462 адрес на шине 0x14 + флаг записи 0 - 0x28.
Не могу понять где тут адрес регистра, а где данные.
В даташите есть регистры с одинаковыми адресами, скажем 0х01 (стр 13, 76, 114 даташита), но базовые адреса разные (мелким шрифтом в начале каждого раздела описания) 0х00, 0хF0, 0хF2. Всего регистров как минимум 0xC4+0x94+0x5F=1В7 или 432 шт. Значит в контроллер должен слаться 16 битный адрес, или я чего то не понимаю? И еще, в логе есть такой кусок Спойлер
Судя по коду при инициализации (регистры 0x00..0xF0) данные идут: Старт адрес (0x28) адрес регистра (начиная с 0x00) значение регистра стоп
Для регистров (0xF0…) наверно так: Старт адрес (0x28) адрес регистра (0xF0) смещение регистра (например 0x02) значение регистра стоп в коде все это есть.
Судя по коду при инициализации (регистры 0x00..0xF0) данные идут:
Допустим это так, но какой тогда смысл писать в один регистр одно значение, а затем сразу же другое? Почти все строки лога с повторяющимися 2 раза адресом регистра.
wss60 писал(а):
Для регистров (0xF0…) наверно так:
то есть 4 байта в посылке? хм, в логе такого формата не видно, а вот при чтении из регистра - да, 4 байта:
28 78 29 07
адрес 0х14 с флагом 0 (0х28) адрес регистра адрес 0х14 с флагом 1 (0х29) принятые данные
В исходниках, взятых у китайцев, инициализация tcon идет так: адрес устройства, адрес регистра, значение регистра. Чем снимали лог? Можно увидеть весь лог с начала?
Лог какой то странный - возможно тинька не успевает считывать. В даташите на 112 указанна скорость до 1MHz, у тиньки максимум 0.4MHz + нужно еще по usart передавать. Как вариант можно попробовать считать значения всех регистров на уже инициализированном контроллере и сравнить.
taran_ob писал(а):
не понимаю, что такое CVD1_ADDRESS_PORT CVD1_DATA_PORT
Регистр 0xF0 только один и если пишем сначала в него то все остальное пишется в регистры, которые начинаются со страницы 76 даташита. Это только предположение!
Лог какой то странный - возможно тинька не успевает считывать.
Гарантии конечно же нет, но данные совпадают с логом снятым игрушечным юсб осциллографом диско, у которого нет возможности сохранения, им же было выяснено, что частота SCL порядка 100кГц. Автор логера на тиньке утверждает, что до 400кГц работает. Ладно, сегодня должен приехать клон Saleae Logic, проверим истинность.
Цитата:
Как вариант можно попробовать считать значения всех регистров на уже инициализированном контроллере и сравнить.
Да, снять лог 100кГц не такая уж тривиальная задача. Вчера весь вечер промучился SaleaeLogic. Его софт декодирует быстро, но экспорт кривой! Не сохраняет адреса регистров. Перезалил еепромку в железяке под софт USBee Suite - этот вообще экспортирует только start ack nack stop, без данных, хотя визуальные данные совпадают с SaleaeLogic. Воспользовался USBee AX Test POD. Глюковатый, но экспорт делает. Правда не удобочитаемый - все данные с атрибутами в один столбец. Пришлось просить знакомого написать макрос для экселя. Логи отличаются от раннее сделанных USB DISCO и снифером с easyelectronics. На первый взгляд более логичные. Чуть позже выложу.
пс USB DISCO купил давным давно, чтоб лямбда-зонд проверить, думал еще пригодится, а оказалось не стоит своих 100уе
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения