FRED - Brownout Circuit

This document describes a short test of different Brownout Circuits.

The testprogram pulses the Bit 0 of Port B (U1[6]). It is a simple loop for checking the alivennes of the pic.

; TTEST.ASM (C) 1998 Martin Pischky (martin@pischky.de)
        
        PROCESSOR       PIC16F84
        RADIX           DEC
        LIST            C=132, N=66
        NOEXPAND
        INCLUDE         P16F84.INC      ; register definitions
        __CONFIG        _CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC

; ports:        
        #DEFINE ALIVE   PORTB,0

        org     0
        clrf    PORTA                   
        clrf    PORTB    
        bsf     STATUS,RP0              ; page 1
begin   movlw   B'11111110'
        movwf   TRISB                   ; portb all outputs except RB4
        movlw   B'11111111'
        movwf   TRISA                   ; porta all outputs
        bcf     STATUS,RP0              ; page 0
loop    
        bsf     ALIVE
        goto    cont
cont
        bcf     ALIVE
        goto    loop
        
        END

For the Hexfile download:

ttest.txt (rename to "ttest.hex")

BROUT1

This ist the "less accurate" brown-out ciruit from Microchips PIC16C84 / PIC16F8X Databook.

schematic

The voltage levels are show below:

characteristic curve

U2 (green) is the base of Q1 and U3 (blue) is the *MCLR input of the pic. Microchip assumed that Q1 turns off at UBE[ON]=0.7V which seems a litle bit to high. This sample circuit shows that the Pic stops programm execution if U1 dropps below 3.58V and resumes it if U1 crosses 3.71V again. From the arithmetic mean value of 3.645V follows that UBE[ON]=12/(12+68)*3.645V=0.55V.

BROUT2

This ist the "better" brown-out ciruit from Microchips PIC16C84 / PIC16F8X Databook.

schematic

The voltage levels are show below:

characteristic curve

The value of 33K Microchip gives for R1 seems to be wrong. To get some current throu D1 I have taken R1=470 Ohm. Even with this value (and a 4.7V Zehner) the Pic is reseted at U1=4.60V and restarted at U1=4.62V.

BROUT3

This circuit takes a left over LM339 for monitoring the supply voltage. (See SLNTHR) A simple 1N4148 is used as reference.

schematic

The voltage levels are show below:

characteristic curve

This circuit resets the Pic at U1=4.37V. It is restarted at U1=4.56V. This hysteresis depends on the value of R4. Below 1V the voltage at *MCLR is pulled to VDD again. I hope this is not a real problem, because the oscillator of the pic stops at approx. 1.6V. (The simple test program ttest.asm is excuted by the pic down to approx. 2.2V)

Note: Turning off the supply of U1 (as done in SLNTHR while IC-Programming) puts the Output of U1 in high impedance state. (so ICP should work in SLNTHR)

BROUT4

Same circuit as BROUT3 but the LM339 is replaced by his CMOS replacement: TLC374C. The voltage levels are:

characteristic curve

BROUT5

This circuit avoids the faktor (18+2.7)/2.7 = 7.66 of BROUT4 which makes BROUT3/4 drifting away on any larger Temperatur change.

schematic

I have checked the turn on and turn off voltages with three different D1:

T U1(on) U1(off) average U1 delta U1
Sample 1 (U3=2.70V @ U1=4.50V)
25°C 4.75V 4.54V 4.64V 0.21V
67°C 4.69V 4.48V 4.59V 0.21V
Sample 2 (U3=.2.68V @ U1=4.50V)
26°C 4.71V 4.51V 4.61V 0.20V
68°C 4.60V 4.38V 4.49V 0.22V
Sample 3 (U3=2.74V @ U1=4.50V)
27°C 4.82V 4.61V 4.72V 0.21V
66°C 4.75V 4.53V 4.64V 0.22V

BROUT6

Modifing the values gives BROUT6:

schematic

This circuit resets the Pic at U1=4.36V. It is restarted at U1=4.44V.

characteristic curve

Assuming a drift of the zenervoltage of D1 of 5mV/K and a hysteresis of 100mV, this circuit should work from 0 to 70 degree celsius if the zehnervoltage of D1 is selected to +-3%. To test this use a voltage source of 4.50V and a current limiting resistor of 560R. If 2.63V<Uz<2.77V then the device is ok for D1.