реклама на сайте
подробности

 
 
> Память для плис
sergey sva
сообщение Nov 13 2010, 15:59
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



плисы программировать пока не приходилось, но скоро наверно придется разбираться с такой задачей.
нужно обрабатывать около 32 дискретных сигналов (частота максимум 1мгц) и 10 сигналов до 5мгц подсчитывать длительность импульсов усреднять и результат выводить в SPI. С плисами пока не занимался поэтому возникает вопрос если сигналы усреднять
нужно будет сохранять n результатов складывать делить... значит нужна будет память (озу)? Какую память лучше использовать вот не плохая MT47H32M16 ? Что может дополнительно пригодится еще кроме памяти для такой задачи?
плис EP1С3 (циклон1)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergey sva
сообщение Nov 13 2010, 18:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
Осталось разобраться с вопросом что значит активный сигнал ? ..если активный сигнал это череда смен едениц и нулей то это одно , а если активный сигнал это наличие на соответствующем входе ограниченного по времени состояния (1 или 0) то это другое .

Активный когда на одном из входов 1 и не активный когда 0. может быть и дольше одной секунды но тогда нужно будет ошибку выдавать в мк. Еще смущает такой момент сигналов 42 они не зависимы друг от друга на одном например может быть 1мгц а на другом 500кгц а память будет одна, если одновременно несколько сигналов (а может и все 42) установятся в 0 то их можно не успеть записать в Sram , так прикинул за 0,5-1 мкс нужно успеть записать 42 сигнала 42*4 = 168 байт за 0,5мкс скорость получается 340мб может конечно что то не так посчитал.

Цитата
От этого зависит как именно вы будете узнавать что измеряемое событие у вас начало происходить , с этим надо разобраться. Это я к тому что в первом посте вы говорили об измерении длительности импульсов а не о подсчёте их количеств.

Думал так когда на входе 1 подавать на счетчик импульсы clk когда ноль записывать в память и обнулять счетчик.
только получается точность будет зависеть от длительности импульса.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Nov 13 2010, 18:32
Сообщение #3


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(sergey sva @ Nov 13 2010, 21:06) *
Активный когда на одном из входов 1 и не активный когда 0. может быть и дольше одной секунды но тогда нужно будет ошибку выдавать в мк. Еще смущает такой момент сигналов 42 они не зависимы друг от друга на одном например может быть 1мгц а на другом 500кгц а память будет одна, если одновременно несколько сигналов (а может и все 42) установятся в 0 то их можно не успеть записать в Sram , так прикинул за 0,5-1 мкс нужно успеть записать 42 сигнала 42*4 = 168 байт за 0,5мкс скорость получается 340мб может конечно что то не так посчитал.


..ну пусть так . Пришла единица в канал, что мы делаем ? Увеличим на единицу счётчик событий - это раз , второе начинаем собственно подсчитывать в тактах длительность этой единицы , по окончанию события - пишем результат в запоминающий регистр канала (записываем состояния счётчика событий + значение счётчика длинны импульса) , сбрасываем значение счётчика длинны импульсов .
И так по всем 42 каналам . Всю систему нужно сделать синхронной (работающей от одного источника клоков) , в таком случае опрос выходных регистров с последующей передачей их значений в память не составит проблемы. передавать данные в память можно в то время как идёт новый подсчёт, по этому не имеет значения что разные каналы у нас будут одновременно заканчивать подсчёт . Последовательно всё время обегаем все 42 канала и смотрим готов к передаче данных в память или нет .
В худшем случае , если по всем каналам всё время будут идти короткие импульсы 1 мкс и ещё по 10 каналам 200 нс , тогда конечно передавать в память 42 * 32 бита будет проблематично , в таком случае нужно суммировать непосредственно в каждом канале со значением хранящимся в его канальном регистре , а передавать в память только результат за 50 измерений.

Цитата
Думал так когда на входе 1 подавать на счетчик импульсы clk когда ноль записывать в память и обнулять счетчик.
только получается точность будет зависеть от длительности импульса.


..точность будет по любому зависеть от длинны импульса , просто если быстро-быстро измерять то можно добиться приемлемой точности в худшем случае. Если у вас самые короткие импульсы - 200 нс то что бы измерять с точностью около процента надо мерить на частоте что-то около 500 МГЦ что наверное не наш случай . Наверное по этому вы и проводите серию измерений чтобы усреднить и получить ответ близкий к правде .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 02:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016