سلام بله منم پروژشو دیدم خیلی قضیه رو پیچونده مثل هدرایی که اقا صادق درست میکنه یکی رو برای اینیت کردن کلاک بزار یکیرو هم برای اینیت کردن gpio خیلی راحت برای کم شدن دردسرتم سراغ پینهایی که تو مد gpio نیستن نرو ریمپ کردنش دنگو فنگ داره ممکنه دیگه نتونی از jlink استفاده کنی تو سایتم 200 مثال براش هست این ال سی دی 4.3 راهاندازیش خیلی راحته فکر نمیکنم اینقدر مشکل باشه
من برای راه اندازی ال سی دی 9 اینچیم با این ssd به مشکل خوردم یعنی وقتی ال سی دی 4.3 رو میزارم خیلی خوبو بدون مشکل تو مد 24 بیتی کار میکنه ولی این ال سی دی 9 انگار سرناسازگاری داره یکم تصویرش با رفرش میاد امروز داشتم دیتاشیت این ssd رو میدیم دیدم برای مقادیر تایمینگش ال سی دی رو 18 بیتی نشون داده][ LDATA[17:0
اگه برد شماتیکه برد خود شرکت کویر رو هم دیده باشید باس دیتای میکرو تا ssd 16 بیتی و خروجی ال سی دی ssd رو 18 بیتی ست کرده البته بصورت نرم افزاری پایه های dithb و u/d و r/l رو هم به gpio های صفر تا 2 ssd داده و دو مورد اخر برای جهت قرار گیری عکسامون تو ال سی دی هستش قسمت dithb هم نمیدونم برای چیه ولی دیتاشیت خود ال سی دی گفته از داخل پول اپ هستش و تو اینیت کردن اس اس دی با gpio کنترلر ssd یکش کرده اما برای قسمت mode اومده دوتا مقاومت بهش وصل کرده یکی با صفر اهم وصل شده 3.3 و یکی با 10 کیلو وصل شده به گراند که برای سلکت کردن مود de/sync هستش اینم نکته خاصی نداره من با صفر اهم وصلش کردم به 3.3 و تو مد de داره کار میکنه برای vcom هم با تقسیم مقاومت یه ولتاژ 4.2 فیکس باید بدست بیارید که اینم کاری نداره برای قسمت اخر یعنی اینیت کردن اس اس دی برای دیتا باس 24 بیتی و خروجی پنل 24 بیتی انگار قضیه تایمینگ فرق میکنه چون من با مقادیر داخل مثال خود شرکت کویر به هیچ نتیجه ای نرسیدم و هنوز تصویرم یکم موج داره که نشون میده تایمینگ ssd برای این مد درست نیست من حتی به مقادیر بدست اومده از حک کردن این t107bl هم متوصل شدم ولی مقادیری که تو اون ست شده زمین تا زیر زمین با هم فرق داره مثلا یه نمونش او HT رو 1218 ست کرده ولی تو مثال کویر اومده 1000 ست کرده برای برای HT از اونم بدتر اومده بجای 530 عدد 761 رو مقدار داده (رجیسترای 0XB0 تا 0XBE پیج صفر کنترلر T107BL رو مطالعه کنید) برای بک پورش هم همینطور من مقدارای اون این T107BL رو هم برای این اس اس دی ست کردم ولی نشد که نشد
میخواستم این سوال رو بکنم ایا مقادیر تایمینگ که تو دیتاشیت نوشته برای مد خاصی هستش مثلا برای 18 بیتی یا 24 بیتی یا برای هر مدی مقادیرش ثابته ؟؟؟؟
و اینکه ایا برای این حالت 24 بیتی مقادیر تایمینگه مثال کویر بدرم میخوره یا نه؟؟؟
این مقادیر تایمینگه مثال کویره
[PHP]#define HDP 799 //Horizontal Display Period
#define HT 1000 //Horizontal Total
#define HPS 51 //LLINE Pulse Start Position
#define LPS 3 //Horizontal Display Period Start Position
#define HPW 8 //LLINE Pulse Width
#define VDP 479 //Vertical Display Period
#define VT 530 //Vertical Total
#define VPS 24 //LFRAME Pulse Start Position
#define FPS 23 //Vertical Display Period Start Positio
#define VPW 3 //LFRAME Pulse Width
[/PHP]اینم مقادیری هست که من قرار دادم ولی بازم تصویرم پرش داره البته بگم از اتصال تک تک پایه های سوکت ال سی دی و سخت افزارم مطمعنم مشکلی نداره
[PHP]void SSD1963_Init (void)
{
SSD1963_CTRLPORT->BRR = SSD1963_PIN_RST;
delay_ms(10);
SSD1963_CTRLPORT->BSRR = SSD1963_PIN_RST;
delay_ms(10);
// REFclk = crystal = 10MHz
SSD1963_WriteCommand(SSD1963_SET_PLL_MN); // 0x00E2
SSD1963_WriteData(0x1D); // PLLclk = REFclk * (29+1) = 300MHz
SSD1963_WriteData(0x02); // SYSclk = PLLclk / (2+1) = 100MHz
SSD1963_WriteData(0x04); // dummy
SSD1963_WriteCommand(SSD1963_SET_PLL); // 0x00E0
SSD1963_WriteData(0x01); // Enable PLL
delay_ms(10);
SSD1963_WriteCommand(SSD1963_SET_PLL); // 0x00E0
SSD1963_WriteData(0x03);
delay_ms(10); // Use PLL output as system clock & Enable PLL
SSD1963_WriteCommand(SSD1963_SOFT_RESET); // soft reset 0x0001
delay_ms(10);
//Set LSHIFT freq, i.e. the DCLK with PLL freq 110MHz set previously
//Typical DCLK for AT090TN12 V.3 and AT090TN33 and AT070TN92 and AT090TN10 is 33.3MHz
//33.264MHz = 100MHz*(LCDC_FPR+1)/2^20
//LCDC_FPR = 348797 (0x5527D)
SSD1963_WriteCommand(SSD1963_SET_LSHIFT_FREQ); // 0x00E6 0x553f6
SSD1963_WriteData(0x05); // 0X05 (TFT_PCLK >>16)&0xFF
SSD1963_WriteData(0x52); // 0X52 (TFT_PCLK >>8)&0xFF
SSD1963_WriteData(0x7D); // 0X7D TFT_PCLK&0xFF
//Set panel mode, varies from individual manufacturer
SSD1963_WriteCommand(SSD1963_SET_LCD_MODE); // 0x00B0
SSD1963_WriteData(0x2c);//24-Bit //(0x0C); //18-Bit
SSD1963_WriteData(0x00);
SSD1963_WriteData((HDP>>8) & 0x0000FF);
SSD1963_WriteData(HDP & 0x00FF);
SSD1963_WriteData((VDP>>8) & 0x0000FF);
SSD1963_WriteData(VDP & 0xFF);
SSD1963_WriteData(0x000000);
delay_ms(10);
//Set horizontal period
SSD1963_WriteCommand(SSD1963_SET_HORI_PERIOD); // 0x00B4
SSD1963_WriteData((HT>>8) & 0X0000FF);
SSD1963_WriteData(HT & 0x0000FF);
SSD1963_WriteData((HPS>>8) & 0xFF );
SSD1963_WriteData(HPS & 0xFF);
SSD1963_WriteData(HPW);
SSD1963_WriteData((LPS>>8)&0X0000FF);
SSD1963_WriteData(LPS&0X0000FF);
SSD1963_WriteData(0x000000);
delay_ms(10);
//Set vertical period
SSD1963_WriteCommand(SSD1963_SET_VERT_PERIOD); // 0x00B6
SSD1963_WriteData((VT>>8) & 0x0000FF);
SSD1963_WriteData(VT & 0x0000FF);
SSD1963_WriteData((VPS>>8) & 0x0000FF); // 51
SSD1963_WriteData(VPS & 0x0000FF);
SSD1963_WriteData(VPW);
SSD1963_WriteData((FPS>>8)&0X0000FF);
SSD1963_WriteData(FPS&0X0000FF);
delay_ms(10);
//Set pixel data interface
SSD1963_WriteCommand(SSD1963_SET_PIXEL_DATA_INTERF ACE); // 0x00F0
SSD1963_WriteData(SSD1963_PDI_24BIT);
// set address mode
SSD1963_WriteCommand(SSD1963_SET_ADDRESS_MODE); // 0x0036
SSD1963_WriteData(0x0000);
//SSD1963_WriteData(0x0060);
// GPIO0,1,2,3 is output
SSD1963_WriteCommand(SSD1963_SET_GPIO_CONF); // 0x00B8
SSD1963_WriteData(0x0F);
SSD1963_WriteData(0x01);
// set GPIO0 , 1 , 2, 3 = 1
SSD1963_WriteCommand(SSD1963_SET_GPIO_VALUE); // 0x00BA
SSD1963_WriteData(0x0F);
SSD1963_ClearScreen(0x000000); // black screen
delay_ms(10);
//SET display on
SSD1963_WriteCommand(SSD1963_SET_DISPLAY_ON); // 0x0029
// exit sleep mode
// SSD1963_WriteCommand(SSD1963_EXIT_SLEEP_MODE); // 0x0011
}
[/PHP]