• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

SPI. Передача данных происходит только когдда отпускаю CS

Br.Misha

New member
Здравствуйте!
Необходимо подключить к ESP микру MCP3201 по SPI, протокол там простейший: просто прижимает CS, и читаем по SPI 2 байта. Нарыл в инете библиотеку (прикрепил), в ините почему-то отключено аппаратное управление CS, ну не беда, буду сам дергать ножкой.
Вызываю spi_init(HSPI) и по таймеру прижимаю CS, потом spi_rx16(HSPI), отпускаю. Смотрю осциллом, а клоки почему-то идут уже после того, как отпущу CS, и не просто после, а сразу же после этого. Вставил задержку, после spi_rx16, вижу, что линия CS дольше держится, но клоки опять идут сразу после неё. Я подумал, что там какой-то буффер и данные отправляются после выхода с коллбэка таймера, сделал запуск другого таймера через 3 мс после передачи данных и уже в нем отпускаю CS, результат тот же - только отпускаю CS и тут сразу идут клоки.
Напоследок, решил в ините включить аппаратный CS, но изменилось только то, что CS прижимается дважды (ибо я 2 байта читаю), но, опять же, клоки только после CS.

Товарищи, подскажите, пожалуйста, в чем проблема?
Спасибо!
 

Вложения

  • 7.2 KB Просмотры: 12

Юрий Ботов

Moderator
Команда форума
1. какие ноги esp
2. "прижимаю" это на 0? "отпускаю" это на "1" или просто в абстрактно ненулевое состояние?
 

Br.Misha

New member
нога 15 в качестве CS.
Я только что проверил другим осциллографом - тут всё нормально. Я там не знаю в чем дело, доберусь до прошлого осцила и потестю, потом отпишусь. Просто тот осцил меня не подводил раньше.
 
Сверху Снизу