|
пример для cy7c68013, на keil c |
|
|
|
Feb 10 2006, 08:41
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
А че примеры с cy3681_ez_usb_fx2_development_kit не катят там и так все понятно без знания англицкого ! Если вдуруг этого нет, можно скачать с сайта. Вобщем задавайте вопросы коткретнее по проге, и более детально по IN ендпоиниту. Вот к примеру ихние екзамплы
Сообщение отредактировал MALLOY2 - Feb 10 2006, 08:37
Прикрепленные файлы
FX2.ZIP ( 122.75 килобайт )
Кол-во скачиваний: 80
|
|
|
|
|
Feb 12 2006, 12:58
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 4-10-04
Из: Москва
Пользователь №: 789

|
Цитата(torik @ Feb 10 2006, 15:07)  За это спасибо. Про примеры я спросил, потому что запутался уже - все поизменял и не помню где и чо. Тут еще другая проблема - взял пример массторедж и не скомпилить его, наверное кейл недает много кода компилить. Где можно найти лекарство и в чем еще могет быть проблема? пример (cy4611) проги беру отсюда: http://www.efo.ru/doc/Cypress/Cypress.pl?1134массторедж это отдельная тема, если на ерунде спотыкаетесь не советую в эти дебри лезть, даже имея крякнутый кейл, и вообще эта тема уже обсуждалась здесьрекомендую вам прочесть её, там много дельных советов.
|
|
|
|
|
Feb 14 2006, 15:00
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Цитата(torik @ Feb 14 2006, 14:25)  Вопрос поконкретнее: В примере программы boolkext есть такой код: void TD_Init(void) // Called once at startup { // we are just using the default values, yes this is not necessary... EP1OUTCFG = 0xA0; EP1INCFG = 0xA0; SYNCDELAY; // see TRM section 15.14 EP2CFG = 0xA2; //out SYNCDELAY; EP4CFG = 0xA0; //out SYNCDELAY; EP6CFG = 0xE2; //in SYNCDELAY; EP8CFG = 0xE0; //in
counts twice SYNCDELAY; EP2BCL = 0x80; // arm EP2OUT by writing byte count w/skip. SYNCDELAY; EP2BCL = 0x80; SYNCDELAY; EP4BCL = 0x80; // arm EP4OUT by writing byte count w/skip. SYNCDELAY; EP4BCL = 0x80;
// enable dual autopointer feature AUTOPTRSETUP |= 0x01;
Rwuen = TRUE; // Enable remote-wakeup }
Понятно что точки 2 и 4 настраиваются как двойные булочные. Но зачем тут включается точка 1? И еще - в EPхBCL записывается число 80 - почему? вроде надо указывать 512, а не 128, а в старший байт ничо не пишется. Пишите откуда был выдран код. 1) точка скорее все го внутри программы завязана кольцом так для при мера не берите в голову. Или скажем через нее можно всекие команды реализовать или UART FX2 в комп загать вобщемм юзайте его как хотите но он не имеет аппаратного FIFO в отличии остальных. Но я для комманд советую использовать 0 точку. 2) на енпоинты 2,4,6,8 имеется аппаратное фифо которо может работать в MASTER (GPIF) или SLAVE режиме и выходят они на внешний мир и впринципе работают без участия CPU (ядра 8051). Но можно настроить FX2 таким образом что он может иметь доступ к FIFO. Вот в этом режиме бит 7 регистра EPхBCL используется для потверждения что ты обработал данный пакет и готов принимать следующий. Это применимо только для IN ендпоинтов, для OUT там указывается кол-во передаваемых данных. Это подробно описана в "узвермануале" в разделе 8.6.2.4 EP2BCH:L, EP4BCH:L, EP6BCH:L, EP8BCH:L
|
|
|
|
|
Feb 15 2006, 10:45
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(torik @ Feb 15 2006, 19:56)  дык я и говорю - кудыть эти строки вставить? Интересуюсь, Вы наобум работаете, без документации, или по-аглицки читать не желаете? Цитата(torik @ Feb 15 2006, 19:56)  Почему ошибка, да в сюконсоле, когда передаю с компа подряд в точку оут больше 512ибайтовых пакетов, не читая их в контроллере, сюконсоль пишет типа трансфер файлд, т.е. не могет передать последний пакет. Ессно, куда ж она его передаст, ежели в приемнике буфер забит? Хост попингует ендпойнт и отвалится по таймауту, чего ж тут странного-то. Не вечно же ему этот пакет в буфер пихать, у него других дел полно. Цитата(torik @ Feb 15 2006, 19:56)  А если в готовом устройстве важнее последний пакет от компа, а ситуация с переполнением могет возникнуть, то надо это предусмотреть. Че уж там "предусматривать", это только сопли по окну разводить. Читать надо то что с хоста прислали. Не нужна эта информация - выбросить ее нафиг, но все ж прочитать необходимо чтоб освободить буфер. И побыстрее освободить, лучше всего по прерыванию, чтоб не создавать ненужный пингующий траффик. USB канал не резиновый.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|