19.01.2013, 04:04
|
|
Гражданин KAZUS.RU
Регистрация: 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
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
19.01.2013, 12:17
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Держите коды. Схему надо на другом компе искать. Спят еще все. Рано вы слишком.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
19.01.2013, 13:02
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Отсюда можно взять схему. Интерфейс - параллельный 16-ти битный. К нему добавьте АЦП тач-скрина, работающее по SPI.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
19.01.2013, 13:40
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Easyrider83, слушай, а ты SDIO и uSD не пробовал запускать?
|
|
|
|
19.01.2013, 15:11
|
|
Гражданин KAZUS.RU
Регистрация: 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,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
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,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Сообщение от realid
|
Easyrider83, слушай, а ты SDIO и uSD не пробовал запускать?
|
SDIO работает. uSD - это что?
|
|
|
|
19.01.2013, 15:51
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,539
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Подскажите как подцепить LCD дисплей с контроллером SSd1289 к отладке STM32F4DISCOVERY
Сообщение от Easyrider83
|
SDIO работает. uSD - это что?
|
uSD = microSD.
Работать-то работает, но почему то при запуске их примера, при запросе SCR от карты, ничего не приходит и выскакивает флаг таймаута. Он запрашивается когда переключается режим на 4-х битный, я только не пойму нахер они его запрашиваю, потому что 1 битный и 4-х битный должны по стандарту поддерживаться во всех картах.
|
|
|
|
19.01.2013, 19:16
|
|
Гражданин KAZUS.RU
Регистрация: 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, время: 00:24.
|
|