GPIO configuration for parallel asynchronous output

Hello,

For my application I have a need to buffer data for, say, 8 GPIO pin outputs and continuously generate those buffered outputs in parallel on the GPIO pins. I have been able to set this sort of system up with STM32's and am now evaluating the nRF line for this need, having never used Nordic products in the past. So, as an example with my understanding of the nRF system so far, if I have a buffer [0x01, 0x02, 0x01, 0x03] then I would want to setup a timer in COMPARE mode with a 100uS rollover time to generate an event that uses GPIOTE and triggers outputs such that:

Rollover 1(100uS): GPIO1 ON, GPIO2 OFF

Rollover 2(200uS): GPIO1 OFF, GPIO2 ON

Rollover 3(300uS): GPIO1 ON, GPIO2 OFF

Rollover 4(400uS): GPIO1 ON, GPIO2 ON

My questions are:

1) Is it possible to change the output on multiple GPIO pins "at the same time" i.e. within the same clock cycle? If not, what sort of delay can I expect between GPIO enables/disables?

2) Given (1) is possible, or delay is acceptable, can the above buffering mechanism be performed within the event/task context? Is it possible to DMA in the buffered data somehow, or setup some buffer for an event to read from?

The desire is to perform this GPIO output asynchronously with peripherals due to real time constraints. Thanks in advance for the help!

Parents Reply Children
No Data
Related