Перейти к содержанию
    

T113-S3 LVDS и тайминги матриц

В 10.03.2023 в 10:48, sasamy сказал:

он очень подробно описан в мануале

Да как сказать...  Объясните вот эту китайскую грамоту:

For PHY0: 
?  Configure the reg_verf1p6 (differential mode voltage) in reg0x1114 to 4;   
?  Configure the reg_vref0p8 reg0x1114 (common mode voltage) in reg0x1114 to 3; 
?  Start en_cp, en_mipi, en_lvds, and en_comboldo in reg0x1110, in turn.

Что это за регистры с таким адресом?

ЗЫ. Может все-таки есть какой-то исходник из линукса по иниту LVDS?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/17/2023 at 12:26 PM, mantech said:

Что это за регистры с таким адресом?

регистры DPHY которые не описаны в мануале

On 3/17/2023 at 12:26 PM, mantech said:

Может все-таки есть какой-то исходник из линукса по иниту LVDS?

инит тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd_sun50iw10.c#L390

lvds_combphy_open(sel, panel); тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi.c#L789

регистры DPHY тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi_type.h#L977

регистры lcd тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd_type.h#L603

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 10.03.2023 в 10:48, sasamy сказал:

он очень подробно описан в мануале

5.1.4.2 LVDS Mode Configuration Process

в части таймингов  не отличается от инита параллельного RGB + есть дополнительные настройки енкодера LVDS

Да уж, вообщем от их подробного описания так ничего и не понятно(((

Может у кого-нибудь получилось запустить этот долбанный LVDS?  Пробовал и так и сяк - один фиг на всех ланах 0В, относительно земли, хотя если включен режим RGB картинка есть, т.е. тайминги нормальные, а тут молчок. В полне возможно из за китайской дурости секретить свои регистры, ибо в этом combo phy одни магические цифры, в даташите совсем не совпадают.. Жуть вообще. Пробовал разобраться в линуксовых исходниках, но чуть башку не сломал, там такое переплетение всего и вся, что лучше сходить и выпить...

Вот что-то подобное наваял в добавок к своему иниту:

struct disp_panel_para  * panel_info = (struct disp_panel_para *)SAVEBG_BASE;

 printf("Init Display\n");



 tcon_set_reg_base(0, DISP_TCON_LCD0);
 if (DEVICE_NUM>1)tcon_set_reg_base(1, DISP_TCON_TV);
 tcon_top_set_reg_base(0, DISP_TCON_TOP);
 dsi_set_reg_base(0, DISP_DSI_BASE);



 CCU->DSI_BGR_REG&=~(1<<16);                      //assert reset DSI PHY
 CCU->DSI_CLK_REG=(1UL<<31)|(1<<25)|(2-1); //clock on, PLL_VIDEO0(4x), N=2, M=2 => 1188/2/2 = 297 MHz

 hal_delay_us(1000);//!!!!!
 CCU->DSI_BGR_REG|=(1<<16);                       //de-assert reset DSI PHY

 CCU->LVDS_BGR_REG&=~(1<<16);                      //assert reset TCON_LCD
 CCU->LVDS_BGR_REG|=(1<<16);

 panel_info->lcd_if = LCD_IF_LVDS;
 panel_info->lcd_lvds_if = LCD_LVDS_IF_SINGLE_LINK;
 panel_info->lcd_lvds_mode = LCD_LVDS_MODE_NS;
 panel_info->lcd_lvds_colordepth = LCD_LVDS_6bit;
 panel_info->lcd_lvds_io_polarity = 0;
 panel_info->lcd_dsi_lane = LCD_DSI_4LANE;
 panel_info->lcd_dsi_port_num = DISP_LCD_DSI_SINGLE_PORT;
 panel_info->lcd_dclk_freq = 297000000;

 lvds_open(screen_id, panel_info);

Черт его знает, что там еще надо...

 

ЗЫ. Ну и вопрос в догонку, может есть у кого образ линукса с использованием LVDS 0 под матрицу 1024х600, или 1366х768. Хоть проверить, может я проц уже спалил)

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/20/2023 at 6:09 PM, mantech said:

Ну и вопрос в догонку, может есть у кого образ линукса с использованием LVDS

у меня нет готового кода - к платам что у меня в наличии LVDS не подключить и задачи такой не было

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, sasamy сказал:

у меня нет готового кода - к платам что у меня в наличии LVDS не подключить и задачи такой не было

Эт печально, значит и у меня нет никакой уверенности, что этот код в вышеприведенных исходниках вообще рабочий((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, sasamy сказал:

у меня нет готового кода

ЗЫ. А можете скинуть образ, как в прошлый раз для эзернета, но с включенной любой матрицей под 0 канал LVDS, без проверки, просто теоретически? Я посмотрел бы хоть, есть-ли что-то на дифпарах или там совсем код левый и нет смысла в нем копаться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/21/2023 at 2:01 PM, mantech said:

скинуть образ, как в прошлый раз для эзернета, но с включенной любой матрицей под 0 канал LVDS, без проверки, просто теоретически?

в прошлый раз я скидывал образ с майнстримным ядром с которым сам разбирался и сборка заняла у меня пару минут, но в нем нет кода инициализации LVDS. Чтобы подправить китайское ядро и собрать образ надо пол дня потерять а в итоге просто ткнуть пальцем в небо. Паралельный дисплей в ядре по ссылке от тина линукс вроде работал (но это не точно - уже забыл), думаю что и LVDS должен работать. Там настолько всё через ... сделано что мне не охота возвращаться к этой тина линукс. Там есть подводные камни - например при отключении PWM подсветки дисплея ядро перестаёт загружаться  - это чтобы вы понимали размер пальца в небе.

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

49 минут назад, sasamy сказал:

Там настолько всё через ... сделано что мне не охота возвращаться к этой тина линукс.

Ясненько, думал что у вас там была поддержка LVDS для стартеркитовского модуля T113-NANO-LV, а тут вон оно как(((

Получается, кто купил этот  модуль задействовать LVDS и не сможет, или там его кто-то другой поддерживает?

52 минуты назад, sasamy сказал:

Паралельный дисплей  вроде работал

Так то параллельный, он документирован и у меня он работает, а это комбо phy - еще та гадость((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, mantech сказал:

он документирован и у меня он работает

Смотрю еще раз этот даташит и с каждым разом удивляюсь, например

If  configuring  the  same  source  data  output  mode  of  dual  link,  except  the  reg0x84  register  of 
TCON_LCD0  needs  be  configured,  the  LCD_LVDS_IF_REG.LCD_LVDS_CLK_SEL, 
LCD_LVDS_IF_REG.LCD_LVDS_LINK,  LCD_LVDS_IF_REG.LCD_LVDS_MODE,  and 
LCD_LVDS_IF_REG.LCD_LVDS_BITWIDTH of the reg0x244 register need be configured.

Что за "reg0x244"? Это в каком разделе, ТCON или опять секретный DPHY?

Или просто перепутали вот этим

LCD_LVDS1_ANA_REG  0x0224  LCD LVDS Analog Register 1 

Второе - если канал 0 управляется с DPHY, тогда зачем в списке 2 регистра LVDS?

LCD_LVDS0_ANA_REG  0x0220  LCD LVDS Analog Register 0 
LCD_LVDS1_ANA_REG  0x0224  LCD LVDS Analog Register 1

А это вообще что означает

Configure the reg_verf1p6 (differential mode voltage) in reg0x1114 to 4;  

Т.е. в этот регистр нужно просто записать значение 4, или ? 

Вообщем какая-то муть или тайный смысл, что-ли...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/21/2023 at 5:00 PM, mantech said:

думал что у вас там была поддержка LVDS для стартеркитовского модуля T113-NANO-LV

на контакты модуля LVDS выведен - он на тех же пинах что и RGB, а как к ним подключаться без подходящей материнки ? На обычной MB подключение LCD не предусмотрено и пины задействованы для других ф-ий, а на LCD-MB они напрямую к дисплею с параллельным RGB подключены

On 3/21/2023 at 10:56 PM, mantech said:

Или просто перепутали вот этим

LCD_LVDS1_ANA_REG  0x0224  LCD LVDS Analog Register 1 

этот регистр документирован - есть там похожие по названию биты на LCD_LVDS_IF_REG.LCD_LVDS_BITWIDTH или нет ?

On 3/21/2023 at 10:56 PM, mantech said:

Configure the reg_verf1p6 (differential mode voltage) in reg0x1114 to 4;  

Т.е. в этот регистр нужно просто записать значение 4, или ? 

это разве не он записывается

    dphy_dev[sel]->combo_phy_reg1.dwval = 0x43;

https://github.com/mangopi-sbc/tina-linux-5.4/blob/0d4903ebd9d2194ad914686d5b0fc1ddacf11a9d/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi.c#L792

похоже вы там половину кода инициализации пропустили, не удивительно что не работает

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, sasamy сказал:

на контакты модуля LVDS выведен - он на тех же пинах что и RGB, а как к ним подключаться без подходящей материнки ?

Да, это я заметил, и очень удивило, честно сказать, зачем выпускать такой продукт без поддержки аппаратной и программной - загадка...

10 часов назад, sasamy сказал:

этот регистр документирован

Хорошо, посмотрю внимательнее..

10 часов назад, sasamy сказал:

dphy_dev[sel]->combo_phy_reg1.dwval = 0x43;

Тут очень сложно разобраться из-за того, что каждый по разному обзывает все эти регистры и поля. И этот код инициализации у меня в программе есть, но результата работы его не заметно.

10 часов назад, sasamy сказал:

похоже вы там половину кода инициализации пропустили

Не пропустил, он весь есть в функции lvds_open(screen_id, panel_info);

 

ЗЫ. Досадно то, что только в этом проце так извращенно выглядит инит LVDS, я раньше делал инит для А10, А20, А40 - там все по фен-шую, документировано и никаких combo phy не используется...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда-то я ковырялся со вторым TCON (который для TV-OUT) в T113-s3. Тоже не запускался, пока не проинициализировал TOP-регистры.  Возможно, с включением LVDS аналогично.  Тоесть мало установить и проинициализировать то, что очевидно.  Ещё надо разрешить тактирование TOP-регистров и проинициализировать их. О существовании этих регистров рассказал сорец Tina-Linux для T113-s3.

Как раз - тот случай, когда делаешь всё правильно, а оно не работает. Потому что не всё разрешено.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На LVDS0-CK выходах получил сигнал...
Включил в CCU DSI и проинитил dsi-phy в соответствии с 
https://github.com/mangopi-sbc/tina-linux-5.4/blob/a0e8ac494c8b05e2a4f8eb9a2f687e39db463ffe/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi_type.h#L1084


Код в моём репо - бранч develop

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, GenaSPB сказал:

На LVDS0-CK выходах получил сигнал...

Да, я тоже уже разобрался с ним еще в конце марта, там была фишка в том, что забыл включить клок для DSI в CCU_DSI_BGR...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...