Т.е. вы в ведомом записали данные в буфер. Посылаете мастером пустую посылку, и видите что от ведомого записанные данные не передаются, а линия просто висит в одном состоянии?
Именно так! Только посылаю от мастера содержательную посылку из четырёх слов.
Несколько смущает 1,8В на линии TX ведомого - может быть какая-то электрическая проблема?
Есть ли возможность разорвать эту линию или вывести TX на другую свободную ножку?
Доброго времени суток!
Есть ли возможность передать по SPI в режиме Master три байта данных в одной посылке (на время передачи всех трех байтов FSS остается 0)? Разумеется, интересует хардварное управление FSS, ибо не хочется тратить прерывание на программное переключение FSS.
Нужно для работы с 1273НА015.
Заранее благодарен,
Дмитрий Тарасов.
Заодно родился следующий вопрос. Хотел реализовать запихивание в буфер передатчика трех байт данных, включение передачи, а при опустошении буфера вызывать прерывание и в нем переводить FSS в 1. В итоге FSS переводится в 1 быстрее, чем выдается даже 1 байт. Кто бы подсказал, что за чудо чудное? ) Отладка показывает, что при записи данных в буфер, флаг пустого буфера не снимается.
blessedt писал(а): ↑04 дек 2019, 20:09
Доброго времени суток!
Есть ли возможность передать по SPI в режиме Master три байта данных в одной посылке (на время передачи всех трех байтов FSS остается 0)? Разумеется, интересует хардварное управление FSS, ибо не хочется тратить прерывание на программное переключение FSS.
Нужно для работы с 1273НА015.
Заранее благодарен,
Дмитрий Тарасов.
Добрый день! Если при CR0.FRF=0, установить CR0.SPH=1, то FSS будет в состоянии логического нуля до опустошения буфера.
Заодно родился следующий вопрос. Хотел реализовать запихивание в буфер передатчика трех байт данных, включение передачи, а при опустошении буфера вызывать прерывание и в нем переводить FSS в 1. В итоге FSS переводится в 1 быстрее, чем выдается даже 1 байт. Кто бы подсказал, что за чудо чудное? ) Отладка показывает, что при записи данных в буфер, флаг пустого буфера не снимается.
Но ведь у SPI нет прерывания по опустошению передающего буфера. А существующее прерывание по опустошению буфера наполовину будет вызываться всякий раз когда заполненность буфера меньше либо равно половине емкости (4 кадра).
На самом деле, ответ на этот вопрос как раз в РП - 16.2 подраздел, пункт "Интерфейс SPI":
В режиме непрерывной передачи данных при условии SPH = 1 низкий уровень
сигнала на линии SPI_FSS не блокирует запись в сдвиговый регистр. Поэтому линия
SPI_FSS может оставаться в состоянии нуля в течение передачи всех кадров и переведена
в состояние логической единицы только по окончании передачи.
alen_kray писал(а): ↑23 сен 2021, 13:34
Добрый день. Вопрос следующий. Отзовитесь, на какой максимальной скорости удалось работать с SPI на железе, и с какими приемопередатчиками?
В данный момент стабильно работают с esp32 по spi на частоте 10Мгц, частоту выше 10Мгц esp32 в slave режиме уже не в состоянии принять. к1921вк по документации может 50 Мгц в мастер режиме и 8 Мгц в Slave