Question: What is the significance of the CPU_Clk_Speed parameter in I2CHW user module? What should be the criteria for selecting the value for the parameter?
Answer: The Silicon RevA of the CY27x43 family, with a suffix "A" in the part number (for example CY8C27443A - 24PVXI), had some limitations for the CPU speed while accessing the I2C_CFG, I2C_SCR and I2C_MSCR registers. Details of the restrictions may be found in the Silicon Errata for CY8C27x43 RevA, found here.
The workaround for this situation is to throttle down the CPU speed to the recommended value before accessing these registers and restoring back the CPU speed after the access to these registers. This workaround was implemented in the I2CHW user module by the CPU_Clk_Speed(27x43A) parameter.
- If you are using Silicon Revision A of CY8C27x43 family, and if the CPU clock is above 6MHz, select "Above 6MHz(CY27xA Only)
- If you are using Silicon Revison A of CY8C27x43 family and if the CPU clock is 6MHz or less, select 6MHz or less.
- For all other device families, select "Not CY8C27xA"
The value selected for this parameter is used to conditionally compile certain code in the User module data sheet that will throttle down the CPU speed to the recommended value before writing to the I2C registers and then restoring to the actual value after the write. If "Not CY8C27xA" is selected, this extra code will not be added to the project during compilation.



