|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||||||
Вывод информации на TFT через SPI04.12.2018, 08:06. Показов 5808. Ответов 55
Всем доброго дня. Помогите с выводом информации на TFT-экран (в моем случае на ILI9341 1,8 дюйма). Пример с ногодрыгом нашел, освоил, вывод букв, строк получается. Теперь хотелось бы вывести информацию через SPI2 (SPI1 у меня уже занят под потенциометры АЦП), да и что-то мне подсказывает, что аппаратная реализация будет правильнее.
В коде для отслеживания прописал синий светодиод плюс осциком на выводе PB15 (SPI2_MOSI) вижу сигналы. После инициализации экран немного изменяет цвет и ничего не происходит, хотя должен выводиться небольшой красный квадрат. Может быть в последовательностях CS, DC и RESET ошибся? Либо в SPI2 отправка данных неправильная ... Инициализация TFT точно рабочая, так как в режиме ногодрыга она актуальна.
0
|
||||||
| 04.12.2018, 08:06 | |
|
Ответы с готовыми решениями:
55
Вывод кириллических символов на tft ili9341 spi, stm32f103 STM32F429-Disco TFT Плывет картинка по SPI
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 12.12.2018, 13:33 | |
|
1
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 14.12.2018, 17:25 [ТС] | |
|
Теперь понял! Заморочился я немного с каналами, а можно было проще ) Теперь точно проведу рефакторинг
. А все из-за того, что когда-то давно сделал неправильный вывод . Поолучается я все свои три фазы одним таймером сгенерю.
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 14.12.2018, 17:28 | |
|
Vozz, именно так) нужно только будет 3 таблички синуса, для каждого канала сдвинутые по фазе друг относительно друга)
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 14.12.2018, 17:32 [ТС] | |
|
И все-таки опять вернемся к DMA ...
Упростил до элементарного, абстрагировался от TFT. Теперь задача выслать байт с ноги MOSI и поймать на MISO (перемычка на отладочной плате между PA6 и PA7). В режиме "чистого" SPI что отправил - то и поймал, вопросов нет. Но через DMA отправляю одно - приходит другое. К примеру сейчас отправил 0х08 получил 0х65. С указателями я пока не очень дружу, поэтому в качестве аргументов обычные переменные
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 14.12.2018, 17:36 [ТС] | |
|
В рефмане есть что-то вроде карты таймингов. Но не очень понятно ...
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 14.12.2018, 17:42 [ТС] | |
|
В отладчике видно, что в CMAR3 попадает именно то число, которое я и передаю в функцию передачи байта по DMA, но вот до SPI1->DR видимо уже не все доходит? Флаг GIF, TCIF и HTIF поднимаются
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 14.12.2018, 17:46 | |
|
Vozz, по какому принципу сейчас отправляете? Если как я писал, то попробуйте в прерывании по завершению передачи подождать установки флага SPI RXNE, а только потом поднимите пин CS
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 14.12.2018, 17:46 [ТС] | |
|
Сейчас по SPI+DMA
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 14.12.2018, 17:48 | |
|
Либо когда флаг BSY в 0 уйдет
Добавлено через 43 секунды Vozz, киньте лучше код, которым сейчас оперируете
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||||||
| 14.12.2018, 17:49 [ТС] | ||||||
0
|
||||||
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 14.12.2018, 17:56 | |
|
Vozz, а в какой момент вы смотрите на то что получили?, точнее где точку останова ставите?
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 14.12.2018, 18:02 [ТС] | |
|
Останов не ставлю после того как отладчик проходит dmaSend8(0x08, 1); в SPI1->DR появляется число, только неправильное
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 14.12.2018, 18:12 | |
|
Vozz, как то это не правильно) У вас SPI работает на частоте 93 кГц чтобы вытолкнуть 8 бит ему нужно 8 тактов. А процессор молотит на частоте 24 МГц и после установки EN выходит из функции, то есть у вас физически не успеет байт убежать и в DR может быть что угодно. Попробуйте после функции полить флаг RXNE SPI и когда он будет 1 посмотреть что в DR ну или точку останова поставить на прерывание DMA
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
|
| 15.12.2018, 16:12 [ТС] | |
|
В общем кое-что получилось. Теперь в SPI1->DR лежит то, что отправил! Но без указателей или массивов тут не обойтись, просто передать переменную не удается. Теперь нужно подтягивать теорию по указателям.
0
|
|
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
| 15.12.2018, 16:20 | |
|
Vozz, ну а как вы хотели? DMA это аппаратный инструмент работы с памятью напрямую, указатели - сотовый инструмент. Я же вам сразу написал про массив) ибо локальная переменная живёт только пока выполняется функция, а потом на её физическом адресе может быть что угодно)
0
|
|
|
1 / 1 / 0
Регистрация: 22.06.2016
Сообщений: 96
|
||||||
| 16.12.2018, 18:21 [ТС] | ||||||
|
Бой был непростым, но DMA+SPI наконец-то повержен.
Оказывается, у ILI9341 реакция не особо и ему после переключения режимов CS/DC нужно вносить задержки, иначе чем выше скорость - тем больше байтов потеряется по пути к TFT. Выжал максимум при SPI1_BR = /2 обновляется экран быстро, но все же... хотелось бы побыстрее. Надеюсь, мой пример кому-нибудь поможет
0
|
||||||
| 16.12.2018, 18:21 | |
|
Вывод информации из БД через форму Вывод информации из БД через форму Вывод информации через MS Word Вывод информации через скрипт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|