| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Проблем с USB микроконтролер CY7C68013 http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=5710 |
Страница 1 от 1 |
| Автор: | mountaineer [ Чет Апр 17, 2008 7:41 pm ] |
| Заглавие: | Проблем с USB микроконтролер CY7C68013 |
Здравейте, От известно време се боря с това животно и нещо не се получава както трябва. По едно време захапа, но след това пак не ще. Ето каква е постановката: Kит на Digilent - X-Board със CPLD Xilinx CoolRunnerII. Има изведен JTAG, има и възможност за конфигуриране чрез USB. Това го прави въпросният микроконтролер, който емулира JTAG-а и същевременно може да извършва други задачи (мерене на температура и на консумиран ток от ядрото на CPLD-то през SPI... не е важно това). Контролерчето на Cypress си зарежда програмата и дескрипторите от EEPROM 24LC128 и след това си изпълнява всичко от вътрешния RAM. Тази разновидност е най-малката, с 56 пина, и няма външна шина. Изводите за Slave FIFO (8 data бита, флагове, стробове) на Cypress-а са навързани към CPLD-то, като в нормален режим не се използват. Тези USB контролери могат да работят и без външна памет. В този случай при включване се държат като някакво default USB drive и си имат фабрични VID и PID на Cypress. Явно за тази цел на кита има оставено място за джъмпър, който да прекъсне SDA-то на външния EEPROM. Прекъснах пистата и запоих рейка на това място. Като е сложен джъмпъра си разпознава устройството като Digilent Onboard нещо си и всичко е OK. И тук идва тънкият момент - като е махнат джъмпъра трябва да види default USB drive-a на FX2. Обаче това общо взето не става. По едно време някак си стана, разпозна го, сложих му драйвери на Cypress и всичко си беше наред - програмката за debug и за наливане си го виждаше, разпознаваше му и конфигурация и endpoint-и... обаче после пак умря. Някакви идеи защо се държи така? Правих какво ли не с тези пинове, дето са изведени към CPLD-то, особено много подозиран INT0, да не би да влиза в някакво прекъсване заради него... не е това. RESET-ът му е вързан на захранването през резистор, има и кондензатор към масата (захранването е 3,3 волта от един регулатор, който е вързан на 5-те волта на USB-то). Между другото, явно бозата вижда нещо, но казва, че има VID 0000 и PID 0000 и казва, че не работи както трябва device-а и дотам. Слагам джъмпъра, включвам кабела и си работи с firmware-а на Digilent нормално. |
|
| Автор: | ps66 [ Пет Апр 18, 2008 9:07 am ] |
| Заглавие: | |
преди 4-5г. работих с кита на Cypress CY3681 за FX2 - нямал съм проблеми: - в EEPROMA трябва да имаш записан VID&PID на твоето у-во или firmware-то ! - след като windows-a го разпознае - драйвера ти трябва да download-ва софтуера в RAM-a (от където и се изпълнява!) .. протокола го има описан (сравнително елементарен е ... ) мина доста време от тогава - модифицирах оригиналните USB драйвери от Cypress (наскоро гледах че са ги зарязали ...) имаха много проблеми ... и се нагледах на сини екрани докато ги стабилизирам Погледни pdf-а, ... но май без EEPROM в който има поне VID&PID няма как да тръгне ! |
|
| Автор: | mountaineer [ Пет Апр 18, 2008 9:33 am ] |
| Заглавие: | |
Ето какво пише в PDF-ката на CY7C68013: USB Boot Methods During the power-up sequence, internal logic checks the I2C-compatible port for the connection of an EEPROM whose first byte is either 0xC0 or 0xC2. If found, it uses the VID/PID/DID values in the EEPROM in place of the internally stored values (0xC0), or it boot-loads the EEPROM contents into internal RAM (0xC2). If no EEPROM is detected, FX2 enumerates using internally stored descriptors. The default ID values for FX2 are VID/PID/DID (0x04B4, 0x8613, 0xxxyy). Надявах се да го тръгна по този начин (и за малко стана). Иначе още не съм си уточнил firmware-а, за да пиша драйвери, а и няма да използвам EZ-USB, дето при всички положения налива програмата през USB, тя ще си е на EEPROM. Просто докато това стане исках да пробвам някои неща. Правя тази простотия с този CPLD кит, защото платката ми още не е готова. Там конфигурацията е: FX2 - CPLD - DSP, като CPLD-то съгласува мултиплексирания паралелен порт на ADSP-21261 със Slave FIFO-то на Cypress-a... Може би всичко е заради кита на Digilent, може нещо да са направили, за да не барат user-ите където не им е работа, все пак тези неща изобщо не са документирани (освен в схемата на кита). Благодаря за отговора |
|
| Автор: | ps66 [ Пет Апр 18, 2008 10:51 am ] |
| Заглавие: | |
тогава с 0x04B4, 0x8613 трябва да работи - при теб явно има някакъв комуникационен проблем на твое място бих го закачил на друг компютър/хъб/порт ... проблема не е софтуерен - защото още не е опрял до драйверите иначе поне за мен даунлоадването на firmware-то е голямо предимство (според случая де |
|
| Автор: | mountaineer [ Пет Апр 18, 2008 1:47 pm ] |
| Заглавие: | |
Току що открих какво не му е наред. На схемата на кита всичко е ОК, но в действителност този джъмпър разделя SDA линията така, че изводът на микроконтролера остава висящ. Pull-up резисторът е от страната на EEPROM-а. Това го видях като разгледах платката по-подробно. Сега с един допълнителен pull-up резистор заспа - винаги си го вижда като "Cypress FX2 without EEPROM" и после мога да си го използвам като такова устройство с неговите си generic драйвери и програмката за развой на Cypress. Пореден урок за това как дребните камъчета обръщат колата... |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|