реклама на сайте
подробности

 
 
> HY-Mini STM32V + STemGUI, Конфигурирование STemGUI под SSD1289
electrotehnik
сообщение Oct 10 2014, 06:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Добрый день, товарищи

Раскуриваю даташиты и разнообразные примеры, в том числе и на забугорных сайтах, уже больше недели, но скорость продвижения только замедляется.
Помогите, пожалуйста.

Имеется плата HY-Mini STM32V, купленная на ибее. Выбрал ее за такой комплекс периферии:


  • Контроллер STM32F103VCT6
  • Дисплей 320х240, 65536 цветов на контроллере SSD1289, подключенный по 16bit параллельному FSMC интерфейсу
  • Тачскрин на контроллере ADS7843 (по SPI подключен).
  • Слот microSD и прочее...

Скачал библиотеку STemGUI с офф. сайта ST Microelectronics. В процессе чтения даташита на эту библиотеку стало понятно, что это известная платная библиотека emGUI, похоже купленная ST и выложенная свободно, возможно, в какой-то ограниченной комплектации, но драйвер для распространенных контроллеров SSD1289 у ней в комплекте. И находится он там в файле LCDConf_FlexColor_Template.

На сайте производителя этой отладочной платы я нашел разнообразные примеры, в том числе и STemGUI, он компилируется, но не работает. Судя по всему его код не полностью портирован с одной из официальных отладочных ST'шных плат на эту, и, кроме того, библиотека, предлагаемая ST, сейчас уже откомпилирована в lib-файл, а этот пример - нет, и в итоге мало чего общего в них я заметил.

Прилагаю к этому посту код моего проекта в Keil4, и даташиты железа.



Помогите, пожалуйста, разобраться куда в этой библиотеке вписать адреса памяти для работы с LCD по FSMC, буду очень признателен, если покажете в каком месте даташита к контроллеру SSD1289 указаны конкретные адреса его памяти. И где в этой библиотеке настраиваются пины контроллера, к которым подключен LCD и Тач.

Сейчас мой проект при компиляции выдает следующие ошибки:
Error: L6406E: No space in execution regions with .ANY selector matching guiconf.o(.bss).
Error: L6407E: Sections of aggregate size 0x800000 bytes could not fit into .ANY selector(s).

Т.е. я так понимаю, первая проблема - это не настроенные адреса памяти вообще,
есть мысль, что настраиваются они вот здесь, в файле GUIConf.c:

Код
#define GUI_NUMBYTES 0x200000

void GUI_X_Config(void) {
  //
  // 32 bit aligned memory area
  //
  static U32 aMemory[GUI_NUMBYTES / 4];
  //
  // Assign memory to emWin
  //
  GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
  //
  // Set default font
  //
  GUI_SetDefaultFont(GUI_FONT_6X8);
}


Изменение значения GUI_NUMBYTES на наличие ошибок влияния не дает.

Файлы моего проекта с библиотеками скачать можно здесь:
STemWinProject.rar
Прикрепленные файлы
Прикрепленный файл  HY32D_LCD_module_schematic.pdf ( 58.9 килобайт ) Кол-во скачиваний: 39
Прикрепленный файл  HY_MiniSTM32V_SCH.pdf ( 101.69 килобайт ) Кол-во скачиваний: 27
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
valeros
сообщение Oct 10 2014, 09:59
Сообщение #2





Группа: Участник
Сообщений: 11
Регистрация: 4-12-11
Из: Киев
Пользователь №: 68 670



Не работал с STemGUI, думаю глобальных отличий от EmWin нет.
Есть два драйвера которые поддерживают контроллер SD1289: GUIDRV_FLEXCOLOR и GUIDRV_COMPACT_COLOR_16.
Их различие состоит в том, что драйвер GUIDRV_FLEXCOLOR - runtime configurable, то есть может конфигурироваться во время работы, а параметры драйвера GUIDRV_COMPACT_COLOR_16 задаются во время компиляции (compile time configurable).
В этих драйверах уже учтены необходимые адреса памяти и регистров их вручную настраивать не надо.

Цитата
Error: L6406E: No space in execution regions with .ANY selector matching guiconf.o(.bss).
Error: L6407E: Sections of aggregate size 0x800000 bytes could not fit into .ANY selector(s).


Эти ошибки говорят, что задано слишком большой размер памяти для GUI, необходимо уменьшить, чем меньше это значение тем заметнее будут перерисовки.
Можете попробовать
Код
#define GUI_NUMBYTES  (320*240)


AlexandrY верно подсказал, необходимо задать размеры экрана:
Код
#define XSIZE_PHYS 320
#define YSIZE_PHYS 240


Для полноценной работы необходимо такие функции:
1. Инициализация дисплея
a) Инициализируется вся необходимая для дисплея периферия : FSMC, GPIO, PWM для подсветки)
б) Запись в регистры необходимых параметров (количество цветов, поворот, интерфейс)
Эта функцию необходимо вызвать в функции LCD_X_DisplayDriver, в случае LCD_X_INITCONTROLLER.
2. Считывание и запись слов и массивов (указатели на эти функции будут использоваться в драйвере)
Код
void LCD_X_Write00_16(U16 c);
void LCD_X_Write01_16(U16 c);
U16  LCD_X_Read01_16 (void);
void LCD_X_WriteM01_16(U16 * pData, int NumWords);
void LCD_X_ReadM01_16 (U16 * pData, int NumWords);


Последний пункт оформление функции LCD_X_Config, в которой настраивается сам драйвер, вот пример моей:
Код
GUI_DEVICE * pDevice;
CONFIG_FLEXCOLOR Config = {0};
GUI_PORT_API PortAPI = {0};
pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR,COLOR_CONVERSION, 0, 0);
Config.RegEntryMode = 0x6830;
Config.Orientation = GUI_SWAP_XY|GUI_MIRROR_X|GUI_MIRROR_Y;
GUIDRV_FlexColor_Config(pDevice, &Config);
LCD_SetSizeEx (0,XSIZE_PHYS, YSIZE_PHYS);
LCD_SetVSizeEx(0, XSIZE_PHYS * NUM_VSCREENS, YSIZE_PHYS);

LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
LCD_SetVSizeEx(0, XSIZE_PHYS * NUM_VSCREENS, YSIZE_PHYS);
PortAPI.pfWrite16_A0  = LCD_X_Write00_16;
PortAPI.pfWrite16_A1  = LCD_X_Write01_16;
PortAPI.pfWriteM16_A1 = LCD_X_WriteM01_16;
PortAPI.pfReadM16_A1  = LCD_X_ReadM01_16;
GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66702, GUIDRV_FLEXCOLOR_M16C0B16);

где GUIDRV_FLEXCOLOR_F66702 - идентификатор SSD1289, GUIDRV_FLEXCOLOR_M16C0B16 - формат шині ( 16bpp, no cache, 16 bit bus)
Go to the top of the page
 
+Quote Post
electrotehnik
сообщение Oct 10 2014, 12:01
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Цитата(valeros @ Oct 10 2014, 10:59) *
...GUIDRV_FLEXCOLOR_M16C0B16 [/b]- формат шині ( 16bpp, no cache, 16 bit bus)


Это ведь актуально для подключения LCD к MCU по примеру демоплаты от ST (32F429IDISCOVERY)?
А для подключения, имеющегося сейчас у меня на руках, в текущей компиляции библиотеки STemWin режима работы шины данных нет.
Go to the top of the page
 
+Quote Post
valeros
сообщение Oct 10 2014, 12:58
Сообщение #4





Группа: Участник
Сообщений: 11
Регистрация: 4-12-11
Из: Киев
Пользователь №: 68 670



Цитата(electrotehnik @ Oct 10 2014, 15:01) *
Это ведь актуально для подключения LCD к MCU по примеру демоплаты от ST (32F429IDISCOVERY)?
А для подключения, имеющегося сейчас у меня на руках, в текущей компиляции библиотеки STemWin режима работы шины данных нет.


Должно быть актуально и для F429DISCOVERY, если я не ошибаюсь в F429DISCOVERY дисплей работает в связке с SDRAM которая тоже висит на FSMC.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- electrotehnik   HY-Mini STM32V + STemGUI   Oct 10 2014, 06:23
- - Jekin   Внимательно изучите документацию на библиотеку, в ...   Oct 10 2014, 07:08
- - SasaVitebsk   1) Библиотека не совсем свободная, она в объектах ...   Oct 10 2014, 07:09
- - AlexandrY   Цитата(electrotehnik @ Oct 10 2014, 09:23...   Oct 10 2014, 07:41
|- - electrotehnik   Да разработчики же этой библиотеки утверждают, что...   Oct 10 2014, 08:23
|- - AlexandrY   Цитата(electrotehnik @ Oct 10 2014, 11:23...   Oct 10 2014, 08:32
- - electrotehnik   чем отличается FSMC от "прямого мапирования в...   Oct 10 2014, 08:51
|- - AlexandrY   Цитата(electrotehnik @ Oct 10 2014, 11:42...   Oct 10 2014, 08:56
|- - electrotehnik   Цитата(AlexandrY @ Oct 10 2014, 08:56) .....   Oct 10 2014, 08:58
|- - AlexandrY   Цитата(electrotehnik @ Oct 10 2014, 11:58...   Oct 10 2014, 09:02
- - electrotehnik   Спасибо. Для этой платы буду искать другую библио...   Oct 10 2014, 09:13
|- - AlexandrY   Цитата(electrotehnik @ Oct 10 2014, 12:13...   Oct 10 2014, 10:30
|- - SasaVitebsk   Цитата(AlexandrY @ Oct 10 2014, 14:30) Зн...   Oct 10 2014, 12:13
|- - electrotehnik   Цитата(SasaVitebsk @ Oct 10 2014, 13:13) ...   Oct 10 2014, 13:26
- - johnic   Цитата(electrotehnik @ Oct 10 2014, 07:23...   Oct 15 2014, 16:07


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 00:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.0268 секунд с 7
ELECTRONIX ©2004-2016