This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bootloader Cypress EZ-USB question

I've just started using the KEIL product with Cypress EZ-USB FX development kit. The EZUSB core supports a sort of bootstrap loader on the I2C interface. If you use B6 for the first byte in a serial eeprom device, it looks like the core will copy records of a certain format into memory. However, it limits 8051 program/data space that can be written to 0x1b3f.

Two questions. 1) why the limitation? The core also supports a specific vendor request (bRequest A0, Control EP0 IN and OUT) that can write or read to seemingly any external memory space.

2) Is it possible to write a loader app that can be loaded by the core at power up, interrogate the rest of the I2C device, load external ram and then transfer control to exteral program now loaded? The idea being that even though it's easy to soft load the EZ-USB device, you could run a whole program loaded from the I2C serial eeprom.

Parents
  • Mike, thanks for the tip about 1b3f. As usual, I came across the answer about an hour after asking :)

    On programming the EEPROM without USB, I assume there are external programmers that could do what you are asking but I haven't looked.

    I have had some success using a copy of C:\Cypress\USB\Examples\EzUsb\Vend_Ax. I modified the vendor command (A9 since I didn't need to force double byte addressing) to hardcode the eeprom. Of course, I was using the cypress control panel to download the app, and then to send the vendor command, but the info to program the eeprom was already part of the app instead of sent over USB. I also wrote my own conversion routine from Intel Hex format to the IIC format so I could just deal with one hex file.

    You could write an app that would program the eeprom. Not sure if you could download the program from the serial port using the monitor. The ez-usb dev board would need to be externally powered (without USB cable since power normally comes from USB).

    I have not written the loader app I mentioned, yet. I was able to trim some fat from our application for the eeprom load.

    Hope this helps.

Reply
  • Mike, thanks for the tip about 1b3f. As usual, I came across the answer about an hour after asking :)

    On programming the EEPROM without USB, I assume there are external programmers that could do what you are asking but I haven't looked.

    I have had some success using a copy of C:\Cypress\USB\Examples\EzUsb\Vend_Ax. I modified the vendor command (A9 since I didn't need to force double byte addressing) to hardcode the eeprom. Of course, I was using the cypress control panel to download the app, and then to send the vendor command, but the info to program the eeprom was already part of the app instead of sent over USB. I also wrote my own conversion routine from Intel Hex format to the IIC format so I could just deal with one hex file.

    You could write an app that would program the eeprom. Not sure if you could download the program from the serial port using the monitor. The ez-usb dev board would need to be externally powered (without USB cable since power normally comes from USB).

    I have not written the loader app I mentioned, yet. I was able to trim some fat from our application for the eeprom load.

    Hope this helps.

Children