low cost USBi programmer using cypress CY7C68013A board

thanks for the info doctormod. My inf file has the devices set as shown below.

I got that link to the hex file and uploaded it. It seemed to work. But guess what,
Sigma Studio doesn't see the board unless I manually run the script as before....


;for all platforms
[Device]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
%VID_0456&PID_7030.DeviceDesc%=USBi, USB\VID_0456&PID_7030
;%VID_0456&PID_7031.DeviceDesc%=CyUsb, USB\VID_0456&PID_7031

;for windows 2000 non intel platforms
[Device.NT]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
%VID_0456&PID_7030.DeviceDesc%=USBi, USB\VID_0456&PID_7030
;%VID_0456&PID_7031.DeviceDesc%=CyUsb, USB\VID_0456&PID_7031



;for x86 platforms
[Device.NTx86]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
%VID_0456&PID_7030.DeviceDesc%=USBi, USB\VID_0456&PID_7030
;%VID_0456&PID_7031.DeviceDesc%=CyUsb, USB\VID_0456&PID_7031

;for x64 platforms
[Device.NTamd64]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX
%VID_0456&PID_7030.DeviceDesc%=USBi, USB\VID_0456&PID_7030
;%VID_0456&PID_7031.DeviceDesc%=CyUsb, USB\VID_0456&PID_7031
 
I believe I finally have a solution to the script problem. After my first attempt failed (post #14) I spent some time with the MS and Cypress .inf documentation. It turns out the original CyUSB.inf file is missing the statement in the [Strings] section that defines the path of the script file. No wonder it fails. So here's what I did:

1. Created a new directory and copied the SigmaStudio ADI_USBi.spt, CyUSB.inf and CyUSB.sys files (see post #14 for the path). Then I renamed CyUSB.inf to CyUSBx.inf and CyUSB.sys to CyUSBx.sys.

2. Edited the .inf file to correct the error, gave it a new GUID (per Cypress recommendation), changed descrption strings and cleaned up the code. Full comments are in the header.

3. Used device manager and the "Update Driver" option to load the new driver. See post #14 and be sure to select the "Have Disk" option. Since the driver is unsigned you may have to restart Windows with the "Disable driver signature enforement" option.

4. After the driver was installed the I2C LED on the USBi card immediately turned on and SigmaStudio colors the device green w/o having to run the script. I unplugged/replugged the card several times and each time the I2C LED comes on and SigmaStudio automatically recognizes the device.

Notes:

- I attached the new CyUSBx.inf file. I had to rename it to CyUSBx.txt.

- I always have the CY7C68013A board jumper off.

- When you load the driver you should see "Mini-USB USBi (Chinese)" as the model. This changes back to "Analog Devices USBi (programmed)" in Device Manager after the script is run.

- The Cypress USB Console app still seems to work with this driver.

- Hope this works for everyone. :)
 

Attachments

  • CyUSBx.txt
    4.5 KB · Views: 499
Sorry it didn't work for you, Here's a couple trouble shooting notes:

- The board needs to appear as the regular Cypress board (VID 0x4B4, PID 0x8613) for CyUSBx.inf to work. You can check the board's properties in Device Manager before doing the Update Driver. If you have the jumper on or have already run the script the VID/PID will be different.

- When you did the Update Driver did you see Model ""Mini-USB USBi (Chinese)"?

- After CyUSBx.inf runs there should be a registry entry named "DriverEXECSCRIPT". It's under HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB on my machine. I attached a screenshot.

Hope this helps.
 

Attachments

  • Regestry Entry.JPG
    Regestry Entry.JPG
    21.9 KB · Views: 1,137
I just stumbled over this thread looking for a solution for a problem that sound similar. As I was able to find a proper solution in mean time, I post it here because it might help someone following the same bread crumbs...

Description of initial problem:
On a windows 10 PC, I had to install my freeUSBi following the troubleshooting section in the manual , page#9. Finally, it worked fine for a couple of successfull DSP programming sessions, includding several restarts of my computer and pluggin/unplugging the USB cable without any problem.

After having some trouble with a different software installation, the driver stopped working. In device manager, I found out that windows was not able to find a proper driver for the device. Enabling "Force Deactivation of Driver Signature" in windows trobleshooting as in the freeUSBi manual and trying to reinstall the driver did not solve the problem as well.

I had a look at VID/PID, and found out that my device now shows up with VID 0456 and PID 7031! I configured cyusb3.inf accordingly, and - abracadabra - everthing works like a charm.

Maybe this might help here too - did you check PID/VID, and did you skip driver signature deactivation the very first time you installed the driver?

-Best regards-
Tankred
 
Hi Guys,
for those willing to access the SigmaDSP from SigmaStudio without using an USBi interface, there is a possibility by creating an USB device with a generic "Vendor Specific Class (0xFF)" as long as you support the following "Vendor Commands":

B2 : Write a list of bytes at a given memory address, for a given I2C or SPI device.
B4 : Read a list of bytes at a predefined memory address, for a given I2C or SPI device.
B3 : Set the predefined adress for command B4
B5 : finalize a B2 transaction
B6 : finalize a B4 transaction

at least SigmaStudio uses all these command trough the Cypress USB Stack
this has been discovered by using USBPcap and Wiresharc tools.
in order to recreate a USB device able to handle this Vendor Command, it is possible to leverage the Cypress Vendor_ax source code (may be my next step).

it is possible to test these commands within the CyConsole program with an USBi device attached.

Here are more details on the commands which are following the "setup" structure of the USB ep0: bRequest, wValue, wIndex, wLength

for both command B5 and B6, wValue=0x0000, wIndex=0x0000, wLength=0x0001
the DATA to be provided for OUT is byte 0x01.

For commands B2 B3 B4:

wValue is representing the I2C slave address.
For example, with EVAL-1701, the ADAU1701 I2C adress is 0x68 and then you should put wValue=0x34.
With EVAL-1452 this is SPI and then you have to use wValue=0x0000

wIndex is representing I2C or SPI. For I2C, wIndex=0x0100, for SPI, wIndex=0x0101

wLength depends on the Payload attached to the command:

for B2 it is 2+number of byte to write and the Data should then be 2 byte representing the target dress and N bytes to write.

For B3 it is always 2 as the Data should be the 2 bytes representing the address to start reading from (by B4)

for B4 this is the number of byte your expect to read.

and thats all. I might provide more details or screenshot but if you are interested in creating your own USB device you will have to deep dive on "vendor command" structure and ep0 and then what s written here will become clear to you
 
So i just found this Thread, sorry for my bad english btw. Anyways, i had the same problem that the cypress board needed a "script load", after every reboot. So thanks to IVX for the Data and for the Idea. I was curious and i just flashed the complete usbi hex data to the eprom of the cypress board, instead of modifying some bytes, cause i am lazy af. (see Post 6 for the Data). I just used sigmastudios eprom thingy.
 
Programming the low cost CY7C68013A development board:
Download Cypress Suite CySuiteUSB_3_4_7_B204.exe. This file should have the following md5 checksum: 1ece8ba8dcb0038049b7e07e2473011b.
Download 24aa256.zip (24aa256.bix 8kB)
To transfer 24aa256.bix to the EEprom on the CY7C68013A development board:
- Remove jumpers on the CY7C68013A development board,
- Start CyConsole (part of Cypress Suite), Choose menu Options-> EZ-USB interface
- push button lgEEPROM, select the EEPROM file i.e. 24aa256.bix. Download should start.
When the board is reconnected to USB (reset) the board should be recognized as Analog Devices USBi (programmed) .
To check one of these cryptographic signatures I used Total Commander, create cheksum file, F3.
 

Attachments

  • 24aa256.zip
    2.7 KB · Views: 760