Jump to content

    

Проблема с cy7c68013a

А что для этого делать то надо?

Драйвер её не видит, потому что она уже имеет другой VID-PID.

Я делал так - взял .inf файл драйвера, прописал туда новый pid/vid (который в микросхеме теперь) и драйвер поставился и сайпресовская консоль плату подцепила.

 

Спасибо за ответы, так и понял, что с отладкой на маленьком мк не получится..

 

У меня еще проблема - при загрузке .hex проекта в RAM и резета плата не опознается и видится как pid0000/vid0000.. В чем проблема может быть? Вроде как из рам прошивка должна работать?

Edited by Artkop

Share this post


Link to post
Share on other sites

В прошивке при инициализации поставьте:

EZUSB_Discon(TRUE); // инициируется переподключение

Никакого ресета не нужно.

Плата стартует автоматом после загрузки hex-файла и переподключается с новыми vid/pid.

 

Если не работает (pid0000/vid0000) - значит в прошивке ошибка.

Share this post


Link to post
Share on other sites

Проверьте дескрипторы... И да, почему-то в сайпресовском дефолтном фреймворке EZUSB_Discon() вроде как не вызывается....

Edited by Kaamos

Share this post


Link to post
Share on other sites

C дескрипторами все ок, та же прошивка, зашитая в ром, работает и определяется как надо. Возможно что то с адресацией не то, я в этом еще не очень разобрался.. И да, посмотрю EZUSB_Discon(), спасибо!

Share this post


Link to post
Share on other sites

Еще раз подниму тему.

Есть CY7C64713, Это вроде примерно то же что и 68013. Она грузится из подключенной к ней I2C EEPROM. Надо не отключая EEPROM залить в неё новую прошивку через USB. Что-то не получается. В драйвере менял две строчки с VID-PID на те, что контроллер имеет после загрузки. Драйвер не устанавливается, винда говорит что там отсутствуют сведения об оборудовании, консоль контроллер не видит. Если отключить EEPROMку то все работает (с VID-PID по умолчанию). Это вообще возможно, залить прошивку через USB после того как контроллер загрузился из EEPROM ? Нет ли в нем каких-то блокировок на этот случай.

Share this post


Link to post
Share on other sites
Еще раз подниму тему.

Есть CY7C64713, Это вроде примерно то же что и 68013. Она грузится из подключенной к ней I2C EEPROM. Надо не отключая EEPROM залить в неё новую прошивку через USB. Что-то не получается. В драйвере менял две строчки с VID-PID на те, что контроллер имеет после загрузки. Драйвер не устанавливается, винда говорит что там отсутствуют сведения об оборудовании, консоль контроллер не видит...

Скорее всего есть ошибки в *.inf файле. Если выложите Ваши *.inf и *.hex файлы, то могу проверить на своем модуле.

 

 

... Это вообще возможно, залить прошивку через USB после того как контроллер загрузился из EEPROM ? Нет ли в нем каких-то блокировок на этот случай.

Ну, у Вас же получилось. :) И это стандартный путь для загрузки программы монитора от Cypress для последующей отладки firmware через последовательный порт. Так что, никаких блокировок быть не может.

Проблема может возникнуть лишь в случае, когда в EEPROM записана сбойная программа и Windows перестает видеть устройство USB. Да и то, только если не предусмотрена возможность отключать EEPROM. Например, с помощью установки джампера.

Share this post


Link to post
Share on other sites
Скорее всего есть ошибки в *.inf файле. Если выложите Ваши *.inf и *.hex файлы, то могу проверить на своем модуле.

Я выложу только .inf файл, потому что проблемы с ним. Мой .hex работает, но до него дело не доходит, я не могу его загрузить потому что консоль не видит контроллера.

Еще раз попробую обьяснить в чем проблема: если я отключаю EEPROM от CY7C64713 то со стандартным драйвером винда видит моё устройство как Cypress EZ-USB FX2LP - EEPROM missing , консоль работает, свой хекс могу загрузить, всё работает. Если я подключаю EEPROM то контроллер после включения питания грузит из него свою прошивку, она мне не известна, винда теперь его видит как USB-HID совместимое устройство и использует свой драйвер. Теперь контроллер имеет VID 4242 PID 0200. Я в цайпрессовском драйвере исправляю пару строчек на этот пид. То что было заккоментировал, изменил VID-PID на нужный.

Вот как это теперь выглядит.

 

[Cypress]

; Cypress FX2LP default ID

;%VID_04B4&PID_8613.DeviceDesc%=CyUsb, USB\VID_04B4&PID_8613

%VID_4242&PID_0200.DeviceDesc%=CyUsb, USB\VID_4242&PID_0200

 

[strings]

PROVIDER="Cypress"

MFGNAME="Cypress"

CYUSB_INSTALL="Cypress Generic USB Driver Installation Disk"

;VID_04B4&PID_8613.DeviceDesc="Cypress EZ-USB FX2LP - EEPROM missing"

VID_4242&PID_0200.DeviceDesc="My USB Example DevicYES"

CyUsb.SvcDesc="Cypress Generic USB Driver"

 

И теперь я пытаюсь заставить винду обновить драйвер для HID-устройства, тычу её в этот исправленный .inf она говорит что в этом файле отстутствуют сведения об оборудовании, драйвер не ставит, консоль контроллер не видит, ничего залить в него не могу. Help прочитал уже много раз, не помогает. Возможно проблема не в .inf а в том что я что-то не правильно делаю. А что не так ну ни как не пойму.

cyusb.inf.zip

Share this post


Link to post
Share on other sites

Если Вы хотите просто перепрограммировать EEPROM, то достаточно будет отключить EEPROM до подключения питания к CY7C64713. Затем подключить питание к контроллеру и затем подключить EEPROM. После подключения к шине USB Windows будет видеть Ваше устройство как "Cypress EZ-USB FX2LP EEPROM missing". С помощью CyConsole можно "залить" в EEPROM Вашу прошивку (файл *.iic).

 

Вопрос в том, что означает "отключить/подключить EEPROM" для Вашего модуля. Для моего модуля это означает установить/снять джампер XJ1 (см. "EEPROM.gif").

 

Если же Вы хотите, с помощью CyConsole, сохранить содержимое EEPROM на диске перед записью своего файла *.iic, то, действительно, нужно заменить драйвер Windows для HID устройства на драйвер "CyUSB.sys". Возможно Ваши неприятности связаны с использованием предыдущих версий "CyUSB.sys". Я использовал "CyUSB.sys" из SuiteUSB.NET 2.0. Вначале попробовал заменить драйвер для USB Debug Adapter от SiLabs. Получилось. Тогда решил усложнить задачу. Загрузил в контроллер C8051F340 в CP2201EB от SiLabs их же пример для HID устройства (\USB_HID\BlinkyExample). Только VID и PID заменил на Ваши. Тоже получилось. С помощью Adobe Captivate 3 записал процесс установки. В архиве "to_sloq.rar" есть две папки. Папка "SuiteUSB.NET 2.0" содержит "CyUSB.sys" и отредактированный "CyUSB.inf". В папке "to_sloq_demo" запустите "to_sloq_demo.htm" - увидите процесс замены драйвера на моем компьютере.

post-5644-1221682725_thumb.jpg

to_sloq.rar

Share this post


Link to post
Share on other sites

To Konst_777

Спасибо за помощь, попробую по вашему. Я не хочу перезаписывать существующую прошивку во внешней пзу. Я хочу просто её заменить в ОЗУ контроллера на свою, во время подключения устройства к компу, и то не всегда. Родная прошивка должна остаться не тронутой. "отключить/подключить EEPROM" означает поднимание и обратная припайка ноги SDA EEPROM. Это очень не удобно, я хочу чтобы чтобы эта операция не нужна была.

 

 

YES! Заработала консоль с твоим драйвером!

Винда перестала ругаться на отсутствие сведений об оборудовании. Стала устанавливать драйвер. Но тоже получилось не с первого раза. Оказывается она находит два подходящих драйвера, свой HID и Cypress. И по умолчанию ставит свой. Чтобы поставить от Cypress надо его специально выбрать ручками, это не сразу очевидно.

 

Ну спасибо! У меня это и не получалось.

 

 

Теперь будет следующий этап :)

Хочется сделать так, чтобы при подключении моего устройства драйвер от Cypress автоматически грузил в 68013 мой .hex файл. Я пока до этого не дошел еще. Это ведь возможно сделать?

Share this post


Link to post
Share on other sites
...Я не хочу перезаписывать существующую прошивку во внешней пзу. Я хочу просто её заменить в ОЗУ контроллера на свою, во время подключения устройства к компу, и то не всегда...

...Хочется сделать так, чтобы при подключении моего устройства драйвер от Cypress автоматически грузил в 68013 мой .hex файл...

Если загрузку firmware возложить на драйвер, то он будет делать это всегда. До тех пор пока Вы не деинсталируете или не переустановите драйвер. Каким должен быть *.inf файл, чтобы драйвер "CYUSB.SYS" при загрузке выполнял скрипт, описано в подразделе "Execute a script at start-up" раздела "Modifying CyUSB.INF" в "Cypress CyUSB.sys Programmer's Reference" (CyUSB.chm). Если возникнут трудности, напишите какие VID и PID у Вашего firmware. Тогда я выложу отредактированный "CyUSB.inf".

 

На мой взгляд, загрузка firmware с помощью приложения является более удобной. Во-первых, это просто, если приложение написано на C# (см. описание класса CyFX2Device в "Cypress CyUSB.NET DLL Programmer's Reference" (CyUsb.NET.chm)). Во-вторых, для восстановления обмена после сбоя можно использовать этот же метод. В третьих, можно использовать такие же VID и PID. В четвертых, каждое приложение может загружать свое firmware.

 

Независимо от способа загрузки. Важно помнить, что firmware при старте должно переподключаться к шине USB (вызывать EZUSB_Discon()). Только в этом случае хост (Windows) узнает, что подключено новое устройство USB и заново считает дескрипторы этого устройства.

Share this post


Link to post
Share on other sites
Если Вы хотите просто перепрограммировать EEPROM, то достаточно будет отключить EEPROM до подключения питания к CY7C64713. Затем подключить питание к контроллеру и затем подключить EEPROM. После подключения к шине USB Windows будет видеть Ваше устройство как "Cypress EZ-USB FX2LP EEPROM missing". С помощью CyConsole можно "залить" в EEPROM Вашу прошивку (файл *.iic).

 

Вопрос в том, что означает "отключить/подключить EEPROM" для Вашего модуля. Для моего модуля это означает установить/снять джампер XJ1 (см. "EEPROM.gif").

 

Если же Вы хотите, с помощью CyConsole, сохранить содержимое EEPROM на диске перед записью своего файла *.iic, то, действительно, нужно заменить драйвер Windows для HID устройства на драйвер "CyUSB.sys". Возможно Ваши неприятности связаны с использованием предыдущих версий "CyUSB.sys". Я использовал "CyUSB.sys" из SuiteUSB.NET 2.0. Вначале попробовал заменить драйвер для USB Debug Adapter от SiLabs. Получилось. Тогда решил усложнить задачу. Загрузил в контроллер C8051F340 в CP2201EB от SiLabs их же пример для HID устройства (\USB_HID\BlinkyExample). Только VID и PID заменил на Ваши. Тоже получилось. С помощью Adobe Captivate 3 записал процесс установки. В архиве "to_sloq.rar" есть две папки. Папка "SuiteUSB.NET 2.0" содержит "CyUSB.sys" и отредактированный "CyUSB.inf". В папке "to_sloq_demo" запустите "to_sloq_demo.htm" - увидите процесс замены драйвера на моем компьютере.

 

Добрый день! Каким образом вы инициализируете EPPROM? Просто отключаете джампер и через сайпрессконсоль пишете в память? У меня после подобных манипуляций (на digilentовскую плату я впаял джампер (на схеме jp2)) без джампера грузится как EPPROM missing. После соединения джампера и попытки прошить консоль говорит - EPPROM not enabled..

post-38217-1222242203_thumb.jpg

Share this post


Link to post
Share on other sites

Расскажите как Вы прошиваете ? Отключаем память, подключаем плату, подключаем память, запускаем утилиту и прошиваем.

 

Сигнал защиты от записи в EEPROM, кстати, у Вас на плате куда подключен?

Share this post


Link to post
Share on other sites

А как прочитать содержимое подключенной к 68013 I2С EEPROM?

 

Чтобы сохранить в виде файла.

Share this post


Link to post
Share on other sites

АДИКМ, ошибка моя, все прошивается) Пытался прошить кнопочкой small EPPROM, а надо large 64k EPPROM) У меня же в свойствах проекта именно выставлено 64k ROM. Спасибо за ответы!

Share this post


Link to post
Share on other sites
А как прочитать содержимое подключенной к 68013 I2С EEPROM?

Чтобы сохранить в виде файла.

Ответы надо искать в документе "\Cypress\USB\doc\General\CyConsole.pdf".

Или посмотреть, как это сделать, запустив "Save_EEPROM_demo.htm" из архива "Save_EEPROM_demo.rar" :)

Save_EEPROM_demo.rar

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