Content originally posted in LPCWare by mch0 on Thu Feb 19 12:58:02 MST 2015
Hi emh203,
although I have made quite good experience with NXP support on specific topics I do agree with blueo about the documentation in some respects.
I'll give you an example and you will see that this is not something that can be solved by "what does this bit do in that register" and it can also not be solved in a satisfying way by experiments.
Ok, now my example (GPDMA, just like blueo mentioned).
In my application I have two rather high-speed transactions going on simultaneously. Both are using scatter/gather, i.e. the GPDMA is programmed to reload the descriptors (both channels used here).
When I say "high-speed" that is up to 40 MWords/s.
Now what I need to know is:
- when does the GPDMA start to reload the descriptors?
- how long does this take?
- what is the latency with arbitration if both DMA masters try to access the same bus (you can be assured I try to separate busses as far as I can, given the documentation - a single figure about the bus matrix!)
- how do the masters use the FIFO associated with each channel (burst? trigger level?)
I could go on here, but you can already see that I need this kind of information before I can really use bits in registers in a meaningful way.
Example: should I try to assign the descriptor reload to "the other" master, i.e. not the one I use to process the request?
I may see a bit for that, but I cannot decide how to set it for best performance without the kind of operational information that is missing. I could be better off trying to assign the masters in a different way, but I cannot decide that with any confidence.
And at this point experiments do not give a conclusive answer. They may indicate a ballpark number, but as an engineer with a product in the field I must cover the worst case in my application.
I don't make that up, I have seen the GPDMA "loosing" a lot more cycles than I would have reasonable expected.
I would like to know if this is a design problem (NXP/chip side) or a configuration problem (my side) that I can solve.
Greetings,
Mike