Как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
19.01.2013, 04:04
|
|
|
Гражданин KAZUS.RUN
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Купил отладку STM32F4DISCOVERY. Установил Keil. Погонял простейшие программы. Теперь хочу подключить к нему такой дисплей http://www.ebay.com/itm/New-3-2-inch...item2a2098f894.
На МК STM32F407VGT6 есть аппаратный 8080 интерфейс для управления подобными дисплеями.
Собственно вопрос как правильно подключить такой дисплей к отладке. Из мануала к STM32F407VGT6 так и не понял на какие ноги этот интерфейс выведен.
Там этому вопросу уделен всего лишь один абзац:
" LCD parallel interface
The FSMC can be configured to interface seamlessly with most graphic LCD controllers. It
supports the Intel 8080 and Motorola 6800 modes, and is flexible enough to adapt to
specific LCD interfaces. This LCD parallel interface capability makes it easy to build costeffective
graphic applications using LCD modules with embedded controllers or high
performance solutions using external controllers with dedicated acceleration."
И есть ли пример кода для Keil для инициализации и работы с подобным дисплеем. В принципе найти код который с помощью ногодрыга сможет работать с этим дисплеем не проблема, но хочется чтобы код работал используя аппаратный интерфейс 8080.
|
|
|
|
19.01.2013, 11:05
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
__________________
Осторожно , злой кот
|
|
|
|
Сказали "Спасибо" dosikus
|
|
|
19.01.2013, 12:17
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Держите коды. Схему надо на другом компе искать. Спят еще все. Рано вы слишком.
|
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
19.01.2013, 13:02
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Отсюда можно взять схему. Интерфейс - параллельный 16-ти битный. К нему добавьте АЦП тач-скрина, работающее по SPI.
|
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
19.01.2013, 13:40
|
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Easyrider83, слушай, а ты SDIO и uSD не пробовал запускать?
|
|
|
|
19.01.2013, 15:11
|
|
|
Гражданин KAZUS.RUN
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Ошибка при компиляции: GLCD.c(55): error: #20: identifier "RCC_AHBPeriph_FSMC" is undefined
RCC_AHBPeriph_FSMC объявлен в stm32f10x_rcc.h но в stm32f4xx_rcc.h такой константы нет. Что делать?
|
|
|
|
19.01.2013, 15:23
|
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
У меня подключен к этой плате SSD1963.
|
Код:
|
RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE); //FSMC
//Инициализация FSMC:
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_11; //SSD_RS -› GPIO_Pin_6(PD6), SSD_RESET -› GPIO_Pin_11(PD11)
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource4, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource7, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource10, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_FSMC);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOE, &GPIO_InitStruct);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource7, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource8, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource9, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource10, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource11, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource12, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource13, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource14, GPIO_AF_FSMC);
GPIO_PinAFConfig(GPIOE, GPIO_PinSource15, GPIO_AF_FSMC);
FSMC_NORSRAMTimingInitStructure.FSMC_AddressSetupT ime = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_AddressHoldTi me = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_DataSetupTime = 6;
FSMC_NORSRAMTimingInitStructure.FSMC_BusTurnAround Duration = 1;
FSMC_NORSRAMTimingInitStructure.FSMC_CLKDivision = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_DataLatency = 0;
FSMC_NORSRAMTimingInitStructure.FSMC_AccessMode = FSMC_AccessMode_A;
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_PSRAM;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStru ct = &FSMC_NORSRAMTimingInitStructure;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &FSMC_NORSRAMTimingInitStructure;
FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
/*!‹ Enable FSMC Bank1_SRAM1 Bank */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
//Запись:
#define Bank1_SRAM1_ADDR ((uint32_t)0x60000000) //FSMC write/read
*(uint16_t *) (Bank1_SRAM1_ADDR) = value; /* Transfer data
Не забываем, правильно выставлять RS дисплея для данных или комманд. |
Последний раз редактировалось realid; 19.01.2013 в 15:28.
|
|
|
|
19.01.2013, 15:47
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Сообщение от realid
|
|
Easyrider83, слушай, а ты SDIO и uSD не пробовал запускать?
|
SDIO работает. uSD - это что?
|
|
|
|
19.01.2013, 15:51
|
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Сообщение от Easyrider83
|
|
SDIO работает. uSD - это что?
|
uSD = microSD.
Работать-то работает, но почему то при запуске их примера, при запросе SCR от карты, ничего не приходит и выскакивает флаг таймаута. Он запрашивается когда переключается режим на 4-х битный, я только не пойму нахер они его запрашиваю, потому что 1 битный и 4-х битный должны по стандарту поддерживаться во всех картах.
|
|
|
|
19.01.2013, 19:16
|
|
|
Гражданин KAZUS.RUN
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Что то я совсем запутался с Кейлом.
Ошибка:
Blinky.c(67): error: #20: identifier "GPIO_InitStruct" is undefined
При том что добавлено #include "stm32f4xx_gpio.h"
Хотя добавил переменную GPIO_InitTypeDef GPIO_InitStruct и пропустило. Правильно?
Последний раз редактировалось Flopix; 19.01.2013 в 19:22.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:48.
|
|