Jump to content

    
Sign in to follow this  
anton

Работа с USB2.0 SX2

Recommended Posts

Спасибо, сам к тому же склоняюсь, просто я пока слепо бреду во всем этом наборе микросхем и т.д. что выражается в рождении нескольких тем на этом форуме :)

Но вопрос тот же остается по инструментарию и т.д.

Мы сразу сделали п/п c SX2 56SSOP и ПЛИС под свой проект, на ней и отлаживались. Впоследствие оказалось, что SX2 с легкостью меняется на FX2LP без переделки п/п, отделались изменениями в программе ПЛИС (она стала ЗНАЧИТЕЛЬНО проще).

Share this post


Link to post
Share on other sites
Мы сразу сделали п/п c SX2 56SSOP и ПЛИС под свой проект, на ней и отлаживались. Впоследствие оказалось, что SX2 с легкостью меняется на FX2LP без переделки п/п, отделались изменениями в программе ПЛИС (она стала ЗНАЧИТЕЛЬНО проще).

 

А вы конфигурировали её с плиса? Нехило! Пришлось, поди, какое-нибудь мелко-процессорное ядро использовать?

Имхо, значительно проще и дешевле было бы сразу внешний МК пристроить...

 

Кстати, вопрос: как защитить от чтения программу этого 51го МК в FX2LP?

Share this post


Link to post
Share on other sites
А вы конфигурировали её с плиса? Нехило! Пришлось, поди, какое-нибудь мелко-процессорное ядро использовать?

Имхо, значительно проще и дешевле было бы сразу внешний МК пристроить...

 

Кстати, вопрос: как защитить от чтения программу этого 51го МК в FX2LP?

Да просто все оказалось, т.к. конфигурация достаточно фиксированная то и дело закончилось конечным автоматом без всяких мелко-процессорных ядер :) В EPM1270 все это дело вместе с арбитром и буферными регистрами заняло 109 LC. Использовать еще и внешний МК вообще смысла не было. Только в SX2, если спользуется автоматическая выдача пакетов по заполнению FIFO, не стоит забывать о FullSpeed/HighSpeed, т.к. регистры надо будет перестраивать динамически под нужную длину (64/512), но и это все решается :)

 

Защитить от чтения программу во встроенном 51ом МК нельзя, т.к. она в любом случае внешняя - грузится или из I2C EEPROM или с USB.

Share this post


Link to post
Share on other sites

Warlord писал:

Какова ширина шины фифо?? Разницы как работать с SX2 синхронно или асинхронно ИМХО нет. Дескриптор тоже рояли не играет.

Попробуйте проект Streamer и поиграйте параметрами, какую скорость он покажет в Вашем случае??

 

А кому-нибудь удавалось запустить проект streamer на SX2? Ищу информацию на эту тему.

У меня запускается и даже даёт нажать "Start", но измерений не происходит - скорость всегда 0.

Может быть дело в прошивке МК или конфигурации SX2?

Share this post


Link to post
Share on other sites

Всем добрый вечер. Только начал работать с SX2 есть проблемы которые не могу понять.Плату собирал сам на ней SX2 подключен к ПЛИС, установлен микроконтроллер Atmega 64 то-же подключен к ПЛИС портами А,В и частично С, установлен отдельный высоко скоросной АЦП- подключен к ПЛИС и 3 канала гальванической развязки для отдельного АЦП и двух каналов АЦП Atmega 64.В SX2 дискриптор грузится через TWI микроконтроллера Atmega 64 с его флеш. Дискриптор гружу по умолчанию из тех. описания .SX2 нормально определяется, устанавливаю драйвер CyUSB. Дальше проблемы ....Нужен обмен около 3-х МГц по 16 бит ,в начале от РС настройки и старт а дальше в комп.

Не могу разобратся с обменом.Прошу помочь.

1.Нужно ли загружать дополнительные настройки в регистры кипруса через командный интерфейс для моего обмена или можно обойтись по умолчанию ?

2.У меня состояние всех флагов FLAG(А,В,С) "1" и не меняется,Прошивка в ПЛИС устанавливает FIFOADR

(2..0)- 001 ,с помощью EZ-USB Control Panel подаю данные в конечную точку EP4-буфер заполняется - флаги не меняются... Как же должно быть?

3.Может кто нибуть" просто" обьяснить особености обмена или какие и как менять-читать управляюшие сигналы для моего конкретно обмена (с английским туго ,из тех. описания много го не понимаю думаю, что в конце концов разберусь методом "научного тыка" но очень ограничен во времени).Очень прошу помочь,и подсказать,мне еще аналоговую часть настраивать....без ввода в РС никак! java script:emoticon(':unsure:', 'smid_24')Заранее спасибо!

Share this post


Link to post
Share on other sites
проблемы ....Нужен обмен около 3-х МГц по 16 бит ,в начале от РС настройки и старт а дальше в комп.

Не могу разобратся с обменом.Прошу помочь.

1.Нужно ли загружать дополнительные настройки в регистры кипруса через командный интерфейс для моего обмена или можно обойтись по умолчанию ?

 

Да вроде бы можно и на дефолтных... Двух ендпайпов IN и OUT для почти любой задачи достаточно.

 

2.У меня состояние всех флагов FLAG(А,В,С) "1" и не меняется,Прошивка в ПЛИС устанавливает FIFOADR

(2..0)- 001 ,с помощью EZ-USB Control Panel подаю данные в конечную точку EP4-буфер заполняется - флаги не меняются... Как же должно быть?

 

Должны меняться. А откуда известно, что он заполняется?

 

3.Может кто нибуть" просто" обьяснить особености обмена или какие и как менять-читать управляюшие сигналы для моего конкретно обмена (с английским туго ,из тех. описания много го не понимаю думаю, что в конце концов разберусь методом "научного тыка" но очень ограничен во времени).Очень прошу помочь,и подсказать,мне еще аналоговую часть настраивать....без ввода в РС никак! java script:emoticon(':unsure:', 'smid_24')Заранее спасибо!

 

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

Share this post


Link to post
Share on other sites
Да вроде бы можно и на дефолтных... Двух ендпайпов IN и OUT для почти любой задачи достаточно.

Должны меняться. А откуда известно, что он заполняется?

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

По умолчанию буфер в SX2 - 1кБ (т.е. на два фрейма для HighSpeed USB) на каждый эндпоинт и пока он не заполнится флаг FIFO Full не выставится.

Share this post


Link to post
Share on other sites

По умолчанию буфер в SX2 - 1кБ (т.е. на два фрейма для HighSpeed USB) на каждый эндпоинт и пока он не заполнится флаг FIFO Full не выставится.

[\quote]

 

Выставится, если отправить хотя бы 2 пакета длиной хотя бы 1 байт. 1кБ при этом, естественно, не заполнится.

Кстати! Флаг FIFO-empty после енумерации и до всяких передач должен быть в нуле.

Если такого нет - то может адрес всё же неправильно выставлен?

Share this post


Link to post
Share on other sites
Всем добрый вечер. Только начал работать с SX2 есть проблемы которые не могу понять.Плату собирал сам на ней SX2 подключен к ПЛИС, установлен микроконтроллер Atmega 64 то-же подключен к ПЛИС портами А,В и частично С, установлен отдельный высоко скоросной АЦП- подключен к ПЛИС и 3 канала гальванической развязки для отдельного АЦП и двух каналов АЦП Atmega 64.В SX2 дискриптор грузится через TWI микроконтроллера Atmega 64 с его флеш. Дискриптор гружу по умолчанию из тех. описания .SX2 нормально определяется, устанавливаю драйвер CyUSB. Дальше проблемы ....Нужен обмен около 3-х МГц по 16 бит ,в начале от РС настройки и старт а дальше в комп.

Не могу разобратся с обменом.Прошу помочь.

1.Нужно ли загружать дополнительные настройки в регистры кипруса через командный интерфейс для моего обмена или можно обойтись по умолчанию ?

2.У меня состояние всех флагов FLAG(А,В,С) "1" и не меняется,Прошивка в ПЛИС устанавливает FIFOADR

(2..0)- 001 ,с помощью EZ-USB Control Panel подаю данные в конечную точку EP4-буфер заполняется - флаги не меняются... Как же должно быть?

3.Может кто нибуть" просто" обьяснить особености обмена или какие и как менять-читать управляюшие сигналы для моего конкретно обмена (с английским туго ,из тех. описания много го не понимаю думаю, что в конце концов разберусь методом "научного тыка" но очень ограничен во времени).Очень прошу помочь,и подсказать,мне еще аналоговую часть настраивать....без ввода в РС никак! java script:emoticon(':unsure:', 'smid_24')Заранее спасибо!

Обен запустил. Проблема была в WAKEUP: подал вместо нуля еденицу и еше промухал INCONFIG внес в него в ходе эксперементов изменения и забыл вернуть значение по умолчанию.Правда появилась другая проблема: загрузка в плату из компа идет нормально (пишу через EZ-USB Control Panel во вторую точку все выгружается без проблем,на ПЛИС прошит цикл чтения из SX2 длительностью по времени 8МГц) нажимаю клавишу Trancfer Data огромное количество раз- косяков нет,а при записи в комп(пишу в 6 точку)С через несколько нажатий в проге EZ-USB Control Panel клавиши Trancfer Data (количество считываемых байтов 65000 за одно нажатие) SX2 пропадает как устройство при этом микросхема очень горячая.Цикл записи в SX2 прошитый в ПЛИСЕ выгружает простой 16 битный счетчик и по времени равен 5,5 МГц,считаные данные без косяков.

У меня на плате:

-XTALOUT-24МГц от внешнего генератора;

-READY-используется для запуска чтения (цикл записи запускается по передаче пятерки);

-IN#-в воздухе;

-RESET#-через резистор 100Ком на 3.3В и кондер 10 МФ на землю;

-IFCLK-в воздухе;

-Reserved-на землю;

-WAKEUP-на землю;

остальные сигнальные используются так как описано в документации и запаяны непосредственно на ПЛИС.Вся шина данных SX2 на прямую запаяна на ПЛИС. Питание на ПЛИСе 3.3В.

МОЖЕТ надо поставить резисторы между ПЛИС и SX2 ? Или я всетаки что-то в цикле записи промухал?

Стабилизаторы на плате IRU1010-33(1ампер),для ПЛИС и для SX2 отдельно.

В чем проблема?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this