Перейти к содержанию
    

Помогите с выбором кристалла

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

Можно обойтись без обработки регистра захвата, а сразу отправлять на ПК.

Максимальная входная частота 3 МГц, причем больше 1000 импульсов в секунду в большинстве случаев не бывает, но подобная ситуация может возникнуть и ее требуется зафиксировать.

 

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

 

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

 

Я с ПЛИС не работал, потому прошу не пинать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Максимальная входная частота 3 МГц, причем больше 1000 импульсов в секунду в большинстве случаев не бывает, но подобная ситуация может возникнуть и ее требуется зафиксировать.

 

это как понимать ?

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

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

хотя можно и на врках сделать.

 

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

 

И немного не понятна логика, типа

"я сделал на МК, теперь вот хочу на дсп + плис",

глупый вопрос а зачем тогда на с мк надо было начинать ?

 

без обид. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Причем тут ЦСП, я тоже не понял.

На MAXII, в частности epm240, можно без проблемм реализовать требуемую схему, еще и куча места останется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

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

 

кулранера

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

 

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

 

Причем тут ЦСП, я тоже не понял.
К сожалению иногда выбирать не приходится :( На чем сказали на том и делаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это с каких это пор они перестали ловить то ? Давайте подсчитаем

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

Что будет на 24 МГц ..........?

Если же вы все сделали через опрос состояния ног, тогда .......

 

что бы связываться с ПК вам нужен уарт, для его реализации необходимо минимум

32 ЛЯ, и то это будет самый примитивный уарт.

Хотите круче ищите плис более емкую -> более дорогую.

ИМХО поставить мк, на который можно положить нормальный протокол обмена и в помошь ему плис, которая будет считать.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это с каких это пор они перестали ловить то ? Давайте подсчитаем

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Т.е. счетчик зарядили и ждем,

для того что бы посмотреть сколько импульсов мы насчитали достаточно сделать две операции mov, и 2 опреации что бы сбросить регистры.

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

 

просто похоже автор либо не совсем точно описал задачу, либо незадействвал

моуль захвата.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Т.е. счетчик зарядили и ждем,

для того что бы посмотреть сколько импульсов мы насчитали достаточно сделать две операции mov, и 2 опреации что бы сбросить регистры.

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

 

просто похоже автор либо не совсем точно описал задачу, либо незадействвал

моуль захвата.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

:) ну называеться он так в документации :) capture compare module

построен на основе счетчика,

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

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На мой взгляд если использовать ПЛИС, то можно сделать всю систему однокристальной те сделать UART+автомат+систему захвата в самой плис, без микроконтроллера. Сомнительно что скорости 115200 RS232 будет достаточно допустим для передачи параметров импульса. Мб имеет смысл сделать на МК c встроенным USB (есть в PIC, Cypress и тп), COM медленно и верно погибает, на моем нотебуке его уже нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

:) ну называеться он так в документации :) capture compare module

построен на основе счетчика,

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

:)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Т.е. нужен TDC (ВЦП) с разрешением не хуже 100нс и возможностью накопления данных. Есть опыт програмирования, но нет опыта проектироватия схем на кристалле. В этой ситуации можно посоветывать Triscend. С каким ядром (x51 или A7) решать Вам. Посмотрите здесь: www.triscend.com www.zylogic.com.cn www.efo.ru (у ефо есть обучение, но это на любителя), может поможет. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По моей информации,triscend больше не существует.

Задача -простейшая, как говорилось вначале, мсх семейства MAXII позволяет выполнить все задачи на одном кристалле.

Если очень лениво, то можно собрать маленький, самодельный cpu и реализовать протокол на нем, хотя это лишнее, все и так без проблемм можно реализовать на уровне автоматов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вер гуд :)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...