SPI

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

dav
Сообщения: 208
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: SPI

Сообщение dav »

alen_kray писал(а): 07 окт 2021, 15:19 Интересует именно spi к1921. Какую максимальную скорость удалось получить на практике.
Максимальная скорость обмена по SPI при системной частоте 100 МГц:
- в режиме мастера: 100МГц / 2 = 50 Мбит/сек
- в режиме ведомого: 100МГц / 12 = 8,333 Мбит/сек
редактор
Сообщения: 27
Зарегистрирован: 08 ноя 2016, 09:10

Re: SPI

Сообщение редактор »

На ВК028, ВК035 Реальная скорость получалась на мастере 25 МГц. Выше - выводы не успевали отрабатывать (как будто переключение за 2 такта совершается). Результат был получен на опытных образцах. На серийных возможно исправили.
blessedt
Сообщения: 34
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: SPI

Сообщение blessedt »

Доброго времени суток, товарищи!
А есть какая-то возможность заставить SPI выдавать прерывания при приеме/передаче каждого 16-битного слова?
Заполнять буфер четырьмя словами по 4 бита не предлагать ))
dav
Сообщения: 208
Зарегистрирован: 14 дек 2015, 09:21
Предприятие: АО НИИЭТ
Откуда: АО НИИЭТ, Воронеж

Re: SPI

Сообщение dav »

blessedt писал(а): 19 окт 2021, 23:44 А есть какая-то возможность заставить SPI выдавать прерывания при приеме/передаче каждого 16-битного слова?
Заполнять буфер четырьмя словами по 4 бита не предлагать ))
Доброго времени суток!
Для микроконтроллеров 1921ВК035 и 1921ВК028 достаточно записать в битовое поле RXIFLSEL (для приема) или TXIFLSEL (для передачи) регистра CR1 значения порога наполнения буфера FIFO.
blessedt
Сообщения: 34
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: SPI

Сообщение blessedt »

Для микроконтроллеров 1921ВК035 и 1921ВК028 достаточно записать
Спасибо за оперативный ответ!
К сожалению, у меня 1921ВК01 =( Видимо, придется работать в блокирующем режиме...
serg_vega
Сообщения: 96
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: SPI

Сообщение serg_vega »

dav писал(а): 20 окт 2021, 15:49
blessedt писал(а): 19 окт 2021, 23:44 А есть какая-то возможность заставить SPI выдавать прерывания при приеме/передаче каждого 16-битного слова?
Заполнять буфер четырьмя словами по 4 бита не предлагать ))
Доброго времени суток!
Для микроконтроллеров 1921ВК035 и 1921ВК028 достаточно записать в битовое поле RXIFLSEL (для приема) или TXIFLSEL (для передачи) регистра CR1 значения порога наполнения буфера FIFO.
То есть спустя всего ПЯТЬ месяцев с момента моего вопроса forum.niiet.ru/viewtopic.php?f=37&t=158&start=470 поддержка НИИЭТ признала тот факт, что 1921ВК01Т не имеет прерываний в режиме SPI :lol:
blessedt
Сообщения: 34
Зарегистрирован: 25 фев 2019, 00:09
Предприятие: АОКБ Импульс

Re: SPI

Сообщение blessedt »

1921ВК01Т не имеет прерываний в режиме SPI :lol:
Да, это довольно печально... Заставляет потанцевать с бубном ради производительности
Al-x
Сообщения: 29
Зарегистрирован: 02 фев 2021, 19:22
Предприятие: АО "НТЦ "РИФ"

Re: SPI

Сообщение Al-x »

У
blessedt писал(а): 23 окт 2021, 19:22
1921ВК01Т не имеет прерываний в режиме SPI :lol:
Да, это довольно печально... Заставляет потанцевать с бубном ради производительности
У меня норм с DMA заработало, в режиме ведущего. Ладно производительность, у меня ведомое покрывало сеанс, если данные запаздывали.
serg_vega
Сообщения: 96
Зарегистрирован: 20 июл 2020, 15:50
Предприятие: АО "ВНИИ "Вега"

Re: SPI

Сообщение serg_vega »

По мне заморачиваться с DMA, чтобы принять пару/четыре слова - это так себе решение. Все что меньше длины буфера FIFO должно приниматься просто по прерыванию ну или уж на худой конец, опросом. Можно еще посчитать требуемое время передачи и зарядить таймер с прерыванием. Сработал таймер, забрали данные из буфера. Но это все костыли.
Al-x
Сообщения: 29
Зарегистрирован: 02 фев 2021, 19:22
Предприятие: АО "НТЦ "РИФ"

Re: SPI

Сообщение Al-x »

Это да, речь о длинных передачах, иначе какой смысл использовать дма, если всё прекрасно располагается в фифо. В длинных ПДП самое то, смысл нагружать программу периодическими прерываниями по таймеру, если один раз зарядил автомат и ждёшь, не прерываясь, пока закончит передачу.
Ответить

Вернуться в «32-разрядные микроконтроллеры»