BOD - Brown Out Detection

Q

How to make use of the BOD?

A

The basic circuit (source: technical data reference guide) is shown below.

With the following values:


Symbol

Min

Typ

Max

Unit

BOD

0


3.6

V

BOD_T

1.11

1.14

1.17

V

BOD_H

47

60

73

mV

BOD_P

5


20

μs

The 24V is split up by the resistors R1 and R2. If it drops below 1.14V for more than 5μs to 20μs with a hysteresis of 60mV, an internal signal is generated.

The usage of this signal will depend on the kind of power supply that was monitored and how it is available inside the system.

In the netX90 the internal signal is bound to a bit of a register in the asic_ctrl and as an interrupt input of the nested vector interrupt controller (NVIC). The generated interrupt might be used in case that the supervised voltage was the main power supply to finish critical tasks and close non-reentrant contexts.

Q

Does the Communication Side make use of the BOD?

A

The Communication Side does not use the BOD at the moment.

Q

Is there a driver available?

A

The peripheral driver package of the netX90 has an integration of the BOD as an input via the DIO drivers.

Example
#include "netx_drv.h"

void bodcallback(void* pvDriver, void* pvUser){
  __NOP();
}

void bodexample(void) {
  // Attach the BOD callback to the bod signal
  (void) DRV_DIO_ChannelIRQAttach(DRV_DIO_ID_BOD,bodcallback,(void*)0xaa55aa55);
  // Issue the interrupt controller to generate the interrupt for testing purposes
  DRV_NVIC_SetPendingIRQ(DRV_BOD_IRQ);
}