Jump to content

    

cy7c68013 и EEPROM

Значит выяснил такую штуку:

- с драйвером все нормально

- программа когда залита в ОЗУ работает без проблем

- когда заливаешь в еепром - не работает

 

Для создания файла для заливки в еепром используется следующая опция компиллера:

c:\cypress\usb\bin\hex2bix -i -f 0xC2 -o bulkext.iic bulkext.hex

 

Дело не в стирании еепром памяти - пробовал пустую ставить и заливать.

 

Все-таки откликнитесь кто может чото предполагать. Может дело в неправильной опции компилятора?

Share this post


Link to post
Share on other sites

Попробуй так ->

 

c:\cypress\usb\bin\hex2bix -i -p PID -v VID -f 0xC2 -c 0x00 -o bulkext.iic bulkext.hex

 

PID и VID соответственно подставиш нужные

 

и еще в проге звакоментирую ренумерацию она ненужна при загрузке с EEPROM

Share this post


Link to post
Share on other sites

А чо коментировать то, это убрать?:

 

#ifndef NO_RENUM

// Renumerate if necessary. Do this by checking the renum bit. If it

// is already set, there is no need to renumerate. The renum bit will

// already be set if this firmware was loaded from an eeprom.

if(!(USBCS & bmRENUM))

{

EZUSB_Discon(TRUE); // renumerate

}

#endif

 

// unconditionally re-connect. If we loaded from eeprom we are

// disconnected and need to connect. If we just renumerated this

// is not necessary but doesn't hurt anything

USBCS &=~bmDISCON;

Share this post


Link to post
Share on other sites

Гы))) Всем спасибо огромное - ну и лоханулся.......

Там в опциях компилятора в вкладке BL51 Locate есть такое

code range = надо 0x80-0x0FFF

xDATA range = надо 0x1000

 

 

Все тогда работает.............Но где можно про все это почитать, а?

Share this post


Link to post
Share on other sites
Все тогда работает.............Но где можно про все это почитать, а?

В описание по Keil, которое поставляется вместе с отладочным комплектом.

 

НЕ подскажу так как эти сам неуогда непользовался у меня прога с компа всегда загружается, фича такая в дрова встроенная(дрова сами делали т.к. у ципреса олни глючные).

Сильное заявление.

А в чём глюк интересно?

У меня вроде всё боле мене, может я чего не заметил. Использую CyUSB.sys и библиотеку под Borland C+.

Edited by левша

Share this post


Link to post
Share on other sites

Помогите разобратся ! У меня на плате CY768013A-128, АТмега-64,ПЛИСИна,АЦП.CY768013A-128 используется в режиме GPIF.Прошивка CY768013A-128 нормально заливается Сайпросовской консолью и работает.Но я хочу грузить прошивку из АТмега-64, при включении питания ,дальше Атмега по своему плану.Делаю файл *.iic с помощью утилиты hex2bix,заношу его в АТмегу,при повторном включении питания шиш, прошивка не работает ,подхватываются стандартный для CY768013A-128 VID и PID!Просто VID и PID с АТмеги грузятся без проблем.Подскажите что может быть? Я понимаю, что вариантов много но все-таки!?

Тему внимательно прчитал, при формировании *.iic делал все как советовали!http://electronix.ru/forum/style_emoticons/default/crying.gif

Share this post


Link to post
Share on other sites
Прошивка CY768013A-128 нормально заливается Сайпросовской консолью и работает.Но я хочу грузить прошивку из АТмега-64, при включении питания ,дальше Атмега по своему плану.Делаю файл *.iic с помощью утилиты hex2bix,заношу его в АТмегу,при повторном включении питания шиш, прошивка не работает ,подхватываются стандартный для CY768013A-128 VID и PID!

 

Непонятно про какую прошивку вы говорите. Если речь о фирмваре CY768013A, то совсем непонятно, каким образом вы ее пытаетесь грузить из Атмеги в CY768013A.

 

Как известно, фирмварь в CY768013A при подаче питания или после сброса может грузиться двумя способами:

- если в I2C EEPROM, пристегнутом к CY768013A , есть специальные метки, описанные в доке на CY768013A, то проц всасывает фирмварь из I2C EEPROM

- если меток нет, то проц всасывает фирмварь через USB, а из I2C EEPROM берет только дескрипторы USB, и то, если они там есть. А если I2C EEPROM вообще нет, то CY768013A по умолчанию использует дескрипторы Сайпреса, зашитые в кремень CY768013A.

 

Каким боком сюда Атмега приткнулась - ума не приложу.

Share this post


Link to post
Share on other sites
Непонятно про какую прошивку вы говорите. Если речь о фирмваре CY768013A, то совсем непонятно, каким образом вы ее пытаетесь грузить из Атмеги в CY768013A.

 

Как известно, фирмварь в CY768013A при подаче питания или после сброса может грузиться двумя способами:

- если в I2C EEPROM, пристегнутом к CY768013A , есть специальные метки, описанные в доке на CY768013A, то проц всасывает фирмварь из I2C EEPROM

- если меток нет, то проц всасывает фирмварь через USB, а из I2C EEPROM берет только дескрипторы USB, и то, если они там есть. А если I2C EEPROM вообще нет, то CY768013A по умолчанию использует дескрипторы Сайпреса, зашитые в кремень CY768013A.

 

Каким боком сюда Атмега приткнулась - ума не приложу.

Очень даже понятно!Возможно Вы не знаете но у АТмеги есть порт I2C и она вполне может притворятся загрузочной EEPROM.Так как АТмега полюбому используется в проекте то логично было бы использовать ее ресурсы для загрузки файла *.iic в CY768013A хотябы для того что бы не ставить лишние микросхемы в плату.

На счет специальных меток и тд...Вы ,что думаете я бы стал задавать свой вопрос не разобравшись ,что и как грузится в CY768013A? У меня проблема с загрузкой *.iic не потому что он не выгружается в CY768013A из Атмеги ,а потому что загруженная прошивка в CY768013A не работает,возможно неправильно формируется из хекса,возможно что то другое.Может кто сталкивался с подобной проблемой? Или обьясните подробно какие у кого были проблемы с формированием файла *.iic!

Share this post


Link to post
Share on other sites
у АТмеги есть порт I2C и она вполне может притворятся загрузочной EEPROM.

Тогда вопрос в том, насколько хорошо она "притворяется" EEPROM-ом.

 

Например, пока Атмега стартует и настраивает свой I2C порт, FX2 уже успевает посмотреть, есть ли EEPROM, не обнаруживает ее и работает с PID VID ро умолчанию. Чтобы избежать этого, Атмега до поры должна держать FX2 в ресете.

Share this post


Link to post
Share on other sites
Тогда вопрос в том, насколько хорошо она "притворяется" EEPROM-ом.

 

Например, пока Атмега стартует и настраивает свой I2C порт, FX2 уже успевает посмотреть, есть ли EEPROM, не обнаруживает ее и работает с PID VID ро умолчанию. Чтобы избежать этого, Атмега до поры должна держать FX2 в ресете.

Это врядли.Ведь простая загрузка своих PID VID при адресации 0х0С с Атмеги осуществляется без проблем ,значит инициализация I2C у Атмеги проходит достаточно быстро.Хотя я это конечно проверю ,возможно при возростании размера кода залитого в Атмегу меняется и время инициализации..Какие еще варианты?

Share this post


Link to post
Share on other sites
Какие еще варианты?

Еще один очевидный вариант - хэндшейк. Настоящий EEPROM выдает все байты без задержек. А Атмега, симулирующая EEPROM, наверняка неспособна обеспечить выдачу массива со скоростью 400 кбит/сек. Сколько-то первых байт, сидящих в буфере, она выдаст без задержки, а потом начнет тормозить. И вовсе не факт, что FX2 согласится ждать пока Атмега тормозит. Надо посмотреть доку, будет ли FX2 ждать, если Атмега начнет тормозить I2C, задерживая SCL. А также посмотреть, задерживает ли Атмега выдачу SCL, пока подкачивает данные в свои I2C буфера.

Share this post


Link to post
Share on other sites
Еще один очевидный вариант - хэндшейк. Настоящий EEPROM выдает все байты без задержек. А Атмега, симулирующая EEPROM, наверняка неспособна обеспечить выдачу массива со скоростью 400 кбит/сек. Сколько-то первых байт, сидящих в буфере, она выдаст без задержки, а потом начнет тормозить. И вовсе не факт, что FX2 согласится ждать пока Атмега тормозит. Надо посмотреть доку, будет ли FX2 ждать, если Атмега начнет тормозить I2C, задерживая SCL. А также посмотреть, задерживает ли Атмега выдачу SCL, пока подкачивает данные в свои I2C буфера.

Онозначно нет.Выдача масива 100 кбит\сек что является скоростью по умолчанию в cy7c68013.Вы меня проверяете?Конечно Атмега способна выдавать и 400 кбит\сек без всяких проблем но такая скорость не предусмотрена в cy7c68013 .Для этого надо изменить EEPROM Configuration ByteIf

"400KHZ=0, the I²C-compatible bus operates at approximately 100 KHz. If 400KHZ=1, the

I²C-compatible bus operates at approximately 400 KHz. This bit is copied to I²CCTL.0, whose

default value is 0, or “100 KHz”. Once the CPU is running, firmware can modify this bit"

Share this post


Link to post
Share on other sites

Бодовая скорость сама по себе не так уж важна. Важнее насколько быстро Атмега будет успевать класть очередной байт в буфер I2C, а также важен хэндшейк, который приостановит FX2 в те моменты, когда очередной байт еще не готов. Не знаю как устроен блок I2C в Атмеге, но думаю, что вряд ли он использует ПДП или напрямую маппится на двухпортовую память, это маловероятно. Скорей всего вы подгружаете байты в его буфер программно, или в поллинге, или - что более вероятно - в прерывании. В любом случае другие процедуры обработки прерываний могут тормозить перекачку на неизвестно какое время. Легче всего проблема решается если Атмега будет придерживать I2C пока очередной байт не готов. Альтернативно можно постараться обеспечить высший приоритет прерывaнию I2C в Атмеге, чтобы эта процедура обработки могла прерывать другие прерывания. Или отрубить Атмеге все прерывания кроме I2C, пока FX2 не загрузится.

Share this post


Link to post
Share on other sites

Ребята, как это чудо вообще прошивать? У меня есть девайс со съемной EEPROM и файл IIC. Вставляю девайс без EEPROM - вижу USB девайс без драйверов с VID=04B4 и PID=8613. Что делать дальше то?

 

Share this post


Link to post
Share on other sites
Ребята, как это чудо вообще прошивать?...

У Cypress есть две утилиты с помощью которых можно программировать микросхему EEPROM, подключенную к FX2LP:

  1. CyConsole ("CyConsole.exe") входит в состав CY3684 EZ-USB FX2LP Development Kit (скачайте и установите SETUP_FX2LP_DVK_1004.exe), а также в состав "SuiteUSB 3.4";
  2. Control Center ("CyControl.exe") - входит в состав "SuiteUSB 3.4".
Для Вас будет более полезен подфорум RS232/LPT/USB/PCMCIA/FireWire. В нем больше тем, посвященных вопросам использования контроллера FX2LP.

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