Size: a a a

2020 October 05

AK

Anton Kirilenko in Embedded Group
так это... все эти уарты могут сообщить только про окончании приёма байта, а не пакета байт :)
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Anton Kirilenko
так это... все эти уарты могут сообщить только про окончании приёма байта, а не пакета байт :)
ага, а тамошний spi не может
источник

BV

Bulat Valeev in Embedded Group
Aleksander Zholtkovskii
и что? Прерывания у SPI конечно есть, несколько. Но срабатывание на окончание транзакции настроить невозможно.
Обычно через DMA это делают вроде
источник

G

Gennady in Embedded Group
Anton Kirilenko
так это... все эти уарты могут сообщить только про окончании приёма байта, а не пакета байт :)
тут не прием.... тут передача.... т.е. закинули 4 байта в интерфейс - и хз когда оно всё выдаст до конца, в этом проблема
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Bulat Valeev
Обычно через DMA это делают вроде
DMA тут вообще не при делах, ему нет нужды знать когда SPI закончит работу.
источник

AK

Anton Kirilenko in Embedded Group
но вобще в армах действительно делают приём и передачу через дма
источник

BV

Bulat Valeev in Embedded Group
Ну тут хозяин барин. Может специфичное что-то
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Anton Kirilenko
но вобще в армах действительно делают приём и передачу через дма
мне надо точно знать когда spi зашлёт все битики, чтобы шевелить всякими чипселектами.
DMA мне тут не помощник. Оно радостно сообщит что транзакция закончилась, а spi в это время ещё пару байт будет выдувать
источник

AK

Anton Kirilenko in Embedded Group
источник

AK

Anton Kirilenko in Embedded Group
оно?
источник

R

Roman in Embedded Group
Aleksander Zholtkovskii
мне надо точно знать когда spi зашлёт все битики, чтобы шевелить всякими чипселектами.
DMA мне тут не помощник. Оно радостно сообщит что транзакция закончилась, а spi в это время ещё пару байт будет выдувать
можно просто отсчитывать таймаут от последнего принятого байта
источник

R

Roman in Embedded Group
а чтоб таймер не заводить, использовать systick, всё равно без дела молотит
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Roman
а чтоб таймер не заводить, использовать systick, всё равно без дела молотит
systick молотит freertos
источник

AK

Anton Kirilenko in Embedded Group
систик можно же читать и без фриртоса :)
источник

AZ

Aleksander Zholtkovs... in Embedded Group
можно выставить срабатывание rxne на заполнение четверти fifo. Оно 32-х битное. По идее должно сработать.
Буду пробовать.
источник

AZ

Aleksander Zholtkovs... in Embedded Group
Anton Kirilenko
систик можно же читать и без фриртоса :)
Поллить его?
Лучше уж тогда BSY :)
источник

AK

Andy Korg in Embedded Group
Мирон
Юзаю есп в своём самом маштабном проекте, и тут в общем то прикол случился. Другой инженер разрывает минус питания, для того чтобы отключить моё устройство, наши устройства общаются по UART. И оптроны никто не поставил. В чем собственно прикол... На UART весит напруга, и некоторые ревизии есп плат не запускаются при включении без принудительного ресета через UART-USB конвертор. Для производства были выбраны случайно те что запускаются, и вроде бы все ок. Но не будет ли эта недоработка каким то образом негативно сказываться на есп?
будет твой esp питаться через защитные диоды :)
источник

MP

Max Payne in Embedded Group
источник

h

hardegor in Embedded Group
Aleksander Zholtkovskii
блок spi, судя по доке и регистрам, несколько прокачанная версия spi из stm32f103. Фич несколько больше. Но теперь, из-за добавленных и не отключаемых fifo, я не вижу никакой возможности узнать, что транзакция spi полностью закончена. Вернее узнать можно только поллингом бита BSY в SR
А дальше почитать никак? У самого spi настраиваешь по каким событиям прерваться. И в глобальному прерывании spi проверяешь почему прервался.
источник

СС

Сиие Сууие in Embedded Group
Aleksander Zholtkovskii
походу таймер заводить придётся :(
Я когда-то думал про подобное и были разные идеи разной степени пригодности и здравомыслия.
В конечном итоге пришел к мысли о том что все эти костыли ненужны и просто по концу отработки дма ставил флаг конца а в основном теле при поднятом флаге проверял регист окончания спиай
источник