I am using CCG3PA in my design and I am trying to use Cypress FX3 (GPIO) for CCG3PA's flash programming.
As per the document AN84858 : https://www.cypress.com/documentation/application-notes/an84858-psoc-4-programming-using-external-microcontroller-hssp
One of the important requirements is to ensure that the frequency of SWDCK clock line is at least 1.5 MHz to meet the acquire window timing.
But in Cypress FX3 If I use CyU3PGpioSetValue I am able to achieve 490 KHz, for this I referred the cypress community link : Increasing Frequency of Bit-Banged GPIO Clock in EZ-USB® FX3™ - KBA90267 , and followed the methods mentioned, and here is the outcome.
-> If I use CyU3PGpioSimpleSetValue Gpio toggle clock frequency achieved is 750KHz
-> With GPIO_SIMPLE register accessing method 1.27MHz, I have attached the clock capture image.
So, as per the AN84858, SWDCK clock I am not able to meet 1.5MHz. So do we have any other option to increase the Cypress FX3 Clock frequency ?
Any other methods are available for CCG3PA Flash programming ?
Any other low end PSOC can be used for CCG3PA programming ?
Please refer to this KBA on FX3 - Calculating PWM Period and Duty Cycle in FX3 – KBA226759
You cannot generate high frequency toggle by using CyU3PGpioSimpleSetValue.
A PWM timer implementation can be used to generate clocks of the order of MHz as explained in above KBA.
You can also refer to the FX3 SDK example - 'Complex GPIO'