В общем, я прочитал о том как происходит передача данных когда master общается с несколькими slave'ами. Там информация передаётся по одним и тем же каналам, которые подключены параллельно, но у каждого slave'а есть свой отдельный ss с помощью которого master и выбирает кому передавать данные и ss можно подключать к любому пину платы.Хорошо. Вы задаёте правильные вопросы. Теперь надо ещё раз про честь. В это раз обратите внимание на картинку где подключено несколько slave устройств. Особенно на количество пинов ss/slave select (иногда его называют cs).
Так на всякий случай, у вас дисплей точно spi? Потому что на картинке i2c.
все правильно. подключаем два устройства к MISO, MOSI, SCLK и SS (свой отдельный для каждого slave). Переача/прием данных на slave будет выглядеть так. обратите внимание, пред каждым SS LOW мы меняем параметры SPI, на оптимальные для каждого slaveВ общем, я прочитал о том как происходит передача данных когда master общается с несколькими slave'ами. Там информация передаётся по одним и тем же каналам, которые подключены параллельно, но у каждого slave'а есть свой отдельный ss с помощью которого master и выбирает кому передавать данные и ss можно подключать к любому пину платы.
SPI.beginTransaction(SPISettings(5000000, MSBFIRST, SPI_MODE0)); //up to 5MHz, read MSB first, SPI mode 0
digitalWrite(_ss1, LOW); //set software CS low to enable SPI interface for slave 1
//read/write slave 1 here!!!
digitalWrite(_ss1, HIGH); //disables SPI interface for slave 1
SPI.endTransaction(); //de-asserting hardware CS & free hw SPI for other slaves
SPI.beginTransaction(SPISettings(10000000, MSBFIRST, SPI_MODE0)); //up to 10MHz, read MSB first, SPI mode 0
digitalWrite(_ss2, LOW); //set software CS low to enable SPI interface for slave 2
//read/write slave 2 here!!!
digitalWrite(_cs, HIGH); //disables SPI interface for slave 2
SPI.endTransaction(); //de-asserting hardware CS & free hw SPI for other slaves
Спасибо за пример кода!все правильно. подключаем два устройства к MISO, MOSI, SCLK и SS (свой отдельный для каждого slave). Переача/прием данных на slave будет выглядеть так. обратите внимание, пред каждым SS LOW мы меняем параметры SPI, на оптимальные для каждого slave
Код:SPI.beginTransaction(SPISettings(5000000, MSBFIRST, SPI_MODE0)); //up to 5MHz, read MSB first, SPI mode 0 digitalWrite(_ss1, LOW); //set software CS low to enable SPI interface for slave 1 //read/write slave 1 here!!! digitalWrite(_ss1, HIGH); //disables SPI interface for slave 1 SPI.endTransaction(); //de-asserting hardware CS & free hw SPI for other slaves SPI.beginTransaction(SPISettings(10000000, MSBFIRST, SPI_MODE0)); //up to 10MHz, read MSB first, SPI mode 0 digitalWrite(_ss2, LOW); //set software CS low to enable SPI interface for slave 2 //read/write slave 2 here!!! digitalWrite(_cs, HIGH); //disables SPI interface for slave 2 SPI.endTransaction(); //de-asserting hardware CS & free hw SPI for other slaves
я так и не понял у вас дисплей i2c или spi?
Понятно, спасибо за помощь! Когда я его куплю, это будет скорее всего через месяц, я всё подключу и здесь отпишусь. Ссылка на дисплей: https://poltavskaya-obl.prom.ua/p371138142-lcd-ips-displej.html?Ссылку на экран в студию.
Некоторый микросхемы/драйвера экранов умеют работать с несколькими шинами. Все зависит от того какие перемычки замкнуты на микросхеме и какая шина выведена на гребёнку. Все эти операции делаются на заводе и менять после покупки экономический не выгодно.
Обычно для дешевых экранов кроме spi или i2c нужен ещё как минимум один пин - DC (называют его по разному, но суть одна). Он нужен для управления регистром и памятью внутри микросхемы экрана. Меняя биты в регистре мы можем менять подсветку, переворачивать экран и тд. Меняя биты в памяти, изменять текст на экране дисплея.
Так вот выставля например DC LOW (может быть и HIGH, зависит от дисплея) мы говорим, что сейчас по шине придет информация для записи в память дисплея (для показа на экране). Если выставить HIGH, то мы говорим, что сейчас по шине будет передаваться информация для записи в cotrol register (те это не текст, а команда, например для поворота экрана, или яркости экрана).
Ясно, намудрили значит они... Спасибо, Вам, за консультацию!да похоже на isp, работающий только на запись - mosi не используется. Очень странная шелкография на плате - sda, scl. Запутает любого. Так обычно i2c подписывают. Нормальные люди если miso не влезает подписывают так - SDO, DO, SO.