Jump to content

    

прием данных из АЦП в ПК по USB

Здравствуйте. Я вот хочу замутить девайс: звуковой АЦП + ЮСБ. Нужно для качественной оцифровки аудиосигналов. Начал с поиска качественного АЦП. Остановился на WM8785 24@192кГц. При внимательном изучении даташита обнаружил неприятный факт: тактовый сигнал BCLK оцифрованых данных соответствует тактовой частоте самой имс, т.е. 40 МГц!! Ну что ж CY7С68013 сразу в топку - дорого и не понятно. Взору пал ARM7. Но где то слышал, что он не потянет такой поток. Поэтому пришлось искать другой АЦП. Номенклатура большая а доступных ФИГ.

Остановился на pcm1803. Частота BCLK 6 МГц. Хочу использовать с AT90USB. Тактовая частота у нее 16 МГц, а пропускная способность ЮСБ - 12Мбит, что с запасом - 24*92000.

Собственно вопрос - испльзовал ли кто AT90USB для таких целей, и потянел ли она?

После выбора pcm1803 давит жаба - очень желательно 192 кГц, но не могу найти доступную в Украине. Может кто знает ?

Share this post


Link to post
Share on other sites
Помогите выбрать микроконтроллер для следующей задачи:

 

необходимо по сигналу готовности данных принимать принимать данные из 8-10 разрядного АЦП с частотой порядка 10 Мегавыборок в секунду и без какой-либо обработки отправлять их в комп по USB, где приложение будет тупо этот поток сбрасывать на диск. Таким образом необходимая скорость передачи данных 10-15 МБ\сек.

 

Сам приматриваюсь к Cypress FX2.

 

Возможно ли на нем реализовать подобный обмен?

 

 

Ситема: АЦП - FPGA - USB (68013).

Работаю в режиме AsincSlaveFifo. Данные от АЦП постоянно пишу в 68013. Использую 2 ENDPOINT , один на передачу, другой - на прием.

Прием - изменение параметров сбора. При получении прерывания сбор прекращаю установкой сигнала PKTEND, чтобы закончился пакет .

При приеме от 68013 по IRQ (знаю, что придет 4 байта), прекращаю передачу в 68013 ,изменяю адрес FIFO, читаю ....

Возникла проблема: посланный код получаю лишь по второй посылке.

Т.е первое чтение - предыдущее значение, второе - правильный код.

Может кто подскажет?

Share this post


Link to post
Share on other sites

Осваиваю CY7C68013A

Требуется выдача/приём из/в ПК в FPGA со скоростью 60 МБит/с (либо выдача либо приём).

Насколько я понимаю необходимо сделать большой буфер на EP2 (4*1024) и слать туда данные, а на устройстве организовать SLAVE FIFO

Попробовал проект Archive.rar из http://electronix.ru/forum/index.php?showt...st&p=403476.

Насколько я понял там используется GPIF для приёма данных.

Хотелось бы сделать что-то подобное.

Для начала я хотел использовать пин IFCLK как выход - записываю в IFCONFIG 0xA3 - на пин IFCLK ничего не появляется - почему?

 

 

Share this post


Link to post
Share on other sites
Осваиваю CY7C68013A

...

Для начала я хотел использовать пин IFCLK как выход - записываю в IFCONFIG 0xA3 - на пин IFCLK ничего не появляется - почему?

Проверьте не закорочен ли вывод IFCLK.

Share this post


Link to post
Share on other sites
Осваиваю CY7C68013A

Требуется выдача/приём из/в ПК в FPGA со скоростью 60 МБит/с (либо выдача либо приём).

Насколько я понимаю необходимо сделать большой буфер на EP2 (4*1024) и слать туда данные, а на устройстве организовать SLAVE FIFO

Попробовал проект Archive.rar из http://electronix.ru/forum/index.php?showt...st&p=403476.

Насколько я понял там используется GPIF для приёма данных.

Хотелось бы сделать что-то подобное.

Для начала я хотел использовать пин IFCLK как выход - записываю в IFCONFIG 0xA3 - на пин IFCLK ничего не появляется - почему?

 

При ваших скоростях подойдет любой буфер (любая конфигура буферов кроме EP2 (4*1024)). Слать туда-сюда надо 2 ендпоинта: один IN, другой OUT. Вам подойдет 5ая конфигурация буферов ФИФО из описания CY7C68013A.

Скачайте с сайта Cypress AN61345 и приложения к нему, там все подробно изложено и используется как-раз 5 конфигурация. В прошивке контроллера не забудьте правильные VID PID прописать, иначе примеры не работают со Streamer.exe.

Edited by Силаев

Share this post


Link to post
Share on other sites

насчёт того что не работает IFCLK: я использую микросхему в 56-ти выводном корпусе и 21 нога у неё по даташиту RESERVED. поскольку макет делал сам, глядя на это RESERVED оставил ногу в воздухе... и уж после того как собрал ещё один макет со второй такой же микросхемой и получив те же результаты - я заострил на этом внимание и поглядев схему evalution board повесил ногу через 10к на корпус - после этого заработало. (на выходе ifclk имеется частота)

на данный момент получилось:

Slave FIFO + EP2 OUT Bulk (512k*4) - вижу данные на выходах, вижу флаги фифо. пока разбираюсь что за данные (и готовлю проект для ПЛИС), но при отправке большого файла через CyConsole глядя на флаг EP2Empty - вижу что он периодически возникает - то есть данные выдаются быстрее (частота выдачи 30 МГц), чем они приходят.

Почему передача данных не успевает? CyConsole не предназначена для потоковой передачи? или что то не так в железе?

Сейчас скачаю AN61345 - посмотрю какая там будет скорость.

P.S. Да, и микросхема греется, но терпимо - градусов под 60 - это нормально?

Edited by gumanoid

Share this post


Link to post
Share on other sites

на сайте cypress про AN61345 написано

"The document Implementing an FX2LP-FPGA Interface - AN61345 is currently being reviewed and updated."

Может кто нибудь, у кого есть выложит сюда?

Share this post


Link to post
Share on other sites
... Да, и микросхема греется, но терпимо - градусов под 60 - это нормально?

У меня CY7C68013A в 100-выводном корпусе не нагревается выше комнатной температуры. Точнее, на ощупь температура всегда ниже 36 градусов Цельсия.

Share this post


Link to post
Share on other sites
на данный момент получилось:

Slave FIFO + EP2 OUT Bulk (512k*4) - вижу данные на выходах, вижу флаги фифо. пока разбираюсь что за данные (и готовлю проект для ПЛИС), но при отправке большого файла через CyConsole глядя на флаг EP2Empty - вижу что он периодически возникает - то есть данные выдаются быстрее (частота выдачи 30 МГц), чем они приходят.

Почему передача данных не успевает? CyConsole не предназначена для потоковой передачи? или что то не так в железе?

Сейчас скачаю AN61345 - посмотрю какая там будет скорость.

P.S. Да, и микросхема греется, но терпимо - градусов под 60 - это нормально?

 

В AN61345 можно посмотреть скорость на прием из контроллера. Потребуется запустить Control Center и Streamer. В Streamer выбрать EP6 на прием, нажать старт. В Control Center выбрать тоже EP6. Во время работы Streamer можно жать Transfer Data в Control Center. Там можно контролировать целостность данных визуально. Поле должно заполняться значениями счетчика 00...FF без сдвигов. Если по USB подключен только FX2LP то у меня скорость до 40МБ/сек.

 

Запускал передачу со счетчика на 10 часов. Сбоев нет. Температура FX2LP не чуствуется пальцем. Возможно у вас старая версия FX2 без LP, он грелись сильно. Или реализован не чистый SlaveFifo, что-то занимает процессор контроллера и он греется.

 

ДЛя отладки хорошо вывести все сигналы интерфейса с ПЛИС на быстры логический анализатор. Я отлаживал на 4 канальном осциллографе. Каналов не хватало для удобной работы.

 

Share this post


Link to post
Share on other sites
P.S. Да, и микросхема греется, но терпимо - градусов под 60 - это нормально?

 

микросхема CY7C68013A 56-Pin SSOP slave_fifo внешняя синхронизация ep6 (4*512) ep2 (4*512).

грелась когда буфер заполнен единицами под 60 градусов, даже если передача не идёт.

Не знаю какая у них там логика работает, но решилось привязкой SLOE к работе SLWR и SLRD.

Может пригодится кому :rolleyes:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this