| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Как записать и воспроизвести последовательность импульсов?
17.09.2012, 15:14
|
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
|
Цитата:
|
Народ, не тупите.
5% заполнения (или скважности) на 500 кГц будет выглядеть так:
1 - 100нс, 0 - 1900нс, 1 - 100нс, 0 - 1900нс и т.д.
Т.е. за 100нс Вам надо обработать два прерывания, одно по фронту, другое по спаду. Успеете?
|
Раздельно захватываются фронт и спад, а обрабатывается по одному из них.
У атмела например есть возможность одновременного захвата фронта и спада одним счетчиком.
|
|
|
|
17.09.2012, 15:21
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
Сообщение от Alecsej
|
|
Раздельно захватываются фронт и спад, а обрабатывается по одному из них.
|
Заполнение может меняться, причем, возможно, даже в процессе записи. По какому событию Вы будете обрабатывать прерывание?
|
|
|
|
17.09.2012, 15:26
|
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
|
Цитата:
|
|
Скважность меняется 5-85%,длительность от 500 нс.
|
Со слов ТС.
|
|
|
|
17.09.2012, 15:32
|
|
|
Прописка
Регистрация: 19.12.2009
Сообщений: 118
Сказал спасибо: 22
Сказали Спасибо 26 раз(а) в 20 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
Сообщение от MisterDi
|
ВитГо, Вы программист? Тогда приймите мои соболезнования. ПЛИС - исконная вотчина электронщиков, и языки описания аппаратуры принципиально отличаются от обычных языков программирования. Наверно начинать нужно с выбора функциональной схемы, далее переходить к блок-схеме, после этого пробовать реализовать эту блок-схему в виде принципиальной (тут уже можно пользоваться Verilog/VHDL). Думаю обсуждение можно продолжить тут, т.к. здесь смотрит больше народа.
|
ок, надеюсь ТС не будет против..
в качестве языка я выбрал Verilog - он мне показался понятным (но в принципе готов его поменять на любой другой, если найдется тот кто сможет подсказывать в другом языке)
Сообщение от MisterDi
|
|
Для начала определимся с тактовой частотой. Если у нас период минимального сигнала 2мкС, то для точности 1% нужно иметь тактовую 20нС - 50МГц -вполне реальная частота для практически любой ПЛИС.
|
мой проект это цифровой осцилограф.
АЦП AD9057, частота захвата до 80 мгц
ПЛИС EPM240T100C5 (заказал себе отладочную плату с ней, еще не пришла), на плате кварц на 50 мгц, но в реальном проекте хочу применить кварцевый генератор на 150 мгц (нашел где продаются такие кварцы)
засада с ОЗУ - паябельные корпуса и приемлемый объем памяти у ассинхронных чипов, я пока смотрю в сторону CYC1041D - она 16ти битная, с временем доступа 10 нс
16 бит нужно для того чтобы записывать ее с частотой 37.5 мгц, тогда по идее мы соблюдаем 7 нс выдержку сигнала we для записи
я нарисовал временные диаграммы которые нужно получить от ПЛИС - diagrammy_signalov.xlsx
но когда касаюсь программирования ПЛИС то ничего не получается, так как возникают мало мне понятные сдвиги сигналов.. я понимаю что сигнал не распространяется мгновенно, но то что получаю я - вообще фигня какая то
из проекта уже выкинул все (чтобы не путаться) - но все равно не понимаю почему так все получается...
oscil1.zip
мне написали что для синхронизации сигналов нужно применять "констрейны" - но что это такое никто объяснить не может.. нашел ссылку на статью в журнале - но наверно уровень моих знаний в veriloge намного ниже требуемого для понимания статьи
как мне синхронизировать выдачу импульсов из плис (ну или уменьших разбег между ними)
p.s. чтото ucoz.ru лежит  у меня там еще файлы есть.. но вообще неоткрывается сайт
|
|
|
|
17.09.2012, 15:51
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
Сообщение от Alecsej
|
|
Со слов ТС.
|
Да уж, 500 это не 100. Уже ближе к реалиям.
Но частота тактирование таймера должна быть 50 МГц как не крути.
|
|
|
|
17.09.2012, 15:53
|
|
|
Прописка
Регистрация: 19.12.2009
Сообщений: 118
Сказал спасибо: 22
Сказали Спасибо 26 раз(а) в 20 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
подробнее про память:
если писать 8 бит данных в память то нужно как то обеспечить 7 нс длительности сигнала we
а как отмерить такую длительность на плис паузами или еще как - я не понял
поэтому решил взять 16ти битную память, и записывать в нее 16 бит данных,
то есть один цикл записи в SRAM будет приходиться на 2 такта выборки данных из ADC
далее, АDC работает на частоте 75 мгц (решил не упираться в максимальные для AD9057 80 мгц а взять частоту чуть меньше) - на управление ADC я оставил 2 такта клока на частоте 150 мгц - по идее по фронту клока я хочу выдавать сигнал ADC_ENC (это сигнал на выдачу результата оцифровки на ШД микросхемы ADC), а по спаду импульса клока - читать ШД ADC и запоминать (первый байт с ADC запоминаем в регистре ПЛИС, второй байт выдаем в младших 8 битах слова на запись в SRAM с первым байтом в старших 8 битах слова на запись - поэтому и получилось 16 бит данных в ОЗУ)
ПЛИС может работать вроде как до 300 мгц, так что 150 для нее не много..
но вот как синхронизировать выдачу - это вопрос...
в проекте который я приложил есть диаграммы сигналов которые у меня получаются - откуда берутся такие значения задержек ?
Последний раз редактировалось ВитГо; 17.09.2012 в 16:08.
|
|
|
|
17.09.2012, 16:05
|
|
|
Прописка
Регистрация: 19.12.2009
Сообщений: 118
Сказал спасибо: 22
Сказали Спасибо 26 раз(а) в 20 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
или правильнее начать разработку с разработки электрической схемы с применением стандартных элементов микросхем ? - гм. но я все равно не понимаю как отслеживать задержки... - или они там меньше возникают ?
сейчас попробую нарисовать (я же до плис хотел делать на логике.. вот заодно и потренируюсь)
|
|
|
|
17.09.2012, 16:06
|
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
|
|
|
|
Сказали "Спасибо" Alecsej
|
|
|
17.09.2012, 16:19
|
|
|
Прописка
Регистрация: 19.12.2009
Сообщений: 118
Сказал спасибо: 22
Сказали Спасибо 26 раз(а) в 20 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
Сообщение от Alecsej
|
|
Вот более работоспособный вариант.
|
то есть моя основная ошибка это применение инкрементируемого счетчика состояния?
получается что быстрее записать номер следующего состояния чем инкрементировать номер следующей фазы ?
p.s. Вы гений.. но как все просто и рядом лежало !! а я тут инкремент замучал уже !
|
|
|
|
17.09.2012, 16:25
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Как записать и воспроизвести последовательность импульсов?
Сообщение от ВитГо
|
или правильнее начать разработку с разработки электрической схемы с применением стандартных элементов микросхем ? - гм. но я все равно не понимаю как отслеживать задержки... - или они там меньше возникают ?
сейчас попробую нарисовать (я же до плис хотел делать на логике.. вот заодно и потренируюсь)
|
Если планируете что-либо делать на триггерных элементах - делайте все построения с применением энейблов. Все должно стробироваться входными сигналами. Иначе у вас все поразбегается кто куда, и потом никакой логикой не соберете. Все триггерные элементы должны быть в привязке к одному фронту. Естественно есть и исключения.
У вас опыт работы с триггерной логикой в ПЛИСах имеется?
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
RFID - как прочитать и записать?
|
victor1956 |
Микроконтроллеры, АЦП, память и т.д |
456 |
10.02.2016 22:25 |
|
Как записать переменную
|
neox-neox |
Микроконтроллеры, АЦП, память и т.д |
24 |
24.02.2012 19:50 |
|
Три условия, как записать на си?
|
Mitrar |
Микроконтроллеры, АЦП, память и т.д |
4 |
23.09.2009 13:36 |
|
как записать строку в массив?
|
dimonbest |
Микроконтроллеры, АЦП, память и т.д |
8 |
27.02.2008 12:18 |
|
как записать в eeprom atmegi128?
|
sma-etu |
Микроконтроллеры, АЦП, память и т.д |
1 |
06.12.2006 15:35 |
Часовой пояс GMT +4, время: 00:16.
|
|