2 Replies Latest reply on Jun 27, 2017 2:31 AM by peter.drescher

    FX3S QueryUnit bug

    peter.drescher

      If using the 4 bit mode on a eMMC the card detect is working .

         

      If i switch to 8 bit mode, the CyU3PSibQeryDevice returns a numBlks which is 256 times to small ! 

         

      Shifting numBlks  8 times don't solve the problem, because CyU3PSibReadWriteRequest return with a CY_U3P_ERROR_INVALID_ADDR. The ReadWrite command is not using the patched numBlks to check the address range.

         

      Which variable is used to check the address range ?

         

      Best regards,

         

      Peter

        • 1. Re: FX3S QueryUnit bug
          rghe

          Hi Peter,

             

          I have tested FX3SMassStorage example project with 4-bit and 8-bit eMMC mode on S0 port. (When UART is used for logging, since we can configure S1 port only as 4-bits wide, I have tested on S0 port). I have attached the logs for your reference. In the logs, you can see that the numBlks value does not change when busWidth=1(4-bit mode) or busWidth=2(8-bit mode)

             

          Could you provide the following information:

             

          Are you observing this with the FX3SMassStorage example project or with a modified version?

          • 2. Re: FX3S QueryUnit bug
            peter.drescher

            Hi ,

               

            I think it is a problem with the samsung chip I'm using.

               

            The CyU3CardMgrMmcInit function is testing the bus before reading the Ext_CSD register. If the EXT_CSD is read in 4 bit mode the data is ok. If read in 8 bit mode one byte is missed, but without CRC error. Later I can read the chip without problems in 8 bit mode. 

               

            I have fixed the problem by reading the EXT_CSD before switching the bus to 4/8 bit mode.