ILI9341 множественная SPI

Радждардж
Солнце 17 апреля 2016 г. 11:03
Попытка сделать Datalogger. Как необычно !
В любом случае, используя TFT для отображения данных. Это булавки, которые я использую #define SD_CS PA13 #define TFT_CS PA4 #define XPT_CS PA12 #define TFT_DC PB3 #define ONE_WIRE_BUS PA15

Пито
Солнце 17 апреля 2016 г., 11:22
Дважды проверьте свои тактовые скорости SPI (SDCARD VS. скорость SPI TFT), это может произойти..

Werecatf
Солнце 17 апреля 2016 г., 11:27
Не видя оставшейся части вашего кода, я бы сказал, что проблема не в том, чтобы вытащить CS-штифты вниз или вверх, и это где-то еще. Вы используете DMA, например? Может быть. Трудно сказать по фрагменту, который вы опубликовали. Кроме того, хотя я действительно, действительно сомневаюсь, что это проблема здесь, но вы должны научиться всегда тянуть все CS-штифты, прежде чем снимать какие-либо из них-на данный момент вы тянете tft_cs вниз, в то время как xpt_cs все еще может также все еще может все еще может быть ниже. Порядок, в котором вы тянете их вверх и вниз, может вызвать неприятности, если вы не помните.

Rogerclark
Солнце 17 апреля 2016 г. 11:28 утра
Вы также можете запустить SD на SPI1 и LCD на SPI2, используя SetModule (int spi_num), чтобы переключиться между ними.

т.е

SPI.SetModule (1);

делает spi = spi1 (по умолчанию)

SPI.SetModule (2);

Делает spi = spi2

Обратите внимание, что эта функция не была тщательно протестирована, но она определенно работает в некоторых случаях.

Радждардж
Солнце 17 апреля 2016 12:38
Дважды проверьте свои тактовые скорости SPI (SDCARD VS. скорость SPI TFT), это может произойти.. Ну, я использую стандартную библиотеку SD, которая довольно медленная, я считаю.
Я использую библиотеку "ILI9341_DUE_STM" для TFT с DMA ON. Есть библиотека SDFAT, но ее немного сложнее (по крайней мере, для новичка, как я). Может быть. Я действительно не знаю, есть ли это или нет, так как я использую другие библиотеки народов, как упоминалось выше. Знаете ли вы рабочий пример кода, который считывает SD -карту и показывает вещи на TFT? Демо, которые я пробовал только частично.
Это модуль, который я использую. Я считаю, что это распространено?
TFT01-2.4sp-03.jpg
TFT01-2.4sp-03.JPG (241.83 киб) просмотрено 2167 раз

Werecatf
Солнце 17 апреля 2016 г. 13:17
Быстрый просмотр ILI9341_DUE_STM показывает, что после инициализации библиотеки он ни в коем случае не проверяет, что настройки SPI-BUS верны или что-то в этом роде, подобно E.глин. Я использую SPI-транзакции в моем PCD8544 и ILI9341-все время-на ESP8266 SD-карта, которую я использую, пробегает на 20 МГц, а дисплей работает на 80 МГц, и он просто прекрасно работает. ILI9341_DUE_STM выглядит немного грязно в целом, где -то тоже может быть ошибка. Я бы не знал наверняка, не придавая ему более подробного взгляда, хотя.

Пито
Солнце 17 апреля 2016 г. 14:57
На этом TFT сигналы SDCARD подключены через R1 = R2 = R3 = 1K резисторы (?), поскольку они используют эти резисторы, чтобы предотвратить ущерб при подключении к Arduinos 5 В.
Я бы заменил их, скажем, 22 Ом (или проволоку) при использовании 3.Только 3V логика.
Конечно, это может не помочь, но края сигнала будут выглядеть лучше.

Мадиас
Солнце 17 апреля 2016 г. 18:52
Вот мой порт для нашей библиотеки ADAFRIT_ILI9341_STM, используя только SPI2 (с DMA!) Должен работать из коробки:

Радждардж
Солнце 17 апреля 2016 г., 21:35
WereCatf написал:Быстрый просмотр ILI9341_DUE_STM показывает, что после инициализации библиотеки он ни в коем случае не проверяет, что настройки SPI-BUS верны или что-то в этом роде, подобно E.глин. Я использую SPI-транзакции в моем PCD8544 и ILI9341-все время-на ESP8266 SD-карта, которую я использую, пробегает на 20 МГц, а дисплей работает на 80 МГц, и он просто прекрасно работает. ILI9341_DUE_STM выглядит немного грязно в целом, где -то тоже может быть ошибка. Я бы не знал наверняка, не придавая ему более подробного взгляда, хотя.

Werecatf
Солнце 17 апреля 2016 г., 21:58
Радждардж написал:Есть ли способ получить две библиотеки (либо ILI9341 и SD.H или SDFAT) для работы в мире и гармонии?

Радждардж
Солнце 17 апреля 2016 г., 11:21 вечера
WereCatf написал: ILI9341_DUE_STM не использует SPI-транзакции, тогда как ILI9341_STM делает, поэтому, если вы можете найти SD-библиотеку, которая также поддерживает SPI-транзакции, вы должны быть полезны. Библиотека сенсора Paul Stoffregen (XPT2046 ( https: // github.com/paulstoffregen/xpt20 ... экран.git ) также использует SPI-транзакции...
...
Greiman's SDFAT ( https: // github.com/greiman/sdfat-бета.git ) Отлично работает на ESP8266, поддерживает длинные имена файлов и использует SPI-транзакции, если вы включите этот настройка в файле конфигурации, но я не знаю, совместим ли он с STM32.
...
Также обратите внимание, что вам не нужно вручную тянуть в свой эскиз вручную вручную-все эти библиотеки делают это сами, когда это необходимо, если вы сказали им, какой CS-пин.

Werecatf
Пн 18 апреля 2016 г., 3:18
Радждардж написал:У меня было большинство вещей, которые работали над ESP, но у меня просто кончились булавки, и я не хотел использовать мультиплексор PIN -кода, у меня не было опыта с такими вещами - хотя у меня есть несколько модулей.

Радждардж
Пн 18 апреля 2016 г., 4:27 утра
Вы правы, совершенно не по теме, но имеют большое значение для моего проекта.
У меня 5 или около того из тех модулей, лежащих вокруг, поэтому я вполне могу использовать их.
Их может быть достаточно, чтобы запустить модули TM1638, которые я использую для записи клавиатуры.
Я могу использовать программный SPI для TFT, но до проблемы SD и сенсорного экрана и т. Д. Могу ли я использовать мультиплексированные булавки для CS?
Могу ли я использовать мультиплексированные булавки для PIR и для неопикселей?
Быстрее по -прежнему спросить:
Для чего я не могу их использовать?
Т.е. Onewire Bus, WS2812, PIR, I2C и т. Д.
Я задал этот вопрос в Arduino.CC и никогда не получил ответа. Мне сказали, что они медленные, но помимо отправки вещей в Интернет и взаимодействия с пользователем, нет критических событий времени. Просто данные для данных в течение нескольких часов, дни, месяцев лет с резервным копированием батареи (до 7 дней) обнаружение температуры и историческое отображение данных.

Радждардж
Пн 18 апреля 2016 г., 4:35 утра
WereCatf написал:ILI9341_DUE_STM не использует транзакции SPI, тогда как ILI9341_STM

Werecatf
Пн 18 апреля 2016 г., 7:17 утра
Радждардж написал:Просто взять немного кода из ILI9341_DUE.CPP являются этими транзакциями SPI?

Werecatf
Пн 18 апреля 2016 г., 7:34 утра
Радждардж написал:Могу ли я использовать мультиплексированные булавки для CS?
Могу ли я использовать мультиплексированные булавки для PIR и для неопикселей?
Быстрее по -прежнему спросить:
Для чего я не могу их использовать?
Т.е. Onewire Bus, WS2812, PIR, I2C и т. Д.

Martinayotte
Пн 18 апреля 2016 г., 14:32
Да, есть куча вещей, которые могут быть подключены на автобусах I2C, ADC, DAC, Tempsensors, конечно, расширяющихся GPIO (лично я использую MCP23017), даже некоторые мосты UART-I2C и знаменитый OLED SSD1306.
Используя многие из них, это оправдывает драгоценные булавки, чтобы использовать их в чувствительных к скорости.

Werecatf
Вт 19 апреля 2016 г., 13:25
У меня есть SD-карта, ILI9341 и PCD8544, все работающие на разных скоростях шины, работающие на одном и том же SPI-BUS:
Изображение

Все работает красиво, никаких проблем или чего -то еще. Моя версия PCD8544-LIB поддерживает SPI-транзакции, SDFAT-бета от Greiman также делает, хотя в библиотеке было несколько ошибок, которые мне пришлось сгладить, чтобы это начало, а оригинальный ILI9341-LIB от Adafruit также делает Spi- Транзакции (хотя я нахожусь в процессе очистки своей таковой частной версии и планирую выпустить ее на Github Spearsish)

Однако, чтобы использовать SPI-транзакции, вы должны копаться в файлах STM32F1 и изменить //#define SPI_HAS_TRANSACTION

Радждардж
Ср 20 апреля 2016 г. 3:28 утра
WereCatf написал:У меня есть SD-карта, ILI9341 и PCD8544, все работающие на разных скоростях шины, работающие на одном и том же SPI-BUS:

Все работает красиво, никаких проблем или чего -то еще. Моя версия PCD8544-LIB поддерживает SPI-транзакции, SDFAT-бета от Greiman также делает, хотя в библиотеке было несколько ошибок, которые мне пришлось сгладить, чтобы это начало, а оригинальный ILI9341-LIB от Adafruit также делает Spi- Транзакции (хотя я нахожусь в процессе очистки своей таковой частной версии и планирую выпустить ее на Github Spearsish)

Однако, чтобы использовать SPI-транзакции, вы должны копаться в файлах STM32F1 и изменить //#define SPI_HAS_TRANSACTION

Werecatf
Ср 20 апреля 2016 г., 5:37 утра
Радждардж написал:Я вообще не могу компилировать с библиотекой SDFAT вообще...Может, это те ошибки, которые вы упоминаете.

Werecatf
Ср 20 апреля 2016 г., 5:40
Радждардж написал:Я понимаю, что вы имеете в виду в расширении PIN -кода I2C (не мультиплексора), поэтому я не думаю, что буду использовать это в данный момент. Если бы только был небольшой модуль форм -фактора, который имел множество булавок и встроенный Wi -Fi и Bluetooth.. Teensy 3.4 Любой? Забудьте о форм -факторе UNO.... ESP-15F может использовать F4 ?

Rogerclark
Ср 20 апреля 2016 г. 9:26 утра
В Aliexpress была еще одна ветка, продавая ESP32 в предварительном заказа (60-дневное время выполнения)

Некоторые из нас заказали их. (Хотя добро знает, что мы получим)

Werecatf
Ср 20 апреля 2016 г., 9:34
Rogerclark написал:В Aliexpress была еще одна ветка, продавая ESP32 в предварительном заказа (60-дневное время выполнения)

Некоторые из нас заказали их. (Хотя добро знает, что мы получим)

Радждардж
Ср 20 апреля 2016 г. 11:20 утра
Звучит очень захватывающе. но. Все еще не решит мою проблему, так как мне придется полагаться на другие библиотеки, в которых еще может быть больше проблем :(

ТОННДС
Ср 20 апреля 2016 12:57
Радждардж написал: Adafruit+gfx_as: быстро, не смог получить собственный шрифт, действительно блочные шрифты в целом. В конце концов этот, казалось, сработал лучше всего

Mrburnette
Ср 20 апреля 2016 г. 13:41
@ toannds:

Добро пожаловать!

Хороший макет дисплея. Он размещен в STM32? Эти дисплеи ILI9341 настолько просты в подключении через SPI, что они запускаются почти на всех UC ... Я подозреваю, что действительно более тонкие шрифты немного поднимают использование SRAM, хотя?

Луча

ТОННДС
Ср 20 апреля 2016 г., 16:05
@mrburnette

Он соединяется с Arduino Mini Pro 5V 16MHZ. Тем не менее, я поставляю только 3.3v в Ардуино, чтобы избежать 3.Проблема преобразования уровня 3 В - 5 В. Удивительно, но Arduino все еще может хорошо работать на скорости 16 МГц, с датчиком TFT + DS3231 RTC + HMC5883, день за днем, никогда не сбои : D. У меня есть еще 1.8 "ST7735 Подключитесь к плате STM32 Nucleo-F401RE, хотя.

Относительно размера для шрифта: шрифт занимает окно. 7469 байтов. Однако, поскольку мне нужны только цифры и толстая кишка, чтобы показать время и скорость автомобиля, я удалил остальное после толстой кишки. Это сократило размер данных шрифта до 1552 байтов. Сокращение довольно значительное, потому что ATMEGA328 имеет только 32 КБ флэш -память.

Mrburnette
Ср 20 апреля 2016 г., 16:15
Тобандс написал:<...>
Удивительно, но Arduino все еще может хорошо работать на скорости 16 МГц, с датчиком TFT + DS3231 RTC + HMC5883, день за днем, никогда не сбои : D.
<...>

Радждардж
Ср 20 апреля 2016 г., 8:16 вечера
Тобандс написал:Радждардж написал: Adafruit+gfx_as: быстро, не смог получить собственный шрифт, действительно блочные шрифты в целом. В конце концов этот, казалось, сработал лучше всего

Радждардж
Чт 21 апреля 2016 г. 3:28 утра
Просто чтобы сообщить в:
Библиотека ADAFRIT_ILI9341_STM и библиотека SD (стандартное распределение Arduino) хорошо работают вместе. Ушел, хотя это хороший шрифт, который я использовал, так что читаемость через комнату как бы исчезла. Что касается приоритетов, я буду продолжать работать в ESP8266, а также нарушенные температурные действия.
Спасибо за всю помощь, люди.
: D

Generic STM32F103 + Eclipse