Два дисплея ILI9341 IPS на одной шине.
- Войдите на сайт для отправки комментариев
Dctv здравствовать! Приобрел пару вот таких дисплейчиков
Как видно, отсутствует вывод CS. По распиновке он пятый на шлейфе, запаян на GND; и т.к. вывод MISO использовать не планирую, решил его переделать в CS, отрезав его от GND и MISO от шлейфа:
Так вот нет реакции на CS: даже с отключенным CS дисплей стартует. А при подключении двух дисплеев, оба выводят одну картинку. (MOSI, RST, DC, SCK параллельно, CS у каждого свой)
#include <SPI.h> #include <ILI9341_due_config.h> #include <ILI9341_due.h> #include "fonts/Arial_bold_14.h" #define TFT_RST 4 #define TFT_DC 5 #define TFT_CS 6 #define TFT_CS2 7 ILI9341_due tft = ILI9341_due(TFT_CS, TFT_DC, TFT_RST); ILI9341_due tft2 = ILI9341_due(TFT_CS2, TFT_DC, TFT_RST); void setup() { //Serial.begin(9600); tft.begin(); //Serial.print("TFT begin successful: "); //Serial.println(result ? "YES" : "NO"); tft.setRotation(iliRotation90); tft.fillScreen(0xFFE0); tft.setFont(Arial_bold_14); tft.setTextLetterSpacing(5); tft.setTextColor(0x0000, 0xFFE0); tft.printAligned(F("Hello World"), gTextAlignMiddleCenter); tft2.begin(); tft2.setRotation(iliRotation90); tft2.fillScreen(0x0000); tft2.setFont(Arial_bold_14); tft2.setTextLetterSpacing(5); tft2.setTextColor(0xFFE0, 0x0000); tft2.printAligned(F("Hello World"), gTextAlignMiddleCenter); } void loop() { /* add main program code here */ }
Из чего делаю вывод, что вывод CS конкретно на этих дисплеях не работает.
На шине будут висеть еще пара устройств DAC и ADC. Изначально планировалось использовать 3.2 TFT ili9341 (с ним все отлично работает), но уж больно хороша картинка у этих. И так как один большой IPS с несложным запуском найти не получилось, решил использовать два поменьше. И тут такой облом, запуск одновременно двух невозможен.
Есть ли какой вариант победить? Может мультиплексор SPI? Если кто сталкивался, подскажите.
Я что-то не увидел в коде, где Вы переключаете CS.
По логике, если на дисплее использование этого пина не предусмотрено, то и библиотека вряд ли будет заниматься его переключением. Следовательно, об этом должен заботиться Ваш код.
Ну и, опять же, что показывает логический анализатор?
Я что-то не увидел в коде, где Вы переключаете CS.
По логике, если на дисплее использование этого пина не предусмотрено, то и библиотека вряд ли будет заниматься его переключением. Следовательно, об этом должен заботиться Ваш код
Заработало, нужно было сделать не только отдельный CS, но и REST.
Загнал код в loop - поочередно экранчики прорисовываются.