To whom it may concern,
I am trying to use the CMP_DATA action in multiple states in a GPIF II state machine (for Cypress FX3 USB). However, whenever I set the "Comparator value" and "Unmask value" fields for one CMP_DATA action in the GPIF2 Designer, it appears to set the comparator and unmask values for all instances of the CMP_DATA action in the state machine. Is it not possible to use different comparator and unmask values in multiple instances of the CMP_DATA action (where each CMP_DATA action belongs to its own state)? For example, I would like to add the CMP_DATA action to State0 and set the comparator value to 128, while adding a CMP_DATA action to State1 and setting its comparator value to 64.
If it is possible, then the GPIF2 Designer's state machine editor would appear to have a bug. If that is indeed the case, then are the data structures in the generated header file documented (e.g. waveforms) such that it can be patched? As an aside, I am also interested in parallel to/from serial conversions using the state machine.
Thank you for your assistance. Sincerely,
1) Yes. CPM_DATA value is same for all the states. You cannot have different one for different states. But you can dynamically change the value of the GPIF_DATA_COMP_VALUE and GPIF_DATA_COMP_MASK registers for changing the Data compare value in the firmware. The address for these registers is given in the FX3 TRM. But there should be sufficient time for transition in the state machine to go from the States where one value is being compared and the states where a different value is being used.
2) For GPIF in serial mode, please create a Tech Support Case.
- Madhu Sudhan