• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 Просмотры: 13

Юрий Ботов

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

Br.Misha

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