|
Автомат передачи данных по 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 будет более правильным решением?
|
|
|
|
|
 |
Ответов
|
Feb 25 2015, 20:39
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата Не все, конечно. Я бы сделал на трех счетчиках (два - 7-ми разрядных и один - 3-х разрядный), двух регистровых файлах (на 38 байт каждый) и на регистре сдвига на 8 бит. можно поподробнее, что-то я не очень понимаю Цитата Бред какой то... Чем больше бит, тем все они за один такт и присвоятся - тем времени меньше, но ресурсов больше. Чем меньше бит, тем больше тактов надо, чтобы их обработать, пропуская их по очереди. имелось ввиду что если присваивается 90 битный регистр, то это можно делать с меньше частотой, чем 2 45 битных регистра. Достаточное время на установку больше становиться. Ячейки дальше друг от друга, больше проводов, длиннее пути... то есть таская 90 битный регистр боюсь в частоте потерять Про ОЗУ подумаю, но все равно как-то не складно все выходит...
|
|
|
|
Сообщений в этой теме
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 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
|
|
|