|
Автомат передачи данных по SPI slave, Фифо на много слов, оптимизация |
|
|
|
Feb 25 2015, 16:07
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Всем привет!
задача такая, надо по SPI slave передать данные размером 32+64+6*32 бита и контрольная сумма (итого 37-38 байт)
SPI - slave, на частоте сравнимой с основным клоком, потому асинхронный, синхронизация по CS
Данные рождаются спонтанно, по каким-либо событиям, а забираются мастером как у того будет настроение, потому решил воткнуть фифо.
Посылка важна целиком, то есть если мастер бросил принимать в середине посылку, она должна быть отброшена разом, и следующая опять должна быть целиком.
В результате у меня получается такая схема:
SPI - передатчик, которому надо на вход выставить 8 битное данные, а он их выдавит асинхронно на выход. Он сигналом отмечает как забрал данные, и внешняя схема может выставлять следующие данные.
FIFO сделал параллельное, которое засасывает сразу всю посылку. Сделал его не одним фифо на (32+64+6*32) бит, а поставил 1+2+6 32 битных отдельных FIFO.
И вот теперь самое интересное. Надо как -то данные с выхода FIFO перепихать на вход SPI передатчика. И что-то у меня ничего умнее чем огромный мультиплексор на 9 8-битных слов в одно не получается. А еще по ходу перещелкивания он будет подсчитывать контрольную сумму, и добавить ее в конце, то есть мультиплексор 10-11 в 1. Ресурсы не жмут, но как-то не красиво выходит, может кто предложит какое-то более изящное решение?
Может 90 битный SPI будет более правильным решением?
|
|
|
|
Сообщений в этой теме
Golikov A. Автомат передачи данных по SPI slave Feb 25 2015, 16:07 blackfin Цитата(Golikov A. @ Feb 25 2015, 19:07) .... Feb 25 2015, 16:39 SM Если там 37-38 байт, то сделать FIFO на байт, так,... Feb 25 2015, 17:03 Golikov A. ЦитатаА зачем такой изврат? Нужно сделать один отд... Feb 25 2015, 17:17 des00 Цитата(Golikov A. @ Feb 26 2015, 01:17) к... Feb 25 2015, 17:27 blackfin Цитата(Golikov A. @ Feb 25 2015, 20:17) Э... Feb 25 2015, 17:30  des00 Цитата(blackfin @ Feb 26 2015, 00:30) Вам... Feb 25 2015, 17:35 SM Цитата(Golikov A. @ Feb 25 2015, 20:17) к... Feb 25 2015, 17:48 Golikov A. ЦитатаВам не знакомо такое явление, как регистр сд... Feb 25 2015, 18:58 blackfin Цитата(Golikov A. @ Feb 25 2015, 21:58) т... Feb 25 2015, 19:11 SM Цитата(Golikov A. @ Feb 25 2015, 21:58) В... Feb 25 2015, 19:14 des00 Цитата(Golikov A. @ Feb 26 2015, 02:58) а... Feb 26 2015, 06:17 Golikov A. ЦитатаНе все, конечно. Я бы сделал на трех счетчик... Feb 25 2015, 20:39 blackfin Цитата(Golikov A. @ Feb 25 2015, 23:39) м... Feb 26 2015, 04:40 Golikov A. 1. не обязательно, можно, но с учетом что клок SPI... Feb 26 2015, 05:46 Golikov A. мне же fifo надо, можно следить куда положено, отк... Feb 26 2015, 09:05 des00 Цитата(Golikov A. @ Feb 26 2015, 16:05) м... Feb 26 2015, 15:39 Timmy Цитата(Golikov A. @ Feb 25 2015, 19:07) Д... Feb 26 2015, 09:42 Golikov A. отбрасывается предыдущий пакет, заменяется на новы... Feb 26 2015, 10:22 Golikov A. Не все как раз наоборот.
Быстро сляпать как раз н... Feb 26 2015, 16:57 blackfin Цитата(Golikov A. @ Feb 26 2015, 19:57) О... Feb 26 2015, 17:14 Golikov A. да мне не исключить надо, мне бы как раз добавить.... Feb 26 2015, 17:23 Timmy Цитата(Golikov A. @ Feb 26 2015, 20:23) д... Feb 26 2015, 20:29 Golikov A. он не то что может быть, а он 100% не активен. пос... Feb 26 2015, 20:36 SM Вообще, междоменные переходы объявляют как set_fal... Feb 27 2015, 09:22 Golikov A. не работает оно 2 клоковое. Клок то у SPI не посто... Feb 27 2015, 13:49 SM Цитата(Golikov A. @ Feb 27 2015, 16:49) в... Feb 27 2015, 15:41 SM Вдогонку - такое FIFO придется делать на распредел... Feb 27 2015, 17:04 Golikov A. спасибо погляжу. Feb 27 2015, 21:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|