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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Ввод данных в компьютер., Бинарный поток.
SNR
сообщение Jul 19 2012, 09:15
Сообщение #1


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

Группа: Свой
Сообщений: 135
Регистрация: 17-05-09
Из: Kiev
Пользователь №: 49 171



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

Итак есть некое устройство которое на выходе имеет три провода: DATA, CLK ну и естественно GND.
Меандр тактирования CLK может идти c максимальной частотой 5,6МГц.
Подскажите, чем мне эти данные ввести в комп, чтоб потом записать в бинарный файл.
Может есть готовые модули, или собрать - не проблема или хоть подскажите в направлении чего "копать".

Большое спасибо!

Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jul 19 2012, 09:47
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Можно наверное на чипе от ftdi придумать что-нибудь а-ля SPI.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
SNR
сообщение Jul 24 2012, 10:14
Сообщение #3


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

Группа: Свой
Сообщений: 135
Регистрация: 17-05-09
Из: Kiev
Пользователь №: 49 171



Смотрел в сторону ФТ245 но наверное не потянет.

Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jul 24 2012, 10:45
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(SNR @ Jul 24 2012, 14:14) *
Смотрел в сторону..


мне кажется надо на внутреннюю шину выходить. 5МГц на одном проводе - это фигня для 64разрядной шины - около сотни килогерц. но в этом решении запас большой на будущее.

хотя КМК, USB должен вам помочь. особенно если поток не постоянен.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 24 2012, 10:45
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(SNR @ Jul 24 2012, 14:14) *
Смотрел в сторону ФТ245 но наверное не потянет.

а 2232 в режиме SPI?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Jul 24 2012, 13:03
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(iosifk @ Jul 24 2012, 14:45) *
а 2232 в режиме SPI?


А там в поток командные слова не придётся вставлять как у FT1248?


Цитата(SNR @ Jul 19 2012, 13:15) *
Итак есть некое устройство которое на выходе имеет три провода: DATA, CLK ну и естественно GND.
Меандр тактирования CLK может идти c максимальной частотой 5,6МГц.
Подскажите, чем мне эти данные ввести в комп, чтоб потом записать в бинарный файл.
Может есть готовые модули, или собрать - не проблема или хоть подскажите в направлении чего "копать".


Загонял через USB 2Мбита. AT91SAM7S64. Двойной буферизации по 16х2КБ хватило. Винда.
Главное, если выберете USB - максимальный размер буфера, ибо винда будет считывать когда ей вздумается, особенно на нетбуках и др. мобильных устройствах.
Go to the top of the page
 
+Quote Post
Danis
сообщение Jul 27 2012, 10:43
Сообщение #7


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(SNR @ Jul 19 2012, 13:15) *
Здравствуйте!
Тема для меня новая , поэтому попрошу особо не пинать. До этого все более с радиочастотными трактами занимался.

Итак есть некое устройство которое на выходе имеет три провода: DATA, CLK ну и естественно GND.
Меандр тактирования CLK может идти c максимальной частотой 5,6МГц.
Подскажите, чем мне эти данные ввести в комп, чтоб потом записать в бинарный файл.
Может есть готовые модули, или собрать - не проблема или хоть подскажите в направлении чего "копать".

Большое спасибо!


Если скорости хорошие нужны, можно подцепить к микроконтроллеру ОЗУ, считать сколько нужно в него и по нужному протоколу/интерфейсу, затем спокойно все перегнать в ПК, используя обычный USART/RS232. Любой нормальный терминал поддерживает запись бинарного файла.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
SNR
сообщение Jul 28 2012, 17:19
Сообщение #8


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

Группа: Свой
Сообщений: 135
Регистрация: 17-05-09
Из: Kiev
Пользователь №: 49 171



Вобщем пошарился по инету, подумал что проще и доступнее и пока решил оставить возможных два варианта.
Заказал даже платы на ебее. Итак возможных два варианта:
CY7C68013A + C8051F120 (100 Mips)
или
CY7C68013A + FPGA Altera Max 2 EPM240T100C5
то есть плиска или контроллер из последовательного потока делают параллельный 16 бит
и посредством ципруса в режиме (Slave Fifo) направляется через ЮСБ в компьютер.

Пока так.

Спасибо всем откликнувшимся!
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 28 2012, 18:09
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(SNR @ Jul 28 2012, 21:19) *
Вобщем пошарился по инету, подумал что проще и доступнее и пока решил оставить возможных два варианта.

Вообще, поскольку зашла речь про ОЗУ и микроконтроллер, то надо рассмотреть и третий вариант. Микроконтроллер с Ethernet...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
SNR
сообщение Jul 28 2012, 19:39
Сообщение #10


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

Группа: Свой
Сообщений: 135
Регистрация: 17-05-09
Из: Kiev
Пользователь №: 49 171



Цитата(iosifk @ Jul 28 2012, 21:09) *
Вообще, поскольку зашла речь про ОЗУ и микроконтроллер, то надо рассмотреть и третий вариант. Микроконтроллер с Ethernet...


Думал тоже над этим, да вот боюсь что не справлюсь с Ethernet.
А какие самые ходовые микроконтроллеры с Ethernet. Может тоже заказать тестовую платку?

Спасибо!
Go to the top of the page
 
+Quote Post
SNR
сообщение Aug 7 2012, 06:53
Сообщение #11


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

Группа: Свой
Сообщений: 135
Регистрация: 17-05-09
Из: Kiev
Пользователь №: 49 171



Остановился на CY7C68013A. Подкорректировал для него пришивку (режим Slave Fifo, асинхронный, 16 бит, запись по положительному стробу SLWR, точка одна - EP2, тип обмена - Bulk с пакетами 512 байт).
Преобразование из последовательного в паралельный будет на ПЛИС (сейчас сделал просто генератор последовательных чисел которые подаются на 16 битный паралельный вход, для теста.) С помощью стандартной USB Console проверяю - все в порядке, данные идут, байты увеличиваются как и положено (см. рис).

Собственно, теперь вопрос за компьютерной программой, которая будет непрерывно считывать и записывать этот поток на компьютер.
Тут сложнее так, как программировал очень давно на C++ Builder 6 и то не сложные вещи . Знаю что нужно использовать CyAPI. Может кто поделится примером, или старым исходником, буду очень признателен.

С ув. Олег

Сообщение отредактировал SNR - Aug 7 2012, 06:55
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 7 2012, 17:47
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(SNR @ Aug 7 2012, 09:53) *
...Может кто поделится примером, или старым исходником, буду очень признателен...

Так ведь, после установки SuiteUSB 3.4.7 в папке "\CyAPI\examples" есть примеры для CyAPI.lib.
Go to the top of the page
 
+Quote Post
SNR
сообщение Aug 8 2012, 14:38
Сообщение #13


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

Группа: Свой
Сообщений: 135
Регистрация: 17-05-09
Из: Kiev
Пользователь №: 49 171



Накрапал примитивную программу в Билдере 6. Читаю и записывваю в файл так:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
LONG len = 512*64;
unsigned char* InBuf = new unsigned char[len];

USBDevice->BulkInEndPt->SetXferSize(1000000);
USBDevice->BulkInEndPt->TimeOut=1000;

while (iStart)
{
if(USBDevice->BulkInEndPt) USBDevice->BulkInEndPt->XferData(InBuf,len);

FileWrite(FileHandle, InBuf, len);

Application->ProcessMessages();
}

}


Выявилась интересная особенность - в начале записи, записавши первые 2047 байт идет какой-то сдвиг и данные изменяются,
но потом все нормализуется ( См. рис ).
Я так понимаю что это как-то связано с буфером точки EP2. Как устранить этот сдвиг? Мне важно данные получать без этого разрыва в начале.

Спасибо!

Сообщение отредактировал SNR - Aug 8 2012, 14:40
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 8 2012, 19:41
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Вам нужно получить определенный объем данных (какой?) и затем обработать данные (записать в файл) или нужно непрерывно получать и обрабатывать данные, как это делает Ваша программа?

Цитата(SNR @ Aug 8 2012, 17:38) *
if(USBDevice->BulkInEndPt) USBDevice->BulkInEndPt->XferData(InBuf,len);

Целесообразнее проверять существует ли указатель на BulkInEndPt в начале функции Button1Click().
Записывать данные в файл нужно только тогда, когда чтение данных через USB было завершено успешно.
Вообще же, лучше выполнять цикл while (iStart) в отдельном потоке.
Go to the top of the page
 
+Quote Post
_pv
сообщение Aug 8 2012, 21:38
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(SNR @ Aug 7 2012, 12:53) *
Остановился на CY7C68013A.

а почему не ftdi всё-таки?
у FT232H или FT220X есть spi slave.
да и вообще можно с максимальной частотой 24..40МГц тупо цифровать состояние всех линий: и данных и клока. вот готовое устройство за 9$ с доставкой (внутри тот же CY7C68013A), а потом в компе уже программно разгребать где там перепад клока и какие в этот момент были данные, не очень красиво, зато дешево и сердито.

пара ссылок еще, вдруг поможет:
http://sourceforge.net/projects/sigrok/
http://sourceforge.net/projects/saleaelogicjj/
Go to the top of the page
 
+Quote Post

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

 


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


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