Например TDA7294

Форум РадиоКот :: Просмотр темы - Инициализация видеоконтроллера T112
Форум РадиоКот
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();           // стоп
}


Вложение:
Комментарий к файлу: Часть даташита
tw112.pdf [156.17 KiB]
Скачиваний: 403

Автор:  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

Даташит с регистрами у меня есть, но разобраться в нем - что куда в какой последовательности не смог…
Скинул в лс исходники.
Там есть инициализация контроллера и дефейны для разных разрешений дисплеев – может, чем поможет…

Вложения:
Комментарий к файлу: datasheet
MX88V462.pdf [1.89 MiB]
Скачиваний: 828

Автор:  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();   
}   


Вложения:
MX88V46X.sc.zip [11.58 KiB]
Скачиваний: 282

Автор:  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, проверим истинность.

Цитата:
Как вариант можно попробовать считать значения всех регистров на уже инициализированном контроллере и сравнить.

:idea:

Автор:  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/