5 Replies Latest reply on Aug 7, 2019 4:57 AM by SanjeevG_16

    PSoC62 IMO accuracy


      I have a custom board where the UART clock seems to be inaccurate.  The problem only occurs on very few boards.  The board is assembled and I am not able to probe the UART lines.  It fails at 1M but if I connect USB it passes.  In the IMO trim options, I did not select the trim with USB option.  Is this selection automatically selected?  Most of the time USB will not be used in my design so I don't want to rely on this trimming.  What could be the cause of inaccurate IMO?  If I reduce UART baud to 750KHz, it works without USB.

        • 1. Re: PSoC62 IMO accuracy

          Hi JeHu_3414236,


          This could be a connection issue. Can you please check if the connections are proper in the boards that failed?


          I tried a simple UART project with 12 MHz SCB input clock frequency and 12 as oversampling, (12 MHz/ 12 = 1 MHz baud rate), there weren't any issues with the UART message. (Trimming option set to None - No USB component in project).


          What is the oversample value and SCB input clock frequency used in your design? Can you please check if the actual baud rate that is displayed in the component is within limits?


          If  there is a USB component in your design, the IMO trim with USB option is required. Can you please let us know if you are using a USB component in your design? If it has a USB component, then the PSoC Creator build is not possible without trim with USB option.




          • 2. Re: PSoC62 IMO accuracy

            The connection is good because 750KHz works.  I use 48MHz FLL and 8 oversample.  The actual baud rate is 1M.  I use USB but I set IMO trim to none and it still builds.

            • 3. Re: PSoC62 IMO accuracy


              So, I have set the parameters as you said.

              1) Peripheral clock -derived from 48MHz FLL. The actual clock frequency is 48MHz ( +/- 2.4%).


              2) oversampling is set to 8 and baud rate - 115200 bps.


              3) There is a baud rate inaccuracy, stating that the baud rate will have a slight deviation from the original value (0.16%) . So, Actual baud rate is 115384 bps.


              4) Considering these, the SCB clock frequency is 115384 * 8 (Oversampling) = 923.072 KHz. But the accuracy from FLL is 2.4%. So, the clock frequency can go from 900.1 KHz to 945.254 KHz. This means that the baud rate varies from 112512 bps to 118157 bps.



              Now, I don't feel like the variation is too much.


              It could also be the design issue in the board where the decoupling capacitors to VDDD which powers the IMO clock might have not been properly placed as per the design considerations.


              Could you try changing the Clock setting from 48MHz FLL to 48MHz PLL and let us know your observations.



              • 4. Re: PSoC62 IMO accuracy

                I am using 1000000 baud.  I am using FLL settings from the USB document to get 48MHz  0.2% accuracy:

                Multiplier = 1728

                Reference = 144

                Lock tolerance = 2


                I cannot build using PLL because the accuracy is too low for USB.  I think the problem is on the other side of the UART.  I only have access to GPIO6_6 so I output a SPI clock at 1MHz and the error is about 1% without USB connected.  I have not measured with USB connected yet.

                • 5. Re: PSoC62 IMO accuracy

                  So, the accuracy is fine. As you said, please check for the other side of UART for baud rate mismatches and let us know if you have got anything.