PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : چه مشکلاتی باعث ریست شدن lcd با چیپ ssd1963 میشود



jonbakhsh
10-11-2017, 12:40
سلام
بعضی وقت ها که به مدار دست میزنم فقط و فقط lcd ریست میشه و صفحه سفید میشه پایه ریست lcd هم مستقیم به + زدم
میکرو هیچ مشکلی نداره ولی نمیدونم چرا lcd هنگ میکنه . lcd به یک stm32 زدم که توی مد fsmc هست و با فرکانس 72 مگ کار میکنه
حتی بعضی وقت ها که باید صفحه پاک بشه هم درست انجام نمیشه ( البته خیلی کم این اتفاق میافته).
کسی تجربه ای داره و آیا راهی هست که بفهمم lcd هنگ کرده که با میکرو int کنم

jonbakhsh
11-11-2017, 09:53
آیا میشه از کانفیگ مد FSMC باشه چون قبلا یکم دست کاریش کردم که سرعت بیشتری ازش بگیرم.
کریستال میکرو 12 مگ و فرکانس میکرو 72 و فرکانس مد FSMC 36 مگ هست




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

hsram1.Instance = FSMC_NORSRAM_DEVICE;
hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
/* hsram1.Init */
hsram1.Init.NSBank = FSMC_NORSRAM_BANK1;
hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM;
hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE;
hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE;
hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
hsram1.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE;
/* Timing */
Timing.AddressSetupTime = 15;
Timing.AddressHoldTime = 15;
Timing.DataSetupTime = 125;
Timing.BusTurnAroundDuration = 15;
Timing.CLKDivision = 16;
Timing.DataLatency = 17;
Timing.AccessMode = FSMC_ACCESS_MODE_A;
if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
__HAL_AFIO_FSMCNADV_DISCONNECTED();
}