3 Replies Latest reply on Nov 9, 2018 4:16 AM by slord_2711371

    Unable to boot from I2C EEPROM with CYUSB3014

    slord_2711371

      I designed a circuit very similar to the FX3-kit using the CYUSB3014. I use a smaller memory 24LC256T from Microchip; all address lines are tied to 0V. The Pmode lines on the CYUSB are tied to Z1Z (boot from I2C fall back on USB). With the control center program, I can write to the EEPROM and it tells me that the write operation is successful but I can never boot from the I2C. I monitored the I2C lines, I have activity on the lines and the memory is not in the write protect mode. When I download the image file in the RAM, everything works as intended. When I reboot my board I always get the following descriptor "Cypress Benecia USB Boot Device"; I would expect to get the same descriptor as when I download the image file in the RAM . I tried my application on the FX3 evaluation kit and everything is fine; it boots from the EEPROM. My image file fits in the memory (24LC256T); it is less than 32 kBytes. Any idea why my board cannot boot from the EEPROM?

        • 1. Re: Unable to boot from I2C EEPROM with CYUSB3014
          aani

          Hi,

          The FX3 device enumerats as Benecia device, if the PMODE pins are set to 111. Refer this thread: https://community.cypress.com/thread/30704?q=Cypress%20FX3%20bootloader

           

          Please load the i2cdmamode example firmware to RAM and send commands to write and read it back. Refer readme.txt for more info.

          SDK path for the example FW: C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\serialif_examples\cyfxusbi2cdmamode

          This confirms whether the EEPROM is working fine.

           

          If EEPROM is working fine and booting is not proper, you need to check with PMODE connections.

           

          Regards,

          Anil Srinivas.

          • 2. Re: Unable to boot from I2C EEPROM with CYUSB3014
            slord_2711371

            Hi Anil,

             

            I saw your reply but I am really not familiar with the FX3 tools. I can compile and download the example that you pointed out to me but how do I read and write to the EEPROM (What application should I use: Control Center or ?.

             

            I check the connectivity of my PMODE lines and they are really connected to “Z1Z“. I have a few differences with the evaluation kit:

             

              1.  Line PMODE[1} is tied directly to the +3.3V without 10k resistor in series. Lines PMODE[0] and PMODE[2] are floating. It is recommended to use 10k resistors but is it also mandatory?

              2.  VBATT is tied to VBUS contrarily to the evaluation kit.

              3.  GPIO line 50 through 57 are tied to a FPGA not yet booted therefore Hi-Z impedance on the lines

              4.  VIO1 is connected to +3.3V

              5.  I am running from a clock oscillator at 26MHz and my FSLCx lines are set properly for it.

              6.  My EEPROM is 256kbit (32kx8 bytes, 24LC256T from Microchip) contrarily to that installed on the evaluation boards (2Mbit or 256kx8 bytes).

            Is there a way to read the status of the PMODE lines to make sure that the hardware states “Z1Z” is seen as it should?

             

            When we download image files in the RAM, everything works fine. When I download an image file in the EEPROM, I get a “successful status” as long as my image file is smaller than 32Kbytes and the activity on the I2C network seems normal. When I reboot and expect the FX3 chip to use the EEPROM to boot, I have no activity on the I2C network and the Control center application tells me that the descriptor is “Cypress Benicia USB Boot Device”. When I tried the same steps with the evaluation kit everything is fine. What could be wrong? Could it be because of some of the differences above? I have checked many of your application notes and cannot figure out what is wrong; your help will be greatly appreciated.

             

            Regards

             

            Sylvain Lord

             

             

            Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10

            • 3. Re: Unable to boot from I2C EEPROM with CYUSB3014
              slord_2711371

              Hello Anil,

               

              We finally solved the problem by extending the reset pulse. We had the same circuit as the evaluation board but it was not sufficient (our power supplies probably takes more time to wake up). By extending the reset pulse, everything works fine.

               

              Regards

               

              Sylvain Lord

              Concepteur électronicien/Electronic designer

              Zetec Inc

              875, boul. Charest ouest, suite 100

              Québec, (Québec), Canada, G1N 2C9

              Canada

              Tel: (418) 263-3642

              slord@zetec.com<mailto:slord@zetec.com>

              www.zetec.com<http://www.zetec.com>

               

              De : aani <community-manager@cypress.com>

              Envoyé : Tuesday, November 6, 2018 1:41 AM

              À : Sylvain Lord <SLord@zetec.com>

              Objet : Re:  - Unable to boot from I2C EEPROM with CYUSB3014

               

              <http://www.cypress.com>

               

              Cypress Developer Community <https://community.cypress.com/?et=watches.email.thread>

               

               

              Unable to boot from I2C EEPROM with CYUSB3014

               

              reply from aani<https://community.cypress.com/people/aani?et=watches.email.thread> in USB Superspeed Peripherals - View the full discussion<https://community.cypress.com/message/178055?et=watches.email.thread#178055>