Dear All,
We are using 4 GPIOs as interrupts to receive bits from the external interface. When the bits are sent at 12 Khz from the external interface, the bit patterns is matching stored in buffer. But when sent at 100Khz, the bit patterns are not matching in buffers. I have 4 interrupt handlers for 4 GPIOs for capturing the bits. Please suggest any inputs to handle or fix this issue. I am on ucLinux.
Thanks,
Babu
Hi @sbabu,
How are you configuring your pins? Have you tried using our GPIO examples from the SDK as a base line to set up the pins? I believe the GPIO examples definitely support 100KHz inputs, so the issue might lie in the ucLinux implementation.
BR,
Edwin.
Hi @EdwinHz Yes I used the GPIO example for setting the pins. The data bits are stored in the buffer. If sent at 12Khz the data buffers has same pattern. One interrupt handler writes 1 bit into buffer and other handler writes 0 bit into buffer. Is there a chance that 1 bit handling interrupt handler not getting time to handle?
Thanks,
Babu
Hi @sbabu,
It is likely that the implementation of ucLinux is heavily impacting the processing effectiveness of the core to properly execute all these interrupt handles. I would suggest you to implement the use of the DMA instead in order to alleviate the core's workload. You can once again refer to the SDK examples to implement this configuration.
BR,
Edwin.