stm32 + FSMC + ssd1963:?
06.02.2013, 11:14
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
Сообщение от Batisto4ka
|
|
PHP код:
|
p.FSMC_AddressHoldTime = 1;
p.FSMC_DataSetupTime = 15;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
|
|
Попробуй увеличить
p.FSMC_AddressHoldTime и p.FSMC_DataLatency
|
|
|
|
06.02.2013, 15:20
|
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
Сообщение от omercury
|
|
Попробуй увеличить p.FSMC_DataLatency
|
Это для синхронного доступа только нужно.
|
|
|
|
06.02.2013, 15:52
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
А тут асинхронно?
|
|
|
|
06.02.2013, 15:55
|
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
Сообщение от omercury
|
|
А тут асинхронно?
|
Ну сигнала FSMC_CLK от мк я не вижу.
|
|
|
|
06.02.2013, 17:18
|
|
|
Прохожий
Регистрация: 17.10.2005
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
Batisto4ka,
а Вам вообще удалось запустить этот индикатор?
Я бы сначала прикрутил его к GPIO, добился работы и только потом потихоньку переделал под FSMC....
|
|
|
|
07.02.2013, 10:18
|
|
|
Временная регистрация
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
конкретно этот-нет, так как нет подсветки, но вроде удалось прочитать регистры с него. подсветка-вопрос времени. пока делаю паузу, когда появится-вернусь на форум. всем огромное спасибо, кто помогал.
|
|
|
|
28.03.2013, 10:42
|
|
|
Временная регистрация
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
Таки появилась подсветка, долгими мучениями удалось настроить fsmc для работы с экраном:
|
Код:
|
p.FSMC_AddressSetupTime = 10;
p.FSMC_AddressHoldTime = 20;
p.FSMC_DataSetupTime = 60;
p.FSMC_BusTurnAroundDuration =0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_A; |
именно с такими настройками fsmc удается читать записанные при инициализации дисплея регистры и данные.
Но изображение на экран не выводится, вместо заливки экрана заданным цветом на экране отображаются разноцветные полосы. не могу понять, что не так.
Если регистры тфт и данные, записанные в него считываются верно, значит fsmc настроен правильно?Следовательно скорее всего ошибка в инициализации тфт?
Код инициализации взят из апноута для экранов winstar(5.7") с контроллером ssd1963, но у меня экран raystar rfc571A.
Подскажите, где искать ошибку.
И еще, у моего экрана есть линии scan direction UP и LR, не пойму как ими управлять, в даташите на экран о них ни слова.
|
|
|
|
28.03.2013, 11:20
|
|
|
Временная регистрация
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
Вот код моей инициализации TFT
|
Код:
|
RESETCLR;//RS=0
DelayUS(1);
RESETSET;//RS=1
DelayUS(1);
LCD_WriteCommand(CMD_SOFT_RESET);
LCD_WriteCommand(CMD_SOFT_RESET);
LCD_WriteCommand(CMD_SOFT_RESET);
LCD_WriteCmd(CMD_PLL_START,0x01);//START PLL
LCD_WriteCmd(CMD_PLL_START,0x03);//LOCK PLL
LCD_WriteCommand(CMD_SET_PANEL_MODE);//SET LCD MODE SET TFT 18Bits MODE
LCD_WriteData(0x0c);//c //SET TFT MODE & hsync+Vsync+DEN MODE
LCD_WriteData(0x00); //SET TFT MODE & hsync+Vsync+DEN MODE
LCD_WriteData(0x01); //SET horizontal size=320-1 HightByte
LCD_WriteData(0x3f); //SET horizontal size=320-1 LowByte
LCD_WriteData(0x00); //SET vertical size=240-1 HightByte
LCD_WriteData(0xef); //SET vertical size=240-1 LowByte
LCD_WriteData(0x00); //SET even/odd line RGB seq.=RGB
LCD_WriteCmd(CMD_SET_DATA_INTERFACE,0x00); //SET pixel data I/F format=8bit
LCD_WriteCmd(CMD_SET_PIXEL_FORMAT,0x60); // SET R G B format = 6 6 6
LCD_WriteCommand(CMD_SET_PLL_MN); //SET PLL freq=113.33MHz ;
LCD_WriteData(0x22);
LCD_WriteData(0x03);
LCD_WriteData(0x04);
LCD_WriteCommand(CMD_SET_PCLK); //SET PCLK freq=9MHz ; pixel clock frequency
LCD_WriteData(0x00);
LCD_WriteData(0xE7);
LCD_WriteData(0x4f);
LCD_WriteCommand(CMD_SET_HOR_PERIOD); //SET HBP
LCD_WriteData(0x01); //0x01 //SET HSYNC Total = 440
LCD_WriteData(0xb8);
LCD_WriteData(0x00); //SET HBP = 68
LCD_WriteData(0x44);
LCD_WriteData(0x0f); //0x0f//SET VBP 16 = 15 + 1
LCD_WriteData(0x00); //SET Hsync pulse start position
LCD_WriteData(0x00);
LCD_WriteData(0x00); //SET Hsync pulse subpixel start position
LCD_WriteCommand(CMD_SET_VER_PERIOD); //SET VBP
LCD_WriteData(0x01); //SET Vsync total 265 = 264 + 1
LCD_WriteData(0x08);
LCD_WriteData(0x00); //SET VBP = 19
LCD_WriteData(0x12);//
LCD_WriteData(0x07); //SET Vsync pulse 8 = 7 + 1
LCD_WriteData(0x00); //SET Vsync pulse start position
LCD_WriteData(0x00);
LCD_WriteCommand(CMD_SET_COLUMN);//SET column address
LCD_WriteData(0x00); //SET start column address=0
LCD_WriteData(0x00);
LCD_WriteData(0x01); //SET end column address=320
LCD_WriteData(0x3f);
LCD_WriteCommand(CMD_SET_PAGE);//SET page address
LCD_WriteData(0x00); //SET start page address=0
LCD_WriteData(0x00);
LCD_WriteData(0x00); //SET end page address=240
LCD_WriteData(0xef);
LCD_WriteCommand(CMD_ENT_NORMAL_MODE);
LCD_WriteCommand(CMD_ON_DISPLAY); //SET display on |
|
|
|
|
28.03.2013, 18:36
|
|
|
Временная регистрация
Регистрация: 19.05.2010
Сообщений: 78
Сказал спасибо: 10
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
такс, таки вроде проблема была в шлейфе, пару раз подергав получилось добиться вывода на экран заливки. но теперь мучаюсь с настройкой для корректного отображения изображения. во-первых у меня быстро мигает изображение, как бы рябит, не знаю как описать, а во-вторых получается, что у меня ширина пикселя как бы в 2 раза уже. вот если вывести полоску шириной в 5 пикселей зеленого цвета, то невооруженным глазом видно, что идет следующая последовательность зеленый-черный, зеленый-черный, зеленый-черный,зеленый-черный, зеленый-черный.то есть выведенно 5 пикселей с промежутками. как бы так настроить, чтобы была корректная картинка и не мигала? дисплей rfc57a1
|
|
|
|
28.03.2013, 19:25
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: stm32 + FSMC + ssd1963:?
Выведи полоску шириной 160 пикселей. Если она займет половину экрана - поднимай в 2 раза частоту, если займет весь экран - значит контроллер фактически вместо одного байта отправляет 2, с нулями в каждом втором
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:38.
|
|