Driver software can use three strategies for operating the TRNG:
- Monitored operation: The driver software checks the TRNG_ALARMMASK register at regular
intervals (on the order of seconds). If a bit is
set there, the TRNG_ALARMSTOP register should also be
checked to see if a FRO was shut down due to
multiple 'alarm events'. If none were shut down,
the TRNG_ALARMMASK register can be cleared to
get rid of the incidental 'alarm events'. If one
or more FROs were actually shut down, the driver
can modify the delay selection of those FROs in
the TRNG_FRODETUNE register in an attempt to
prevent further locking. For this type of
operation, the TRNG_ALARMCNT[20-16] SHUTDOWN_THRESHOLD
register field would normally be set to a low
value (for instance, value 2) and the
shutdown_oflo interrupt can then be used to
signal abnormal operation conditions and/or
breakdowns of FROs.
- Unmonitored operation: The driver software sets TRNG_ALARMCNT[20-16] SHUTDOWN_THRESHOLD
register field value to the number of FROs that
are allowed to be shut down before corrective
actions must be taken, then uses the
shutdown_oflo interrupt to initiate those
corrective actions (clearing the TRNG_ALARMMASK and TRNG_ALARMSTOP registers, and toggling
bits in the TRNG_FRODETUNE register). The software
must keep track of the time interval between these
interrupts. If they happen too often (say, within
a minute after each other), this is an indication
of abnormal operating conditions and/or breakdown
of FROs.
- Automatic operation (when the automatic detuning option is selected):
The driver software sets TRNG_ALARMCNT[20-16] SHUTDOWN_THRESHOLD
register field value to the number of FROs that
are allowed to be shut down before corrective
actions will be taken, and sets the TRNG_OPTIONS[23] AUTO_DETUNE register bit.
Internal HW logic will detune the shut-down FROs
(and get them running again) when this threshold
is exceeded.