Работа с 2-ым SPI модулем

Тема в разделе "ESP8266, ESP32", создана пользователем shepard127, 8 июн 2018.

Метки:
  1. shepard127

    shepard127 Нуб

    Доброго времени суток! Работая с Nodemcu столкнулся с проблемой использования второго SPI модуля. Прикладываю изображение... У меня в наличии вариант который справа.
    В общем в чём заключается проблема?! Есть два(усилитель термопары и SD модуль) устройства, которые нужно подключить к NodeMcu по SPI интерфейсу. Стандартный(с которым работают все библиотеки) подключается через пины GPIO12-GPIO15. Дополнительный SPI задействует пины "CLK", "SD0", "CMD", "SD1" (те же что и используются для подключения SDIO интерфейса).

    Не могу понять как можно завести на них SD-модуль??? Большинство примеров с использование всего одного SPI, так как в Arduino(если я не ошибаюсь) всего 1 SPI, я подумал что с этим никто не заморачивался... А примеров, критичиски мало толковых клиентов
     

    Вложения:

  2. a1000

    a1000 Гуру

    А зачем несколько SPI интерфейсов? На всё хватит и одного. Линии SCLK, MOSI, MISO общие для всех устройств. А вот SS тяните к каждому модулю свою. Почитайте теорию
    http://robocraft.ru/blog/arduino/518.html
     
  3. parovoZZ

    parovoZZ Гуру

    Нет никакой проблемы. Проблема в незнании интерфейсов. ESP здесь не при чем.
     
  4. Belkin

    Belkin Гик

    Вот тут для начала изучите изложенное http://www.gaw.ru/html.cgi/txt/interface/spi/index.htm
     
  5. shepard127

    shepard127 Нуб

    Уважаемые)
    Спасибо за предоставленую мат часть, которую я изучил уже более года назад. Имея опыт подключения различных контроллеров серии STM32(F103, F446, F767...) к различными устройствам(датчики, Eeprom, FPGA) по различным интерфейсам I2C, SPI, UART, CAN.

    И также я в курсе что в таких интерфейсах как: SPI(на каждое устройство свой CHIP_SELECT), I2C (у каждого устройства свой адрес), UART(ну тут использую линию связи RS-485, и уже сам разруливаю колличество устройв на шине пиляя свой протокол или использую Modbus) можно использовать несколько устройств на шине. Да я понимаю что возможно недостаточно точно выразил свой вопрос, но хотел спросить может кто-то реализовывал с помощью Arduino библиотек подтяжку второго SPI модуля? Который судя по схемам(также на фото выше) пристуствует в NodeMcu.

    P.S.
    Использую второй интерфейс потому что у человека в другом городе уже собран готовый макет в который не так просто подключится на шину первого модуля. Но уже заранне подключены выводы под второй модуль. Просто я не думал что будет какой-то проблемой в плане программного кода, так как аппаратная часть работает(SD модуль)
     
  6. shepard127

    shepard127 Нуб

    Находил примеры с подтяжкой второго SPI на Lua. Но это не подходит так как 90% проекта уже реализовано на Arduino либах
     
  7. shepard127

    shepard127 Нуб

    Есть ещё идея сделать такую же либу как SPI.h, только сделать remap пинов с GPIO12-GPIO15, на соответсвующии им "CLK", "SD0", "CMD", "SD1". Ещё не проверял, но думаю не прокатит. К примеру на STM'ке пришлось настроить пины на альтернативную функцию, а уже затем ремапить

    Такие трудности возникли из-за моего первого опыта с ESP, поэтому прошу Embedded девелоперов подкинуть любой help который мог бы мне помочь с настройкой второго SPI модуля на этой чудо плате))
     
  8. Belkin

    Belkin Гик

    Раз так, то копайте в сторону софтового SPI (силами UART)
     
  9. ИгорьК

    ИгорьК Гуру

    Если Вы знаете матчасть, то тогда собака может быть зарыта в разной реализации шины у тех двух устройств, которые вы пытаетесь на нее повесить.
    Я бы копал в эту сторону.
     
  10. shepard127

    shepard127 Нуб

    ok, если удасться решить эту проблему без быстрой подстановки костылей (есть вариант подкинуть Nano к ней Sd модуль и на нее валить данные по UART, но это не то... это костыли мать вашу) обязательно отпишу - чтоб другие знали как её решить в дальнейшем
     
  11. parovoZZ

    parovoZZ Гуру

    Можешь свой посыл развернуть? Пока не понимаю, как на асинхронном интерфейсе реализовать синхронный.
     
  12. Belkin

    Belkin Гик

    В инете много про это.
    Развернуть могу, но Bascom тут не приветствуется... ;)
     
  13. parovoZZ

    parovoZZ Гуру

    Так, наверное, всё-таки на USART-е? Но там SPI аппаратный.