MementoMori 4 27 января, 2020 Опубликовано 27 января, 2020 · Жалоба Так и есть Функция uint32_t HAL_RCC_GetSysClockFreq(void) { uint32_t pllm = 0, pllvco = 0, pllp = 0; uint32_t sysclockfreq = 0; /* Get SYSCLK source -------------------------------------------------------*/ switch (RCC->CFGR & RCC_CFGR_SWS) { case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */ { sysclockfreq = HSI_VALUE; break; } case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */ { sysclockfreq = HSE_VALUE; break; } .............................. сообщила мне, что источник тактирования у меня HSI, а SYSCLK=16 МГц) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 января, 2020 Опубликовано 27 января, 2020 · Жалоба Не работал кварц. Думал, плохо припаял - оказалось нет. Поставил новый - и тактирование и SDRAM все заработало как надо. Подбираю теперь пока режимы экрана, ибо какие-то глюки проскакивают, но это точно не SDRAM - ее я прогнал тестами полчаса - все нормально. Черт... неделя убитого времени из-за того, что не догадался проверить тактирование. Никаких серьезных задач контроллер не выполнял, вот я и не заметил, что он работает на 16 Мгц.... P.S. С CAS Latency=2 что-то не пошло. Некоторые пиксели стали плавать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 27 января, 2020 Опубликовано 27 января, 2020 · Жалоба Поздравляю с решением проблем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 января, 2020 Опубликовано 27 января, 2020 · Жалоба Только непонятка странная.... раньше я указывал частоты для Pixelclock 40-65 Мгц. Не узнаю уже, какими они были на самом деле. Сейчас указываю частоты 25-35 МГц - выше не тянет. Ниже мерцает. Я бы мог списать снижение этих цифр на правильное тактирование, но по даташиту дисплей требует 40-65 Мгц. У меня на 40 даже не заводится. Именно дисплей, именно развертка. На VSync при частоте пиксельклока, указанной как 30 МГц, ловлю 35 Герц. А 1024х600*35=21МГц... Что-то я не пойму этих математических взаимосвязей между разрешением, частотой кадров и пиксельклоком. Точнее принцип ясен, но цифры немного не сходятся. В общем, если подытожить - удалось получить стабильную картинку (под стабильной картинкой я имею в виду стабильное обновление информации из SDRAM) с частотой 35 кадров в секунду, разрешением 1024х600 и 24 битным цветом. Есть слааааабое мерцание. Кстати, если включать в RGB565, результат не лучше. Полагаю, что когда буду рисовать, то SDRAM поднагрузится и будут артефакты. Но, надеюсь с DMA2D и двойной буферизацией это удастся победить. В крайнем Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 27 января, 2020 Опубликовано 27 января, 2020 · Жалоба 1 hour ago, MementoMori said: точно не SDRAM - ее я прогнал тестами полчаса - все нормально Я бы не спешил с выводами: для более-менее внятного тестирования нужно заменить вызовы rand() на локальную реализацию быстрого алгоритма генерации ПСП. 48 minutes ago, MementoMori said: А 1024х600*35=21МГц... Что-то я не пойму этих математических взаимосвязей между разрешением, частотой кадров и пиксельклоком. Точнее принцип ясен, но цифры немного не сходятся. Вы представляете, как развертка в аналоговом телевидении работала? Вот здесь примерно то же, только "обратный ход" короче. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 27 января, 2020 Опубликовано 27 января, 2020 · Жалоба Вообще-то частота кадров под 60 герц и строк15..18 кгц нормальное дело. 30 герц как-то аовсем не то ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 27 января, 2020 Опубликовано 27 января, 2020 · Жалоба Разберусь потом. НА худой конец поставлю дисплей 800х480. Я тут пытаюсь с DMA2D поработать, он у меня куда-то не туда прямоугольник копирует, не в начало экрана, как хочу, а в середину. Причем непоместившаяся часть выводится с противоположной стороны экрана. Примерно как здесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 28 января, 2020 Опубликовано 28 января, 2020 · Жалоба Все отлично, все работает. Запустил FreeRTOS,запустил TouchGFX. Вот беда - если слишком большая картинка (я загрузил фон 1024х600), то линковщик выдает следующее RUTFT\RUTFT.axf: Error: L6406E: No space in execution regions with .ANY selector matching wall.o(ExtFlashSection). RUTFT\RUTFT.axf: Error: L6406E: No space in execution regions with .ANY selector matching blue_clocks_backgrounds_clock_classic_background.o(ExtFlashSection). RUTFT\RUTFT.axf: Error: L6406E: No space in execution regions with .ANY selector matching blue_progressindicators_bg_medium_circle_indicator_bg_full.o(ExtFlashSection). Видимо TOucgGFX Designer не умеет, перенастраивая проект, адаптировать его под объем необходимой памяти. А самой памяти у меня предостаточно - 2 QSPI Flash. 128 мбит Во внешней флеш картинки и хранятся: LOCATION_PRAGMA("ExtFlashSection") KEEP extern const unsigned char _wall[] LOCATION_ATTRIBUTE("ExtFlashSection") = // 1024x600 RGB888 pixels. { 0x67, 0x35, 0x23, 0x69, 0x37, 0x25, 0x69, 0x37, 0x25, Друзья, где и как нужно изменить настройки проекта в Keil 5, чтобы линковщик это проглотил? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 28 января, 2020 Опубликовано 28 января, 2020 · Жалоба И еще проблема с touch контроллером. В пакете от ST есть библиотеки под FT5336 http://www.newhavendisplay.com/appnotes/datasheets/touchpanel/FT5336.pdf У меня же контроллер FT5316 https://www.newhavendisplay.com/app_notes/FT5x16.pdf Я существенной разницы не нашел. Единственное, что должно отличаться - это адреса. Ни в одном ни в другом даташите я адресов не нашел. А вот ST на свой контроллер (FT5336) адрес откуда-то знает - 0x70. К моему контроллеру адрес не подходит. ft5336_ts_drv.Init(TS_I2C_ADDRESS); if(ft5336_ts_drv.ReadID(TS_I2C_ADDRESS) == FT5336_ID_VALUE) { /* Initialize the TS driver structure */ tsDriver = &ft5336_ts_drv; I2cAddress = TS_I2C_ADDRESS; tsOrientation = TS_SWAP_XY; /* Initialize the TS driver */ tsDriver->Start(I2cAddress); } else { status = TS_DEVICE_NOT_FOUND; } Вышеприведенный код вываливается с ошибкой TS_DEVICE_NOT_FOUND Есть ли какая-нибудь возможность узнать адрес контроллера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 января, 2020 Опубликовано 28 января, 2020 · Жалоба 5 minutes ago, MementoMori said: Есть ли какая-нибудь возможность узнать адрес контроллера? В цикле перебрать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 28 января, 2020 Опубликовано 28 января, 2020 · Жалоба Да я думал, но там таймаут несколько секунд... ну ничего подожду, 128 адресов - не так уж много. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 января, 2020 Опубликовано 28 января, 2020 · Жалоба 5 minutes ago, MementoMori said: Да я думал, но там таймаут несколько секунд... Так то там. Ну, можно и подождать, конечно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 28 января, 2020 Опубликовано 28 января, 2020 · Жалоба мда.... там еще и регистр, из которого читать, надо знать. В коде для другого контроллера он есть. А в даташите нет.... Может я не так даташит читаю.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 28 января, 2020 Опубликовано 28 января, 2020 (изменено) · Жалоба http://www.pudn.com/Download/item/id/2983834.html в комментариях по-аглицки (This is a touch screen driver FT5316 MTK IC platform driver code, has been debugging OK ) к исходнику. Подойдёт? PS: хоть гугля последнее время стал протухать как поисковик, но пока ещё: https://www.newhavendisplay.com/appnotes/datasheets/touchpanel/FT5x16_registers.pdf - все потроха. Изменено 28 января, 2020 пользователем Obam Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 29 января, 2020 Опубликовано 29 января, 2020 · Жалоба Спасибо, почитаю. Ну а еще один вопрос, тот что выше по тексту был? Про нехватку памяти для картинок... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться