Загрузка ESP12E против SPI

Мне было интересно, как я могу решить следующую проблему;

Мой ESP8266 12E подключен следующим образом:

  • Заземление GPIO0, если необходимо для программирования, иначе vcc
  • GPIO2 vcc
  • Заземление GPIO15

Режимы загрузки объясняются на этой схеме

Я также хочу подключить MCP3002 к своему ESP. Однако для использования SPI мне также нужно, чтобы контакт GPIO15 был подключен к контакту выбора микросхемы.

подключения MCP описаны в этой статье


Я попытался подключить контакт GPIO15 от ESP к контакту CS на MCP3002 и подключить землю между ними. Это не сработало, должен ли я как-то переключать/удалять землю после загрузки? (Или я должен подключить его по-другому?)

, 👍0


1 ответ


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

3

IO 15 — это SS, если esp8266 — подчиненный. Если esp8266 является мастером SPI, вы можете выбрать любой свободный контакт в качестве CS ведомого устройства.


В примерах библиотеки SPISlave для плат arduino esp8266 есть решение для ведущего, если esp8266 является подчиненным.

Состояние загрузочных контактов требуется только при загрузке. Вы должны подключить контакты загрузки через резистор 10 кОм, чтобы создать подтягивание/подтягивание, которое может быть переопределено состоянием выхода вывода, чтобы использовать выводы для устройств, которые в порядке или нуждаются в подтягивании или подтягивании, например мгновенные переключатели (кнопки).

,

Я полагаю, что мой ESP8266 является ведущим, а мой MCP3002 — ведомым? Это означает, что я могу подключить MCP3002 CS к любому другому доступному выводу ESP8266?, @Revils

Спасибо, сегодня вечером попробую и отпишусь, что получилось!, @Revils

библиотеки, которые вы используете, устарели, и я не вижу, как изменить пин-код CS. Я бы попробовал использовать другую библиотеку Arduino MCP3002 со стандартной библиотекой SPI пакета плат esp8266., @Juraj

Я понятия не имею, о чем вы говорите. Этот вопрос касается проводных подключений и не имеет ничего общего с библиотеками. Ссылки являются только ссылкой для проводов, а не для библиотек вообще, .., @Revils

статья во второй ссылке имеет ссылку на библиотеки, @Juraj

Спасибо! Работает как шарм =). Можете ли вы также дать дополнительную информацию / справочную информацию о том, почему я могу использовать любой пин, а не только пин CS?, @Revils

SPI - это шина. на мастере вам нужно столько пинов CS пинов, сколько устройств вы к нему подключаете. эти контакты CS обрабатываются не периферийным устройством SPI микроконтроллера, а библиотекой. если периферийное устройство SPI микроконтроллера находится в подчиненном режиме, оно должно использовать выделенный контакт. это верно для микроконтроллеров ATmega и для esp8266. но некоторые другие MCU могут сопоставлять разные контакты с периферийными устройствами. и, как другое исключение, периферийное устройство SPI на esp8266 имеет странный режим перекрытия SPI, который может использовать только выделенные контакты CS в ведущем режиме для совместного использования с другими устройствами интерфейса SPI, выделенного для флэш-памяти., @Juraj