Jump to content

    

Работа с USB2.0 SX2

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

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

Мы сразу сделали п/п 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

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