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

АЦП-реализация на ПЛИС

Начал работать с АЦП [16-разрядное AD7687] , которые расположены на моей плате. Правильно ли я понял , что SDO выходит из АЦП а CNV обращается к АЦП.CLK в свою очередь приходит. :biggrin:

 

//ACP project

 

module NAME (input ADC_CLK , ADC_SDO

 

output ADC_CNV_1 , ADC_CNV_2 , ADC_CNV_3 , ADC_CNV_4 , ADC_CNV_5 , ADC_CNV_6);

 

endmodule

 

 

 

Прикрепил схемы.

BCP5x_Analog.pdf

BCP5x_Analog_Vin.pdf

BCP5x_Analog_Iin.pdf

BCP5x_PGA.pdf

BCP5x_PGA_Common.pdf

Изменено пользователем Ensider

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


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

Начал работать с АЦП [16-разрядное AD7687] , которые расположены на моей плате. Правильно ли я понял , что SDO выходит из АЦП а CNV обращается к АЦП.CLK в свою очередь приходит. :biggrin:

 

//ACP project

 

module NAME (input ADC_CLK , ADC_SDO

 

output ADC_CNV_1 , ADC_CNV_2 , ADC_CNV_3 , ADC_CNV_4 , ADC_CNV_5 , ADC_CNV_6);

 

endmodule

 

 

 

Прикрепил схемы.

 

module NAME (output ADC_CLK ,

input ADC_SDO,

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


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

А как же ADC_CNV ?

 

output ADC_CNV

 

а вообще у AD документация отличная и понятная

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


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

output ADC_CNV

 

а вообще у AD документация отличная и понятная

 

Благодарю. Ошибочка выходит только с CLK . А для того , чтобы наблюдать картину на осциллографе необходимо лишь направить однократный сигнал по каналу?

 

 

А DS смотреть не пробовали?

 

Не заглядывал. Мое упущение.

 

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


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

Надо смотреть тайминги в даташите, могут быть несколько вариантов интерфейса (конкретно эти по теме - не смотрел). Я делаю моделирование интерфейса получения данных АЦП, это позволяет быстро разработать схему и отладить ее. А тыкаться осциллографом можно, но ведь легче сделать тестбенч и в симуляторе увидеть, что подсовываемые данные правильно получаются модулем чтения АЦП, и что тайминги похожи на даташитные.

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


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

Надо смотреть тайминги в даташите, могут быть несколько вариантов интерфейса (конкретно эти по теме - не смотрел). Я делаю моделирование интерфейса получения данных АЦП, это позволяет быстро разработать схему и отладить ее. А тыкаться осциллографом можно, но ведь легче сделать тестбенч и в симуляторе увидеть, что подсовываемые данные правильно получаются модулем чтения АЦП, и что тайминги похожи на даташитные.

Сегодня займусь этим.

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


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

Сегодня займусь этим.

Можно взять бесплатный Modelsim (Starter Edition, если альтера) или еще более бесплатный Icarus Verilog (если язык Verilog, вижу это так).

У меня уже пара знакомых ПЛИСовиков, к их стыду, только увидев как надежно и быстро я делаю любые модули, стали постепенно признавать, что мое пристрастие к симуляторам и тестбенчам помогает в работе и экономит кучу времени. Если новичок - надо сразу перенимать этот подход, голова это не компьютер чтобы высчитывать как будет работать схема или почему не работает...

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


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

Можно взять бесплатный Modelsim (Starter Edition, если альтера) или еще более бесплатный Icarus Verilog (если язык Verilog, вижу это так).

У меня уже пара знакомых ПЛИСовиков, к их стыду, только увидев как надежно и быстро я делаю любые модули, стали постепенно признавать, что мое пристрастие к симуляторам и тестбенчам помогает в работе и экономит кучу времени. Если новичок - надо сразу перенимать этот подход, голова это не компьютер чтобы высчитывать как будет работать схема или почему не работает...

Что-то Model Sim совсем отказывается строить какую-либо зависимость. Разве необходимо писать отдельную модель для него? Или пока ничего не оцифруешь он симулировать ничего не будет?

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


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

Да не там все просто.

Запускаете МоделСим, в командой строке пишете прямо текстом состав вашей системы, какие АЦП по моделям, и другие микросхемы, просто через запятую, можно даже на русском и жмете запуск. Он сам все соединит и ошибки подсветит...

 

Прям какой то спец пост устойчивости.

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

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


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

Да не там все просто.

Запускаете МоделСим, в командой строке пишете прямо текстом состав вашей системы, какие АЦП по моделям, и другие микросхемы, просто через запятую, можно даже на русском и жмете запуск. Он сам все соединит и ошибки подсветит...

 

Прям какой то спец пост устойчивости.

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

 

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

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


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

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

пишите мастер SPI(режим работы выбираете в соответствии из даташита на АЦП), а потом управляющий автомат для мастера SPI и мультиплексирования CS...

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


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

пишите мастер SPI(режим работы выбираете в соответствии из даташита на АЦП), а потом управляющий автомат для мастера SPI и мультиплексирования CS...

 

Я задал параметры по даташиту. Мастер SPI необходимо писать уже после объявления параметров в теле модуля? И что касается управляющего автомата , что вы имели ввиду?

 

//ACP project

module NOKIA (input ADC_SDO ,

output ADC_CNV , ADC_CLK);

 

 

reg [DATA_WIDTH-1 -: 16] td; // Разрядность даннных АЦП

 

parameter VDD = 5 ; //напряжение логики

 

parameter TDSDS = 5 ; //время задержки от фронта тактовой частоты

 

parameter r ACQT = 1.8; //время получения данных

 

parameter r CVDD = 2.5; //уровень логического порога

 

parameter ENT = 14; //Задержка от фронта тактовой частоты до выхода

 

parameter SSDR = 15; //Для нарастающего фронта

 

parameter SSDF = 3; //Для спадающего фронта

 

parameter r FSS = 1.8 // Диапозон ввода от нуля до натуральной величины

 

 

 

always @(posedge ADC_SDO) begin

 

 

 

end

 

//assign ADC_CNV = 1'b1;

 

endmodule

 

пишите мастер SPI(режим работы выбираете в соответствии из даташита на АЦП), а потом управляющий автомат для мастера SPI и мультиплексирования CS...

 

И ещё вопрос. Нельзя ли обойтись без написания мастера SPI?

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


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

:)

 

Вы пишите модуль который что-то делает с железом вокруг.

Дальше хотите на симуляторе проверить как он работает.

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

 

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

 

Так что мастера можно не писать только в случае если вы найдете чужой написанный. Другое дело что для симуляции можно использовать не синтезируемую часть подмножества языка, и поэтому модели для симуляции пишутся гораздо проще и быстрее. А кроме модели вам надо еще написать тестовый сценарий, это то что ваша модель делает по времени, это тоже пишут на языке, на той же не синтезируемой части.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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