Форум РадиоКот https://radiokot.ru/forum/ |
|
Инициализация видеоконтроллера T112 https://radiokot.ru/forum/viewtopic.php?f=61&t=94431 |
Страница 1 из 3 |
Автор: | wss60 [ Сб сен 14, 2013 12:18:09 ] |
Заголовок сообщения: | Инициализация видеоконтроллера T112 |
Есть дисплей с видеоконтроллером 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(); // стоп } Вложение:
|
Автор: | Alexeyslav [ Вт сен 17, 2013 14:53:32 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Вероятно это составное устройство, которое логически работает как два устройства на шине каждое со своим адресом. |
Автор: | taran_ob [ Пн июн 23, 2014 13:18:17 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Удалось инициализировать? |
Автор: | wss60 [ Пн июн 23, 2014 22:17:33 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Не удалось... Не понятно: по какому адресу отсылать данные, как настроить Tcon, питание матрицы и пр. Нету нормального даташита. Есть только исходники китайского dvd с похожим контроллером. |
Автор: | taran_ob [ Вт июн 24, 2014 02:49:00 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Киньте в личку адрес, отправлю полный даташит на t112 с регистрами. Есть у меня экранчик на таком скалере без центрального проца, хочу запустить... И еще есть рабочий двд со скалером MX88V462 (даташита нет) и цпу MT1389HD, сейчас пытаюсь сниферить инициализацию. Нужно отсеить остальные микрухи сидящие на шине. Возможно ковыряние прояснит картину с t112. |
Автор: | wss60 [ Вт июн 24, 2014 04:24:53 ] | ||
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 | ||
Даташит с регистрами у меня есть, но разобраться в нем - что куда в какой последовательности не смог… Скинул в лс исходники. Там есть инициализация контроллера и дефейны для разных разрешений дисплеев – может, чем поможет…
|
Автор: | taran_ob [ Вт июн 24, 2014 13:44:50 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
О! Спасибо! Лог инициализации скалера снял. Теперь, имея даташит, отброшу OSD, и будет видно, что куда прописывать... |
Автор: | taran_ob [ Чт июн 26, 2014 14:37:41 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Как обычно в 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. Не могу понять где тут адрес регистра, а где данные. Кусок начала пакета 28 00 30 28 00 02 28 01 03 28 01 00 28 02 00 28 02 00 28 03 44 28 03 00 28 04 07 28 04 0f 28 05 60 28 05 00 28 06 79 28 06 40 28 07 40 28 07 40 28 08 40 28 08 40 28 09 40 28 09 40 28 0a 00 28 0a 00 28 0b 00 28 0b 00 |
Автор: | wss60 [ Чт июн 26, 2014 15:41:25 ] | ||
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 | ||
Где вы нашли регистр больше 255? Судя по исходникам там все 8-ми битовое. Пишется в каждый регистр отдельно или в несколько последовательно. СпойлерКод: #if 0 void I2C_Write(BYTE dev_addr, BYTE start_addr, BYTE count , BYTE *write_buf) { BYTE i; I2C_SendByteWithStart(dev_addr); //Write W_ID I2C_SendByte(start_addr); //Write Address DELAY(1); for(i=0;i<count;i++) { I2C_SendByte(*(write_buf+i)); //Write multi-data DELAY(1); } I2C_SendStop(); //Stop DELAY(1); I2C_ReleaseBus(); } #endif void I2C_WriteByte(BYTE dev_addr, BYTE start_addr, BYTE write_byte) { I2C_SendByteWithStart(dev_addr); //Write Device ID I2C_SendByte(start_addr); //Write Address // DELAY(1); I2C_SendByte(write_byte); //Write data // DELAY(1); I2C_SendStop(); //Stop // DELAY(1); I2C_ReleaseBus(); }
|
Автор: | taran_ob [ Чт июн 26, 2014 18:15:40 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
В даташите есть регистры с одинаковыми адресами, скажем 0х01 (стр 13, 76, 114 даташита), но базовые адреса разные (мелким шрифтом в начале каждого раздела описания) 0х00, 0хF0, 0хF2. Всего регистров как минимум 0xC4+0x94+0x5F=1В7 или 432 шт. Значит в контроллер должен слаться 16 битный адрес, или я чего то не понимаю? И еще, в логе есть такой кусок СпойлерКод: 28 41 00 28 41 01 28 42 00 28 42 00 28 43 00 28 06 7a 28 0a 00 28 0a 00 28 0a 00 28 0a 00 28 0a 00 28 0a 00 28 0a 00 28 0a 00 28 0a 00 28 0a 01 28 0a 01 28 0a 01 28 0a 02 28 0a 02 28 0a 02 28 0a 03 28 0a 03 28 0a 03 28 0a 04 28 0a 04 28 0a 04 28 0a 05 28 0a 05 28 0a 05 28 0a 06 28 0a 06 28 0a 06 28 0a 07 28 0a 07 28 0a 07 28 0a 08 28 0a 08 28 0a 08 28 0a 09 28 0a 09 28 0a 09 28 0a 0a 28 0a 0a 28 0a 0a 28 0a 0b 28 0a 0b 28 0a 0b 28 0a 0c 28 0a 0c 28 0a 0c 28 0a 0d 28 0a 0d 28 0a 0d 28 0a 0e 28 0a 0e 28 0a 0e 28 0a 0e 28 0a 0e 28 0a 0e 28 0a 0f 28 0a 0f 28 0a 0f 28 0a 10 28 0a 10 28 0a 10 28 0a 11 28 0a 11 28 0a 11 28 0a 12 28 0a 12 28 0a 12 28 0a 13 28 0a 13 28 0a 13 28 0a 13 28 0a 13 28 0a 13 28 0a 14 28 0a 14 28 0a 14 28 0a 15 28 0a 15 28 0a 15 28 0a 16 28 0a 16 28 0a 16 28 0a 17 28 0a 17 28 0a 17 28 0a 17 28 0a 17 28 0a 17 28 0a 18 28 0a 18 28 0a 18 28 0a 19 28 0a 19 28 0a 19 28 0a 1a 28 0a 1a 28 0a 1a 28 0a 1a 28 0a 1a 28 0a 1a 28 0a 1b 28 0a 1b 28 0a 1b 28 0a 1c 28 0a 1c 28 0a 1c 28 0a 1d 28 0a 1d 28 0a 1d 28 0a 1d 28 0a 1d 28 0a 1d 28 0a 1e 28 0a 1e 28 0a 1e 28 0a 1f 28 0a 1f 28 0a 1f 28 0a 1f 28 0a 1f 28 0a 1f 28 0a 20 28 0a 20 28 0a 20 28 0a 21 28 0a 21 28 0a 21 28 0a 21 28 0a 21 28 0a 21 28 0a 22 28 0a 22 28 0a 22 28 0a 23 28 0a 23 28 0a 23 28 0a 23 28 0a 23 28 0a 23 28 0a 24 28 0a 24 28 0a 24 28 0a 25 28 0a 25 28 0a 25 28 0a 25 28 0a 25 28 0a 25 28 0a 26 28 0a 26 28 0a 26 28 0a 27 28 0a 27 28 0a 27 28 0a 27 28 0a 27 28 0a 27 28 0a 28 28 0a 28 28 0a 28 28 0a 29 28 0a 29 28 0a 29 28 0a 29 28 0a 29 28 0a 29 28 0a 2a 28 0a 2a 28 0a 2a 28 0a 2a 28 0a 2a 28 0a 2a 28 0a 2b 28 0a 2b 28 0a 2b 28 0a 2b 28 0a 2b 28 0a 2b 28 0a 2c 28 0a 2c 28 0a 2c 28 0a 2d 28 0a 2d 28 0a 2d 28 0a 2d 28 0a 2d 28 0a 2d 28 0a 2e 28 0a 2e 28 0a 2e 28 0a 2e 28 0a 2e 28 0a 2e 28 0a 2f 28 0a 2f 28 0a 2f 28 0a 2f 28 0a 2f 28 0a 2f 28 0a 30 28 0a 30 28 0a 30 28 0a 30 28 0a 30 28 0a 30 28 0a 31 28 0a 31 28 0a 31 28 0a 32 28 0a 32 28 0a 32 28 0a 32 28 0a 32 28 0a 32 28 0a 33 28 0a 33 28 0a 33 28 0a 33 28 0a 33 28 0a 33 28 0a 34 28 0a 34 28 0a 34 28 0a 34 28 0a 34 28 0a 34 28 0a 35 28 0a 35 28 0a 35 28 0a 35 28 0a 35 28 0a 35 28 0a 36 28 0a 36 28 0a 36 28 0a 36 28 0a 36 28 0a 36 28 0a 36 28 0a 36 28 0a 36 28 0a 37 28 0a 37 28 0a 37 28 0a 37 28 0a 37 28 0a 37 28 0a 38 28 0a 38 28 0a 38 28 0a 38 28 0a 38 28 0a 38 28 0a 39 28 0a 39 28 0a 39 28 0a 39 28 0a 39 28 0a 39 28 0a 3a 28 0a 3a 28 0a 3a 28 0a 3a 28 0a 3a 28 0a 3a 28 0a 3b 28 0a 3b 28 0a 3b 28 0a 3b 28 0a 3b 28 0a 3b 28 0a 3b 28 0a 3b 28 0a 3b 28 0a 3c 28 0a 3c 28 0a 3c 28 0a 3c 28 0a 3c 28 0a 3c 28 0a 3d 28 0a 3d 28 0a 3d 28 0a 3d 28 0a 3d 28 0a 3d 28 0a 3e 28 0a 3e 28 0a 3e 28 0a 3e 28 0a 3e 28 0a 3e 28 0a 3e 28 0a 3e 28 0a 3e 28 0a 3f 28 0a 3f 28 0a 3f 28 0a 3f 28 0a 3f 28 0a 3f 28 0a 40 28 0a 40 28 0a 40 28 0a 40 28 0a 40 28 0a 40 28 0a 40 28 0a 40 28 0a 40 28 0a 41 28 0a 41 28 0a 41 28 0a 41 28 0a 41 28 0a 41 28 0a 42 28 0a 42 28 0a 42 28 0a 42 28 0a 42 28 0a 42 28 0a 42 28 0a 42 28 0a 42 28 0a 43 28 0a 43 28 0a 43 28 0a 43 28 0a 43 28 0a 43 28 0a 43 28 0a 43 28 0a 43 28 0a 44 28 0a 44 28 0a 44 28 0a 44 28 0a 44 28 0a 44 28 0a 45 28 0a 45 28 0a 45 28 0a 45 28 0a 45 28 0a 45 28 0a 45 28 0a 45 28 0a 45 28 0a 46 28 0a 46 28 0a 46 28 0a 46 28 0a 46 28 0a 46 28 0a 46 28 0a 46 28 0a 46 28 0a 47 28 0a 47 28 0a 47 28 0a 47 28 0a 47 28 0a 47 28 0a 47 28 0a 47 28 0a 47 28 0a 48 28 0a 48 28 0a 48 28 0a 48 28 0a 48 28 0a 48 28 0a 48 28 0a 48 28 0a 48 28 0a 49 28 0a 49 28 0a 49 28 0a 49 28 0a 49 28 0a 49 28 0a 49 28 0a 49 28 0a 49 28 0a 4a 28 0a 4a 28 0a 4a 28 0a 4a 28 0a 4a 28 0a 4a 28 0a 4a 28 0a 4a 28 0a 4a 28 0a 4b 28 0a 4b 28 0a 4b 28 0a 4b 28 0a 4b 28 0a 4b 28 0a 4b 28 0a 4b 28 0a 4b 28 0a 4c 28 0a 4c 28 0a 4c 28 0a 4c 28 0a 4c 28 0a 4c 28 0a 4c 28 0a 4c 28 0a 4c 28 0a 4d 28 0a 4d 28 0a 4d 28 0a 4d 28 0a 4d 28 0a 4d 28 0a 4d 28 0a 4d 28 0a 4d 28 0a 4e 28 0a 4e 28 0a 4e 28 0a 4e 28 0a 4e 28 0a 4e 28 0a 4e 28 0a 4e 28 0a 4e 28 0a 4f 28 0a 4f 28 0a 4f 28 0a 4f 28 0a 4f 28 0a 4f 28 0a 4f 28 0a 4f 28 0a 4f 28 0a 50 28 0a 50 28 0a 50 28 0a 50 28 0a 50 28 0a 50 28 0a 50 28 0a 50 28 0a 50 28 0a 51 28 0a 51 28 0a 51 28 0a 51 и тд так 0x0A это "SCALING PLL CTRLREG (стр 17)" или "CODE BUFFER OFFSET SELECT AND VALUE (стр117)" или "CHROMA SATURATION (стр 81)" ? |
Автор: | m.ix [ Чт июн 26, 2014 20:43:23 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
немного оффтопа timewind T112 и им подобные Часто стоят в китайских автомагнитолах с небольшим дисплеем. иногда и в телеках такого же формата. |
Автор: | wss60 [ Чт июн 26, 2014 21:42:05 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Судя по коду при инициализации (регистры 0x00..0xF0) данные идут: Старт адрес (0x28) адрес регистра (начиная с 0x00) значение регистра стоп Для регистров (0xF0…) наверно так: Старт адрес (0x28) адрес регистра (0xF0) смещение регистра (например 0x02) значение регистра стоп в коде все это есть. |
Автор: | taran_ob [ Пт июн 27, 2014 09:01:12 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Ок, вот первые 4 строчки лога записи данных: 28 00 30 28 00 02 28 01 03 28 01 00 wss60 писал(а): Судя по коду при инициализации (регистры 0x00..0xF0) данные идут: Допустим это так, но какой тогда смысл писать в один регистр одно значение, а затем сразу же другое? Почти все строки лога с повторяющимися 2 раза адресом регистра. wss60 писал(а): Для регистров (0xF0…) наверно так: то есть 4 байта в посылке? хм, в логе такого формата не видно, а вот при чтении из регистра - да, 4 байта: 28 78 29 07 адрес 0х14 с флагом 0 (0х28) адрес регистра адрес 0х14 с флагом 1 (0х29) принятые данные Может одна посылка записи состоит из 6 байт? |
Автор: | taran_ob [ Пт июн 27, 2014 09:10:04 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
m.ix писал(а): немного оффтопа Часто стоят в китайских автомагнитолах с небольшим дисплеем. иногда и в телеках такого же формата. По этому тема и заинтересовала. Портативные двд уже нах ни кому не нужны, а вот LCD с композитным входом нужны... |
Автор: | wss60 [ Пт июн 27, 2014 09:48:00 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
В исходниках, взятых у китайцев, инициализация tcon идет так: адрес устройства, адрес регистра, значение регистра. Чем снимали лог? Можно увидеть весь лог с начала? пример: СпойлерКод: unsigned char MXIC_TCON_REG[] = { // 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x20,0x01,0x0F,0x01,0x01,0x00,0x81,0x00,0x0F,0x1E,0xC0,0x00,0xF2,0x70,0x70,0x70, // 0x0000 0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0xA8,0x00,0x40,0xFF,0x00,0x00,0x00,0x40, // 0x0010 0x00,0x95,0xCC,0x32,0x68,0x02,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x0020 0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x00,0xC1,0x02,0x0D,0x00,0x17,0x01, // 0x0030 0x00,0x00,0x01,0x3E,0x03,0x98,0x00,0xD0,0x02,0x88,0x00,0xD0,0x02,0x20,0x01,0xFD, // 0x0040 0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x28,0x70,0x66,0x01,0x00,0x00,0x18,0x18,0x00, // 0x0050 0x10,0x04,0x35,0x08,0x20,0x00,0x00,0x00,0x00,0x00,0x96,0x00,0x03,0x00,0x00,0x00, // 0x0060 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00, // 0x0070 0x3A,0x00,0x3A,0x00,0x00,0x00,0x00 // 0x0080 }; /**********************************/ /******* инициализация TCON *******/ /**********************************/ unsigned char MX88V46X_TCON_Initial(void) { unsigned char i; for(i=0;i<sizeof(MXIC_TCON_REG);i++) { I2C_SendStart(); I2C_SendByte(0x28); I2C_SendByte(i); // адрес регистра I2C_SendByte(MXIC_TCON_REG[i]); // значение регистра I2C_SendStop(v); } } |
Автор: | taran_ob [ Пт июн 27, 2014 10:29:35 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Вот!, нашел в исходнике из вашего архива Код: #define MX88V46X_ID 0x28 #define CVD1_ADDRESS_PORT 0xF0 #define CVD1_DATA_PORT 0xF1 unsigned char MXIC_WriteInternalReg(unsigned char m_Address,unsigned char m_Data) { I2C_WriteByte(MXIC_ID,CVD1_ADDRESS_PORT,m_Address); MXIC_Delay(100); I2C_WriteByte(MXIC_ID,CVD1_DATA_PORT,m_Data); return m_Data; } таки одна посылка состоит из 6 байт Лог снимал этим http://forum.easyelectronics.ru/viewtop ... 48#p273648 |
Автор: | taran_ob [ Пт июн 27, 2014 10:51:15 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Цитата: Можно увидеть весь лог с начала? не понимаю, что такое CVD1_ADDRESS_PORT CVD1_DATA_PORT
|
Автор: | wss60 [ Пт июн 27, 2014 11:21:46 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Лог какой то странный - возможно тинька не успевает считывать. В даташите на 112 указанна скорость до 1MHz, у тиньки максимум 0.4MHz + нужно еще по usart передавать. Как вариант можно попробовать считать значения всех регистров на уже инициализированном контроллере и сравнить. taran_ob писал(а): не понимаю, что такое CVD1_ADDRESS_PORT CVD1_DATA_PORT Код: #define MX88V46X_ID 0x28 #define CVD1_ADDRESS_PORT 0xF0 #define CVD1_DATA_PORT 0xF1 Регистр 0xF0 только один и если пишем сначала в него то все остальное пишется в регистры, которые начинаются со страницы 76 даташита. Это только предположение! ![]() |
Автор: | taran_ob [ Пт июн 27, 2014 12:29:21 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Цитата: Лог какой то странный - возможно тинька не успевает считывать. Гарантии конечно же нет, но данные совпадают с логом снятым игрушечным юсб осциллографом диско, у которого нет возможности сохранения, им же было выяснено, что частота SCL порядка 100кГц. Автор логера на тиньке утверждает, что до 400кГц работает. Ладно, сегодня должен приехать клон Saleae Logic, проверим истинность. Цитата: Как вариант можно попробовать считать значения всех регистров на уже инициализированном контроллере и сравнить. ![]() |
Автор: | taran_ob [ Сб июн 28, 2014 18:45:57 ] |
Заголовок сообщения: | Re: Инициализация видеоконтроллера T112 |
Да, снять лог 100кГц не такая уж тривиальная задача. Вчера весь вечер промучился SaleaeLogic. Его софт декодирует быстро, но экспорт кривой! Не сохраняет адреса регистров. Перезалил еепромку в железяке под софт USBee Suite - этот вообще экспортирует только start ack nack stop, без данных, хотя визуальные данные совпадают с SaleaeLogic. Воспользовался USBee AX Test POD. Глюковатый, но экспорт делает. Правда не удобочитаемый - все данные с атрибутами в один столбец. Пришлось просить знакомого написать макрос для экселя. Логи отличаются от раннее сделанных USB DISCO и снифером с easyelectronics. На первый взгляд более логичные. Чуть позже выложу. пс USB DISCO купил давным давно, чтоб лямбда-зонд проверить, думал еще пригодится, а оказалось не стоит своих 100уе |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |