3.6 GPIO
GPIO architecture on F2838x is very similar to that on F2837x - except some minor enhancements that are listed below:
- Addition of GPIOxDAT_R (GPIO Data Read) register that shows the value written to the GPIOxDAT register from CPU (or CLA) instead of pin value. In most of the cases, value written is reflected on pin also. Therefore, this new register has the same value as that of the data register. In cases where PIN is not driven with written value, this will help in debug.
- On F2837x, all of the masters who had access to the GPIO data registers have their own copy of the GPIO DATA register. This was creating an issue when the master ownership of the pin was changed from one master to other master. To avoid this on F2838x, only one copy of the data register is available and all masters have access to the same data registers. User code does not need any update due to this change.
- On F2838x GPIO, data registers are reset by CPU1 reset only, whereas, on F2837x, these are reset by respective CPU reset, which has master ownership of the GPIO pin (based on GPxCSELy register configuration). Due to this, on F2838x if a GPIO is assigned to CPU2 and the CPU2 application code drives the GPIO to value '1', when the CPU2 subsystem gets reset by CPU2 WD or NMIWD (or by any others means that only resets CPU2), the GPIO pin continues to drive '1'.