Size: a a a

2020 October 05

AZ

Aleksander Zholtkovs... in Embedded Group
Сиие Сууие
Я когда-то думал про подобное и были разные идеи разной степени пригодности и здравомыслия.
В конечном итоге пришел к мысли о том что все эти костыли ненужны и просто по концу отработки дма ставил флаг конца а в основном теле при поднятом флаге проверял регист окончания спиай
а установка fifo в 1/4 не помогла ?
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
а установка fifo в 1/4 не помогла ?
А как это должно вообще работать?
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
а установка fifo в 1/4 не помогла ?
Типо дма на выгреб не выгребло?
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Сиие Сууие
А как это должно вообще работать?
по доке флаг RXNE ставится при заполнении fifo на 1/2 либо на 1/4. 1/4 это как раз один байт и в  теории можно по прерыванию от RXNE считать что SPI всё сделал.
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
по доке флаг RXNE ставится при заполнении fifo на 1/2 либо на 1/4. 1/4 это как раз один байт и в  теории можно по прерыванию от RXNE считать что SPI всё сделал.
А разве 1 байт у вас не будет после каждой передачи?
источник

G

Gennady in Embedded Group
какая вообще длина посылки в SPI у вас?
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Gennady
какая вообще длина посылки в SPI у вас?
всякая
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Сиие Сууие
А разве 1 байт у вас не будет после каждой передачи?
Ну если зарядить fifo на 1/2, то сработать должно только после второго байта
источник

AZ

Aleksander Zholtkovs... in Embedded Group
у меня железки ещё нет. Пока проверять не на чем
источник

AK

Anton Kirilenko in Embedded Group
а между пакетами сколько времени проходит?
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
по доке флаг RXNE ставится при заполнении fifo на 1/2 либо на 1/4. 1/4 это как раз один байт и в  теории можно по прерыванию от RXNE считать что SPI всё сделал.
Я с фифо в спиай вообще не работал но так, читал, и если вы уж хотите прерывание по заполнености фифо, то надо брать на 2 байта и дма на вычитку ставить на слово короче, а потом по прерыванию дочитывать из того что там лежит. Как по мне это немного уродство получается
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Anton Kirilenko
а между пакетами сколько времени проходит?
по разному. Ну пара сотен тактов между разными посылками поди наберётся. Хотя я конечно не измерял.
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Сиие Сууие
Я с фифо в спиай вообще не работал но так, читал, и если вы уж хотите прерывание по заполнености фифо, то надо брать на 2 байта и дма на вычитку ставить на слово короче, а потом по прерыванию дочитывать из того что там лежит. Как по мне это немного уродство получается
в stm32f765 выбора нет, fifo встроен в spi и можно только немного на него влиять
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
по разному. Ну пара сотен тактов между разными посылками поди наберётся. Хотя я конечно не измерял.
А стоп, блять, я тупой, ответ тривиально прост, конец передачи спиай - конечное прерывание от дма вычитки
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Сиие Сууие
А стоп, блять, я тупой, ответ тривиально прост, конец передачи спиай - конечное прерывание от дма вычитки
при записи я не хочу заводить второй канал dma
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
при записи я не хочу заводить второй канал dma
Тогда с фифо не выйдет, оно ж постоянно полное будет если посылка не маленькая
источник

СС

Сиие Сууие in Embedded Group
И единственный вариант если размер посылке кратен размеру прерываний от фифо буферов
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Сиие Сууие
Тогда с фифо не выйдет, оно ж постоянно полное будет если посылка не маленькая
после посылки я думаю зарядить прерывание RXNE и ждать уже его. В stm32f103, который без fifo, этот "фокус" работает. Надеюсь тут с битиком в 1/4 fifo, тоже сработает.
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
после посылки я думаю зарядить прерывание RXNE и ждать уже его. В stm32f103, который без fifo, этот "фокус" работает. Надеюсь тут с битиком в 1/4 fifo, тоже сработает.
У меня ощущение что пока вы будете все это делать оно все закончит
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Сиие Сууие
У меня ощущение что пока вы будете все это делать оно все закончит
это если скорость высокая. у меня бывают очень не быстрые внешние девайсы
источник