Перейти к содержанию
    

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

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

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

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

 

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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

#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;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

xDATA range = надо 0x1000

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

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

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

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

Изменено пользователем левша

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помогите разобратся ! У меня на плате 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошивка 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.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Непонятно про какую прошивку вы говорите. Если речь о фирмваре 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!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у АТмеги есть порт I2C и она вполне может притворятся загрузочной EEPROM.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие еще варианты?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще один очевидный вариант - хэндшейк. Настоящий 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"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребята, как это чудо вообще прошивать?...

У 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...