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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Помогите с выбором кристалла
-=user=-
сообщение Aug 8 2005, 08:19
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 4-08-05
Пользователь №: 7 369



Требуется плата захвата (как в MPS, AVR), которая по приходу каждого следующего импульса записывает текущее значение таймера в спец. регистр, который в дальнейшем обрабатывается, и данные уходят по rs-232 на ПК.
Можно обойтись без обработки регистра захвата, а сразу отправлять на ПК.
Максимальная входная частота 3 МГц, причем больше 1000 импульсов в секунду в большинстве случаев не бывает, но подобная ситуация может возникнуть и ее требуется зафиксировать.

Я сделал это на MSP430, но конечно была занижена входная частота. Перехожу на TMS320 - при входной частоте 3 МГц должен успеть.

Хочу сделать это на ПЛИС, но не знаю какую взять для этой задачи? Есть ли готовые решения rs-232 и rs-485, уже встроенные в кристалл? Можно ли построить 32-разрядный таймер и какую тогда следует использовать ПЛИС?

Я с ПЛИС не работал, потому прошу не пинать.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 8 2005, 08:40
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(-=user=- @ Aug 8 2005, 03:19)
Максимальная входная частота 3 МГц, причем больше 1000 импульсов в секунду в большинстве случаев не бывает, но подобная ситуация может возникнуть и ее требуется зафиксировать.

*

это как понимать ?
у вас есть 1000 импульсов с заполенением частотой 3 МГц ?
ну если вам нужно только импульсы ловить то ИМХО модуль capture campare на сигналах (Ф12х) вам самое то.
хотя можно и на врках сделать.

А насчет плис то ИМХО ЦПЛД МАкс 2 или кулранера вам заглаза и при атачить его к тому же МСП.

И немного не понятна логика, типа
"я сделал на МК, теперь вот хочу на дсп + плис",
глупый вопрос а зачем тогда на с мк надо было начинать ?

без обид. smile.gif


--------------------
Go to the top of the page
 
+Quote Post
vetal
сообщение Aug 8 2005, 08:55
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Причем тут ЦСП, я тоже не понял.
На MAXII, в частности epm240, можно без проблемм реализовать требуемую схему, еще и куча места останется.
Go to the top of the page
 
+Quote Post
-=user=-
сообщение Aug 8 2005, 16:08
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 4-08-05
Пользователь №: 7 369



Цитата
у вас есть 1000 импульсов с заполенением частотой 3 МГц ?

Импульсы могут идти с такой частотой, я просто забыл дописать что они идут от счетчика Гейгера-Мюллера и потому этот процесс случайный (вернее подчиняется распределению Пуассона), т.е. частота может скакать от ~500 Гц до ~3 МГц.

Цитата
ну если вам нужно только импульсы ловить то ИМХО модуль capture campare на сигналах (Ф12х) вам самое то. хотя можно и на врках сделать

Я б и рад, да ни AVR ни MPS430 частоту 3 МГц не поймают sad.gif

Цитата
кулранера

я ж новичок, чего это? О CPLD MaxII я понял. Но зачем его к МК цеплять? Для связи с ПК или как дополнительная обработка информации?

Цитата
я сделал на МК, теперь вот хочу на дсп + плис
ну хочется мне ПЛИС попробовать, надо ведь с чего-то начинать.

Цитата
Причем тут ЦСП, я тоже не понял.
К сожалению иногда выбирать не приходится sad.gif На чем сказали на том и делаю.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 9 2005, 08:42
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата
Я б и рад, да ни AVR ни MPS430 частоту 3 МГц не поймают  sad.gif

Это с каких это пор они перестали ловить то ? Давайте подсчитаем
при тактировании 8 МГЦ, авркой с помошью модуля захвата можно поймать сигнал до 4 МГЦ (т.к. требуеться 2 такта для синхронизации входно сигнала).
Что будет на 24 МГц ..........?
Если же вы все сделали через опрос состояния ног, тогда .......

что бы связываться с ПК вам нужен уарт, для его реализации необходимо минимум
32 ЛЯ, и то это будет самый примитивный уарт.
Хотите круче ищите плис более емкую -> более дорогую.
ИМХО поставить мк, на который можно положить нормальный протокол обмена и в помошь ему плис, которая будет считать.

ПС но вашу задачу модно выполнить на мк.


--------------------
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 9 2005, 08:54
Сообщение #6


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(des00 @ Aug 9 2005, 14:42)
Цитата
Я б и рад, да ни AVR ни MPS430 частоту 3 МГц не поймают  sad.gif

Это с каких это пор они перестали ловить то ? Давайте подсчитаем
при тактировании 8 МГЦ, авркой с помошью модуля захвата можно поймать сигнал до 4 МГЦ (т.к. требуеться 2 такта для синхронизации входно сигнала).
*

Не так уж и ловко это получится. Представьте, что валится десяток-другой импульсов с частотой 3 МГц!? Время между импульсами - 330 нс, успеет AVR'ка забирать из регистра захвата данные за такое время при тактовой 8 МГц? Однозначно - нет! У нее только реакция на прерывание минимум 4 такта. Да еще выход из прерывания столько же. Т.е. даже при 20 МГц (т.е. при машинном цикле 50 нс) только вход и выход в обработчик прерывания составят 8*50=400 нс. Можно, конечно, обойтись без обработчиков прерываний - тупо сидеть и ждать флаг (опрашивать), но и тут некузяво - во-первых, ничего другого больше делать нельзя, во-вторых, по скорости все равно сомнительно - флаг опроси, забери данные - два такта на копирование в регистры, 4 такта на копирование в память... - не, фигня, тоже не выходит. Не может проц успешно работать с потоком, близким к его (проца) тактовой. Т.ч. тут аппаратное решение нужно.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 9 2005, 09:04
Сообщение #7


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



[quote=dxp,Aug 9 2005, 03:54]
[quote=des00,Aug 9 2005, 14:42][quote]Я б и рад, да ни AVR ни MPS430 частоту 3 МГц не поймают sad.gif
Не так уж и ловко это получится. Представьте, что валится десяток-другой импульсов с частотой 3 МГц!? Время между импульсами - 330 нс, успеет AVR'ка забирать из регистра захвата данные за такое время при тактовой 8 МГц? Однозначно - нет! У нее только реакция на прерывание минимум 4 такта. Да еще выход из прерывания столько же. Т.е. даже при 20 МГц (т.е. при машинном цикле 50 нс) только вход и выход в обработчик прерывания составят 8*50=400 нс. Можно, конечно, обойтись без обработчиков прерываний - тупо сидеть и ждать флаг (опрашивать), но и тут некузяво - во-первых, ничего другого больше делать нельзя, во-вторых, по скорости все равно сомнительно - флаг опроси, забери данные - два такта на копирование в регистры, 4 такта на копирование в память... - не, фигня, тоже не выходит. Не может проц успешно работать с потоком, близким к его (проца) тактовой. Т.ч. тут аппаратное решение нужно.
*

[/quote]
Хмм да ну, заряжаем модуль захвата и пусть себе считает, не нужно бросаться на каждый импульс, а только на пачку.
Т.е. счетчик зарядили и ждем,
для того что бы посмотреть сколько импульсов мы насчитали достаточно сделать две операции mov, и 2 опреации что бы сбросить регистры.
ну и если быть полностью придирчивым + еще 2 опреации по остановке и включению модуля захвата. Итого 6 тактов, на тактовой в 24 метра вам это за глаза.

просто похоже автор либо не совсем точно описал задачу, либо незадействвал
моуль захвата.
ведь его интересуте не факт поступления импульса а среднее кол-во импульсов.


--------------------
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 9 2005, 09:47
Сообщение #8


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(des00 @ Aug 9 2005, 15:04)
Хмм да ну, заряжаем модуль захвата и пусть себе считает, не нужно бросаться на каждый импульс, а только на пачку.
Т.е. счетчик зарядили и ждем,
для того что бы посмотреть сколько импульсов мы насчитали достаточно сделать две операции mov, и 2 опреации что бы сбросить регистры.
ну и если быть полностью придирчивым + еще  2 опреации по остановке и включению модуля захвата. Итого 6 тактов, на тактовой в 24 метра вам это за глаза.

просто похоже автор либо не совсем точно описал задачу, либо незадействвал
моуль захвата.
ведь его интересуте не факт поступления импульса а среднее кол-во импульсов.
*

А, ну если только импульсы считать (а не засекать времена между ними), то, пожалуй, и прокатит. Меня сбило с толку упоминание про модуль захвата - модуль захвата используется для засекания временнОго положения перепада. А для подсчета он не нужен - таймер/счетчик в этом случае используется как счетчик - просто тупо считает импульсы. Емкость там весьма приличная - 65535, т.ч. достаточно раз в несколько сотен микросекунд считывать значение счетчика и все.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 9 2005, 09:52
Сообщение #9


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(dxp @ Aug 9 2005, 04:47)
А, ну если только импульсы считать (а не засекать времена между ними), то, пожалуй, и прокатит. Меня сбило с толку упоминание про модуль захвата - модуль захвата используется для засекания временнОго положения перепада. А для подсчета он не нужен - таймер/счетчик в этом случае используется как счетчик - просто тупо считает импульсы. Емкость там весьма приличная - 65535, т.ч. достаточно раз в несколько сотен микросекунд считывать значение счетчика и все.


smile.gif ну называеться он так в документации smile.gif capture compare module
построен на основе счетчика,
и кстати и длительность сигнала можно мерить на нем, просто нужно настроить его входной модуль на автозахват состояния счетчика по событию (восходящий и нисходящий фронт) и потом просто взять разницу smile.gif хотя тут есть подводные камни.
smile.gif


--------------------
Go to the top of the page
 
+Quote Post
Stas
сообщение Aug 9 2005, 09:56
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 464
Регистрация: 1-10-04
Из: Челябинск
Пользователь №: 751



На мой взгляд если использовать ПЛИС, то можно сделать всю систему однокристальной те сделать UART+автомат+систему захвата в самой плис, без микроконтроллера. Сомнительно что скорости 115200 RS232 будет достаточно допустим для передачи параметров импульса. Мб имеет смысл сделать на МК c встроенным USB (есть в PIC, Cypress и тп), COM медленно и верно погибает, на моем нотебуке его уже нет...
Go to the top of the page
 
+Quote Post
-=user=-
сообщение Aug 9 2005, 11:12
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 4-08-05
Пользователь №: 7 369



Цитата
ведь его интересуте не факт поступления импульса а среднее кол-во импульсов.

Меня интересует временные промежутки между каждыми двумя импульсами и потому среднее значение не подходит.
Go to the top of the page
 
+Quote Post
dxp
сообщение Aug 9 2005, 13:19
Сообщение #12


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(des00 @ Aug 9 2005, 15:52)
Цитата(dxp @ Aug 9 2005, 04:47)
А, ну если только импульсы считать (а не засекать времена между ними), то, пожалуй, и прокатит. Меня сбило с толку упоминание про модуль захвата - модуль захвата используется для засекания временнОго положения перепада. А для подсчета он не нужен - таймер/счетчик в этом случае используется как счетчик - просто тупо считает импульсы. Емкость там весьма приличная - 65535, т.ч. достаточно раз в несколько сотен микросекунд считывать значение счетчика и все.


smile.gif ну называеться он так в документации smile.gif capture compare module
построен на основе счетчика,
и кстати и длительность сигнала можно мерить на нем, просто нужно настроить его входной модуль на автозахват состояния счетчика по событию (восходящий и нисходящий фронт) и потом просто взять разницу smile.gif хотя тут есть подводные камни.
smile.gif
*


Э-э, не понял, причем тут вообще capture module (что это такое, я в курсе)? Речь шла о подсчете импульсов. Т.е. достаточно подать сигнал на счетный вход таймера/счетчика. Никакие фенки capture module (как то регистр захвата, noise canceler и прочее) тут не нужны. Более того, для подсчета импульсов можно использовать таймер, вообще не содержащий никаких capture модулей. Capture модуль - для засекания времянок, тут он не нужен никак. Что не так?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
tvv
сообщение Aug 9 2005, 13:27
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 8-10-04
Пользователь №: 824



Цитата(-=user=- @ Aug 9 2005, 14:12)
Цитата
ведь его интересуте не факт поступления импульса а среднее кол-во импульсов.

Меня интересует временные промежутки между каждыми двумя импульсами и потому среднее значение не подходит.
*


Т.е. нужен TDC (ВЦП) с разрешением не хуже 100нс и возможностью накопления данных. Есть опыт програмирования, но нет опыта проектироватия схем на кристалле. В этой ситуации можно посоветывать Triscend. С каким ядром (x51 или A7) решать Вам. Посмотрите здесь: www.triscend.com www.zylogic.com.cn www.efo.ru (у ефо есть обучение, но это на любителя), может поможет. smile.gif
Go to the top of the page
 
+Quote Post
vetal
сообщение Aug 9 2005, 13:44
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



По моей информации,triscend больше не существует.
Задача -простейшая, как говорилось вначале, мсх семейства MAXII позволяет выполнить все задачи на одном кристалле.
Если очень лениво, то можно собрать маленький, самодельный cpu и реализовать протокол на нем, хотя это лишнее, все и так без проблемм можно реализовать на уровне автоматов.
Go to the top of the page
 
+Quote Post
-=user=-
сообщение Aug 9 2005, 14:00
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 4-08-05
Пользователь №: 7 369



Цитата
все и так без проблемм можно реализовать на уровне автоматов

Вер гуд smile.gif
Как я уже говорил с ПЛИС я не сталкивался, а на обычных элементах я себе это так представляю: для детектирования фронта используется элемент "XOR", на один из входов которого подан логический уровень (зависит от того что надо ловить - передний или задний фронт). По приходу фронта импульса сигнал от XOR идет на разрешение передачи текущего значения 16-разрядного счетчика по каналу rs-232, -485. После счетчик обнуляется и все повторяется. Чего еще надо?
Go to the top of the page
 
+Quote Post

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

 


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


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