Hi,
I’m looking for any information about timers (or interrupts) that can be used to create delays in the order of microseconds.
The application is RS485, to implement a timeout before resetting the driver-enable, to make sure all bytes have been sent over the link.
In order to achieve higher baudrates, the timeout needs to be very small or a serial response may be missed.
From what I find in the documentation, timers can be accurate to 18.5ms, which is way too long.
In the ADL user guide, I found the adl_tcuTimerDuration_t Structure, which seems to allow for ADL_TCU_TIMER_UNIT_US to be used as duration unit. I have not been able to find any code actually using this, and cannot get it to work with small timeouts.
I would appreciate anyone pointing me in the direction of example code or documentation that might help me on the way.
Thanks!
Hi,
Controlling the unit to the uS level is just not possible, you can use the TCU to get down to the mS level. The problem is the BCCH timer that the processor has to server when it is attached to the network, this has to be serviced by the processor every 4.6mS and that processing can take upto 600uS hence the control to the level you want is not possible other wise the unit falls out of spec.
While uS is specified in the TCU I think it was put in more as a future implementation thing for completeness as there was a plan to implement an interrupt type that took precedence over the BCCH servicing but a widely required use case was never found so it was not done.
Regards
Matt
Time for an external microcontroller…