in my application I need to generate and read a clock generated by firmware. What is the maximum frequency at which a generic I/O port could opperate. Thank you.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
The maximum pin switching speed is given in data sheet (SLAS731D) Table 5-6; it says (effectively) "as fast as the CPU clock".
As an existence-proof, it is possible to put SMCLK out on PJ.0 [Ref data sheet Table 6-80]. This doesn't give you any choice of frequency, but you can turn it on/off using PJSEL.
If you want to generate a clock using software, you should estimate maybe 3-5 clocks for each transition, and double that to get a full cycle period, so maybe MCLK/9. As a practical matter, you'll eventually have to loop (branch) so you'll need to slow the loop to get a consistent frequency.
Your best bet is a timer, which can give you SMCLK/2 max, but you can adjust it.
Does your mention of "read"ing mean that your MCU needs to interpret this clock as well? Doing that would be quite a bit more expensive.
Fastest port write (assembler instruction) will take 3 CPU cycles, and read (assembler instruction) 2 CPU cycles. Also DMA can be used for coping samples from RAM/flash to port or from port to RAM, and each operation (one DMA copy) will take 2 CPU cycles (CPU is stopped during this proccess).