Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Требуется помощь по CY7C68013
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Rendom
Уважаемые пользователи помогите кто знает.
Потребовался в ряде задач достаточно простой USB-контроллер работающий в slave-fifo режиме в качестве переходного элемента между ПЛИС и компьютером, и немного покопавшись на просторах интернета остановили свой выбор на данной модели. В разводке платы вроде проблем нет- компьютер микросхему на плате видит, прошивку в нее заливает без проблем. При проверке режима Bulkloop со стороны компьтера так же проблем не наблюдается- при запуске Cypress консоли микросхема видна, прошивка заливается и работает по всем 4м эндпоинтам, но при этом ножки флагов не меняют своего состояния, т.е. как при пустом буфере, так и при полностью заполненном флаги В и С имеют уровень логической 1. Вполне возможно что-то не так делаю, помогите разобраться:

1. Подключаю плату по USB-кабелю к компьютеру.
2. Через Cypress Console заливаю прошивку bulkloop идущую в комплекте с USB dev. Studio. при этом микросхема меняет свое название на bulkloop device
3. На ПЛИС выставлен необходимый мне fifoadr. Начинаю с компа гнать данные в контроллер пока не появится сообщение о ошибке трансфера при попытке отправить пакет даже единичной длинны (как я понимаю в этом случае буфер заполнен и записать туда данные уже невозможно) при этом смотрю состояние флагов пусто и заполненно (FLAGB и FLAGC) с помощью осцилографа- их состояние остается неизменным при любом колличестве данных отправленны с компьютера.
4. При попытке записи в контроллер со стороны ПЛИС и прочтения на компьютере возникает аналогичная проблема- сколько бы данных не слал с ПЛИС, флаги не меняются и комп не может прочитать данные с буфера как будто он пуст).

Управление с ПЛИС осуществляю по ножкам- SLRD,SLWR,PKTEND,SLCS,FIFOADR И IFCLK.
jur
Цитата(Rendom @ Jul 30 2007, 19:50) *
... но при этом ножки флагов не меняют своего состояния, т.е. как при пустом буфере, так и при полностью заполненном флаги В и С имеют уровень логической 1.
Такое чувство, что режим slave-fifo сконфигурирован неправильно... Т.к. биты флагов обычно срабатывают верно. Но только при условии, что адрес ФИФО соответствующий. Можно порекомендовать попробовать "пристегнуть" флаги постоянно (т.е. чтобы выводы флагов микросхемы были назначены фиксированно, это можно задать в соответствующих регистрах).
Rendom
Т.е. задать фиксированно?
Насколько я понял из даташита данные флаги отражают состояние выбранного в данный момент эндпоинта или я что-то не так понял?

И наиболее волнующий вопрос: возможна ли корректная работа по slave-fifo с использованием прошивки bulkloop идущей в комплекте c USB Dev. Studio или она только в качестве демонстрационного образца не пригодного для работы с внешними устройствами (т.к. по специфики работы достаточно далек от ассемблера и разбираться с тонкостями 8051 процессора нет ни времени, ни особого желания, поэтому хотелось бы достать готовую прошивку под требуемую задачу)?
Warlord
C прошивкой BULKLOOP нельзя работать в режиме Slave-Fifo, поэтому и флаги у Вас не "работают" и комп ничего считать не может. Чтобы работать с фифо, Вам надо написать свою прошивку именно для этого режима. Там задаются и активные уровни сигналов и поведение флагов. Из готовых прошивок я что-то не припомню, чтоб было что-то подходящее...
Rendom
Тогда возникает следующий вопрос-достаточно ли для написаня прошивки сделать в GPIF Designer диаграммы требуемой работы fifo после чего конвертировать их в hex и залить в кристалл?
Warlord
Нет, не достаточно. GPIF Designer сгенерит только массив вэйвформ и процедуру инициализации, а сам алгоритм работы камня придется писать руками...
Rendom
Ясно.
НА сайте cypress нашел интересный pdf: implementing_an_8_bit_asynchronous_interface_with_fx2lp___an6077_12.pdf в котором приводится код для мастера и слейва. Если контроллер будет работать как слейв, то насколько я из него понял мне досточно использовать только авто режим, без мануала. Так же там приводится код для слейва который я не совсем понял куда помещать: в файл сгенеренный GPIF Desigener или в новый, который подключать в тот же проект?
Warlord
Если Вы не умеете программировать - то советую научиться. Почитайте мануал на камень, возьмите Keil, какой-нить проект из примеров и посмотрите что к чему, после этого подобные вопросы отпадут сами собой.
Rendom
Продолжаю разбираться с данным контроллеом и возник очередной вопрос- почему при заливки Screamer из примеров происходит корректная заливка прошивки, корректное определение типа устройства, а потом при установки драйверов выдается ошибка 10 (невозможна инициализация устройства)?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.