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
  • Rob,

    I am also about to start using the Cypress EZ-USB development kit (although not the FX, for the 2100 series). I think the 1b3f limitatioin is just on internal code space, you can have up to the full 64K of external memory space.

    It seems like what you're asking should be possible, you may have to do some logic with PSEN, RD and WR.

    I have a question for you: How do you get your code from the Keil compiler into the I2C EEPROM without the USB link? I know that you just have to bring SDA and SCL to the outside world and they are available on the development board but is there some kind of an I2C EEPROM programmer?

    Mike

Reply
  • Rob,

    I am also about to start using the Cypress EZ-USB development kit (although not the FX, for the 2100 series). I think the 1b3f limitatioin is just on internal code space, you can have up to the full 64K of external memory space.

    It seems like what you're asking should be possible, you may have to do some logic with PSEN, RD and WR.

    I have a question for you: How do you get your code from the Keil compiler into the I2C EEPROM without the USB link? I know that you just have to bring SDA and SCL to the outside world and they are available on the development board but is there some kind of an I2C EEPROM programmer?

    Mike

Children
  • 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.

  • Hello.
    I've a modification of cypress ez-usb with a eeprom (24c00) and 2 ram chips.

    I can write my programs and download them into the ram via USB, but I want to store them into the card to get a stand alone card.

    If I replace the 24c00 by an 24c64 and I burn my code inside it (with an eeprom programer) it don't work.

    I've read that it is possible by writing a 0xB2 at the begining, but I cannot find any usefull information.

    Can you gif me a hint?
    Thanks.

  • convert your hex code with hex2bix.exe
    and burn the resulting file into the eeprom

    read the sections about the bix format
    (documented in the h files of the download app)
    http://www.usb.org/phpbb/viewtopic.php?t=7187