Здравствуйте.
Железки : nt35510 ( https://aliexpress.ru/item/32807629460.html?spm=a2g39.. ),
stm32f407 ( https://aliexpress.ru/item/4000029771709.html?spm=a2g.. ),
ST-Link V2 ( https://aliexpress.ru/item/32921831799.html?spm=a2g39.. ).
ПО - STM CubeMX, Keil uVision5.
Знания : технический английский с натяжкой на троечку, языки программирования - почти ноль, чтение и понимание схем - твёрдая четвёрка, умение паять - красиво и аккуратно ))).
Хочу освоить МК STM32 для своих проектов (мощный БП, он же ЗУ + мощная электронная нагрузка - в итоге зарядно-разрядный комплекс).
Удачно повторил несколько чужих проектов в среде AVR.
Поморгать светодиодами на плате STM так же получилось без проблем. Подключить по схеме CubeMX дисплей к плате с МК и завести проект в Keil вроде тоже. Дальше стопор, инициализировать дисплей и вывести на него обычный тест не получается (нет знаний и опыта в данных программах).
Требуется помощь в подключении/инициализации дисплея nt35510 к плате stm32f407. Так же буду благодарен за начальный "туториал" в работе программы Keil и языков С/С++.
Добрый день!
nt35510 нет под рукой, к сожалению. В целом, лучше начать с литературы чисто по C/C++ - Герберт Шилдт обычно хорошо идет.
Здравствуйте. У меня вроде тот же набор что и у вас, тоже никак не получается инициализировать этот дисплей.
Я нашел в инете работу какого то китайца - mculover. К сожаление его сайт ( https://dnspod.qcloud.com/static/webblock.html?d=www.mculover666.cn) сейчас не доступен.
Но его статья, в которой разобран вопрос STM32F407ZGT6 + tft nt35510 + fsmc доступна на других сайтах (один из них - https://programmersought.com/article/49241966652/)
А сама программа, которую он разбирает в этой статье можно с гитхаба у него скачать ( https://github.com/Mculover666/HAL_Driver_Lib). Тут куча материала, но тот который он использует в статье - lcd fsmc вроде. Там описаны функции для работы с дисплеем, в том числе функция инициализации.
Ну вот я пробовал все это дело взять и адаптировать под своё железо, у меня почему-то не работает. Если у вас что-то выйдет - отпишитесь пожалуйста.
@aveal контроллер там такой же. Но у автора темы и у меня речь шла о 3.9 дюймах.
Нашёл в сети несколько вариантов библиотек для данного дисплея в среде СТМ32...
Хорошо, ждём экрана )))...
С библиотекой от "СТ", в среде СТМ32КубИДЕ... Создал проект, перенёс библиотеку в проект, дальше всё, даже залить цветом экран не смог, кроме чёрного )))... Может попробуем запустить удалённо ? ))) Архивы и файлы в комплекте )))...
Появилось свободное время, решил "помучать" дисплеи накопившиеся у меня )))... В итоге, с сайта "lcdwiki", библиотеки подошли. Только они изначально созданы в среде МДК Кеил, у меня нет знаний и умений перенести их в среду КубИДЕ... Поэтому я пошёл по другому пути, попробовал урезать/отключить часть тестов что бы уместиться в ограничения Кеил... Получилось запустить весь зоопарк дисплеев на данный момент ))).
Прикладываю файл с частью отключенных тестов для среды Кеил. Включить или отключить тесты можно в файле "main.c" и "test.c", схема подключения дисплея в файлах "lcd.h" и "lcd.c".
Доброго дня!
К какому чипу вы подключали экран? Я пытался подключить STM32F407VGT6 по FSMC адаптируя пример с http://www.lcdwiki.com/3.97inch_16BIT_Module_NT35510_SKU:MRB3973 ничего не получилось. Где то прочитал, что STM32 не совсеми LCD может работать через FSMC (для меня это критически важно). В общем, для начала хочу понять, в чем проблема – толи LCD мертв, толи я неправильно адаптирую пример. Может у вас есть пример подключения к моему чипу? Либо можете подсказать, как корректно адаптировать пример под другой чип? На что обратить внимание? В общем, любой совет, что бы заставить это чудо китайской промышленности работать…
Все дисплеи с 8 или 16 битным интерфейсом можно запустить по FSMC. На дисплее должны быть контакты:
D0-D7
или
D0-D15 - данные
WR - Запись
RD - Чтение
CS - Выбор кристалла
C/D - Команда/Данные
RD сигнала может не быть.
Чтобы проверить дисплей нужно найти библиотеку с примером. Неважно под какой чип. Важно его иметь. Чаще под Ардуину.
Проверили дисплей, начинаете читать что такое вообще FSMC.
Проверяете, стоит ли на дисплее преобразователь уровней 5<->3.3 вольт. STM работает только с 3.3 и придётся делать так, что бы дисплей работал от 3.3
Затем подключаете к STM и начинаете передирать библиотеку на которой дисплей запустился.
Если не понятно, что я написал, нужно изучать:
1. Схемотехнику
2. Протокол 8080
3. Электронику.
4. Программирование на выбранном языке
5. Внутреннюю структуру и работу микроконтроллера
6. И т.д.
Поверьте, при желании это сделать можно. А нахрапом, используя чужие библиотеки запустить не сможете. Нужно понимать что и как происходит.
Ещё не плохо было бы иметь логический анализатор на 16 каналов.
Я уже не один дисплей по FSMC запустил.
STM контроллер для меня в новинку (я больше как то по Atmega-м), но по моим наблюдениям для подключения по FSMC куб предусматривает несколько предопределенных вариантов подключения. т.е. нельзя подключить шину данных, например, просто к D0-D15. То что предлагаете вы - это похоже на эмуляцию протокола. Я видел такой пример тоже. Например https://hubstub.ru/display/213-inicializaciya-otm8009a.html
В моем случае распиновка, а точнее то что предложил куб, выглядит так:
PD13 -> RS (FSMC_A18)
PD4 -> RD (FSMC_NOE)
PD14 -> DB00 (FSMC_D0)
PD0 -> DB02 (FSMC_D2)
PE7 -> DB04 (FSMC_D4)
PE9 -> DB06 (FSMC_D6)
PE11 -> DB08 (FSMC_D8)
PE13 -> DB10 (FSMC_D10)
PE15 -> DB12 (FSMC_D12)
PD9 -> DB14 (FSMC_D14)
PD7 -> CS_T (CS) (FSMC_NE1)
PD5 -> WR (FSMC_NWE)
NRST -> RST
PD15 -> DB01 (FSMC_D1)
PD1 -> DB03 (FSMC_D3)
PE8 -> DB05 (FSMC_D5)
PE10 -> DB07 (FSMC_D7)
PE12 -> DB09 (FSMC_D9)
PE14 -> DB11 (FSMC_D11)
PD8 -> DB13 (FSMC_D13)
PD10 -> DB15 (FSMC_D15)
Отличие от примера с wiki - в подключении ног RS (там PF12) и CS (и PG12). В моем микроконтроллере просто нет этих портов. На свое разумение я подправил исходники, переделав под "мои" ножки, но видимо пока квалификация слабовата, поэтому ничего не завелось.