2 Replies Latest reply on Jan 16, 2013 2:02 AM by rama.sai.krishna.vakkantula

    Problems with 26MHz Clock and maybe old stepping

    dirk.woitha

      First of all I wanted to wish everyone here a happy new year!

         

      However new year -> new problems!

         

      I have got my board with the FX3 now and have detected a problem with the clock or the UART baudrate.     

       

         

      I am using a 26MHz clock and not a 19,2 MHz crystal. The FSLC-Pins are "101" as described in the datasheet. I can load software to the FX3 via USB and via J-Link Debugger.

         

      However the UART does not work, because the baudrate is not correct. It should be 115200 Baud but it is 156000 Baud (measured with a scope). This is 115200 * (26/19.2). This looks like the baudrate is calculated on a 19.2MHz base.

         

      To find a solution, I have modified the startup code a little bit to:

         

       

         

      CyU3PSysClockConfig_t clkCfg;
           

       

      uint32_t sysclk;
           

       

      CyU3PPartNumber_t partnumber;
           

       

         

      /* Initialize the device */
           

       

       

         

      clkCfg.setSysClk400 = CyTrue;
           

       

      clkCfg.cpuClkDiv = 2;
           

       

      clkCfg.dmaClkDiv = 2;
           

       

      clkCfg.mmioClkDiv = 2;
           

       

      clkCfg.useStandbyClk = CyTrue;
           

       

      clkCfg.clkSrc = CY_U3P_SYS_CLK;

         

      status = CyU3PDeviceInit (&clkCfg);
      if (status != CY_U3P_SUCCESS)
      {
           

       

          goto handle_fatal_error;
           

       

      }

      status = CyU3PDeviceGetSysClkFreq (&sysclk);
           

       

      if (status != CY_U3P_SUCCESS)
           

       

      {
           

       

          goto handle_fatal_error;
           

       

      }
           

       

       
      partnumber = CyU3PDeviceGetPartNumber();     

       

         

       

         

      However this makes no difference to CyU3PDeviceInit (NULL).

         

      The CyU3PDeviceGetSysClkFreq returns a SysClock of 403.2 MHz. This should be 416 MHz with a 26 MHz clock. Looks like the configuration pins are not detected correctly, but I have checked them several times.     

       

         

      At least the partnumber is returned correctly as CYPART_USB3014.     

       

         

      I have also a problem with the default VID/PID of the part. This is not 04B4/00F3 but 1480/0000. I have found an article that this is the case with an old revision of the chip. As mentioned, I have modified the Inf-File for this VID/PID. Though my board is pretty new, the chips seem to be pretty old. They are labeled:
           

       

       
      CYUSB3014-BZX
           

       

      I      1149
           

       

      A    33 PHI
           

       

      CYP657132
           

       


      Do I have to expect other problems with this revision? When I am ordering new chips, how can I find out, that I get actual parts?