Hello all,
Anybody knows "EVENT_STARTED does not fire" issue will be fix or not?
I really do want to use the PPI function at Tacq=3us.
When can I get the counter measure?
By the way, what is the root cause of this issue?
Best regards,
Kiyoshi Iwai
Hello all,
Anybody knows "EVENT_STARTED does not fire" issue will be fix or not?
I really do want to use the PPI function at Tacq=3us.
When can I get the counter measure?
By the way, what is the root cause of this issue?
Best regards,
Kiyoshi Iwai
"When can I get the counter measure?"
- I'm afraid I do not understand what you need. Do you mind explaining what you need the STARTED event to trigger?
The event still fires, it might just be fired a bit early in some cases.
"Workaround:
The module must be fully configured before it is enabled, and the TACQ configuration must be the last configuration set before ENABLE."
You should be able to use 3µs acquisition time without an issue as long you adhere to the workaround.
Hello haakonsh,
Thank you for reply.
Why is the workaround different on the Errata?
(The Errata says "Use TACQ>5us when starting ADC from PPI".)
Best regards,
Kiyoshi Iwai
Hello haakonsh,
Thank you for reply.
Why is the workaround different on the Errata?
(The Errata says "Use TACQ>5us when starting ADC from PPI".)
Best regards,
Kiyoshi Iwai
I'm sorry Kiyoshi, I've confused [150] SAADC: EVENT_STARTED does not fire with [74] SAADC: Started events fires prematurely.
You cannot trigger the START task from PPI at Tacq < 5µs, but you can still trigger the SAMPLE task as normal. If you trigger the START task via CPU before you expect to trigger a SAMPLE task via PPI you can use acquisition time less than 5 µs.
Hello haakonsh,
You mean, in the case of using the SAMPLE task only, there is no problem, right?
I don't know very well about the proper use of START task and SAMPLE task.
What is the biggest difference between START task and SAMPLE task?
Best regards,
Kiyoshi Iwai
The START task will copy the content of the RESULT.PTR and RESULT.MAXCNT registers and load them into the SAADC EasyDMA controller. The RESULT.PTR and .MAXCOUNT are double-buffered, this means that you can update them immediately after a STARTED event has occurred to prepare the next SAADC result buffer.
The 'nrfx_saadc_buffer_convert' function triggers the START task manually, this means that if you use nrfx_saadc_buffer_convert to set up your buffers then you do not have to worry about [150] SAADC: EVENT_STARTED does not fire or [74] SAADC: Started events fires prematurely and you can safely trigger the SAMPLE task via PPI.
Note that the SAMPLE task must be triggered for each SAADC sample (all enabled channels will get sampled by a single SAMPLE task), and the DONE event will be fired when the buffer has been filled.
Hello haakonsh,
Thank you so much for good information.
I'm relieved to hear that.
Best regards,
kiyoshi Iwai