Arduino Pico не работает с экраном ST7735

Я пытаюсь получить пример graphicstest в комплекте с библиотекой Adafruit ST7735 для 0,96-дюймового ЖК-экрана.

Пример работает нормально, и последовательная связь работает. Однако на экране ничего не выводится. Я проверил, что код работает с другими платами Arduino и что у меня он правильно подключен -> SCK к SCL, MOSI к SDA и т. Д.>

Я не уверен, делаю ли я что-то неправильно, или это ограничение совета.

Edit: Я добавил модифицированный код graphicstest в Интернет, его можно найти здесь: https://drive.google.com/file/d/1cFOgQXhhH1vou0KUrFzBDMp0iiIp1Yuy/view?usp=sharing

Я также добавил грубую схему того, как экран подключен к Пико. Обратите внимание, что ЖК-дисплей питается извне, так как Pico не может справиться с текущей потребляемостью питания ЖК-дисплея. https://drive.google.com/file/d/1RmZSHBcelwC9caLoQC9iE5Lb4eHG9S2O/view?usp=sharing

, 👍1

Обсуждение

У вашего Arduino Pico есть чип atmega32u4? Если да, у вас может быть проблема с библиотекой. Большинство стандартных библиотек arduino предназначены для atmega328 или atmega2560 (UNO и Mega). Вы обнаружите, что большинство библиотек, которые работают для UNO или Mega, обычно не работают для Arduino Leonardo (atmega32u4)., @SimonVu14

Покажите свою проводку и любые изменения, внесенные вами в код graphicstest., @timemage

@SimonVu14 У меня было такое чувство, что так оно и есть. Я попробую посмотреть, нет ли там другой библиотеки, кроме Adafruit., @Pyro

@timemage Я только изменил пин-ауты на пин-ауты, которые были доступны на Пико. ПЕРВЫЙ-4, CS-3, DC-2., @Pyro

Пока я не увижу все, что видишь ты, я вряд ли смогу тебе помочь., @timemage

@timemage Приносит свои извинения за то, что ему потребовалось много времени, чтобы ответить. Я добавил к этому вопросу модифицированный graphicstest вместе с грубой диаграммой., @Pyro

Диаграмма кажется расходится с тем что показано [here](https://create.arduino.cc/projecthub/mellbell-electronics/arduino-pico-the-world-s-smallest-arduino-board-24ee0e), где SCK показан ближе всего к диоду. На вашей схеме SCK показан дальше всего от диода., @timemage

@timemage Я иду прямо от того, что на их сайте. https://mellbell.cc/products/pico То, что они показывают по ссылке, которую вы предоставили, является прототипом. Дополнительные исследования также показывают, что контакты SCK и MISO, к которым я подключен, предназначены только для программирования., @Pyro


2 ответа


Лучший ответ:

1

Я выяснил, в чем проблема. Я пытался подключиться к контактам SCK и MOSI на задней панели Pico. Более поздние исследования показывают, что они предназначены для программирования и записи загрузчика в микропроцессор.

Библиотека Adafruit позволила мне определить свои собственные контакты для SCK и MOSI. Как только я переключился на использование конструктора Adafruit_ST7735(int8_t cs, int8_t dc, int8_t mosi, int8_t sclk, int8_t rst), после этого он заработал.

,

Что ж, очень хорошо, что у тебя это получилось, но на самом деле нет никаких причин, почему бы тебе не использовать эти контакты. Как вы говорите, они *используются* для программирования провайдера, загрузчика или чего-то еще. Но это также просто SPI-контакты, а кроме того, просто "цифровые" контакты., @timemage


0

Из комментария к этому вопросу:

Я иду прямо с того, что есть на их сайте. mellbell.cc/products/pico То, что они показывают по ссылке, которую вы предоставили, - это прототип.

"Предоставленная вами ссылка" относится к этомувопросу , который, несмотря на то, что описан как "прототип", показывает правильную информацию относительно связанных с SPI контактов.

Как оказалось документация на изображениях на которые вы ссылались mellbell.cc/products/pico неверно, как под снимками продукта, так и в разделе pin-outs в разделе "Документация". Вы можете сказать это, посмотрев прямо на их изображение платы и схему и сравнив ее с распиновкой самого ATmega32U4:

Pico documentation compared with reality.

Интересно, что в распиновке на 8 их PDF-файле в разделе документации они снова исправили его и приблизили к прототипу:

From page 8 of PDF

Или, по крайней мере, это относится к сигналам SPI. Диод находится в неправильной и неправильной ориентации. На самом деле вся плата выглядит перевернутой влево-вправо.

Опять же, из того же комментария:

Дополнительные исследования также показывают, что контакты SCK и MISO Похоже я связан только с программированием

Это правда, что эти контакты используются для программирования ISP. Однако они также несут данные для периферийного устройства шины SPI, когда вы не занимаетесь программированием ISP. Поэтому они предназначены "для программирования", а не "только" для программирования. Это зависит от того, как ATmega32U4, а не от того, что производители Pico имеют большой контроль.

Это также относится к UNO и в основном ко всем другим популярным AVR на основе ардуино, которые могут быть запрограммированы с помощью метода ISP, в отличие от uPDI и других. Что немного менее распространено, так это то, что эти контакты доступны только в качестве непопулярных прокладок или только в заголовке ISP.

Я понимаю, почему вы не хотите иметь дело с этими контактами из-за форм-фактора платы Pico. Тем не менее, потому что эти контакты на самом деле являются интерфейсом SPI 32u4, и они должны работать лучше, чем битовый стук, к которому должна была бы прибегнуть библиотека Adafruit, чтобы использовать другие (не SPI) контакты. Так что есть стимул их использовать.

Итак, ваше решение-это решение, но не по тем причинам, о которых вы думаете. Контакты, которые вы ранее пытались использовать, будут работать, когда ваши усилия не будут подорваны плохой документацией, и вы получите их в правильном порядке.

,