Page 1 of 1
DS1813 EconoReset looping on LCD init
Posted: Wed Sep 04, 2024 1:28 am
by pdragon
I have a typical 65c02 breadboard setup @ 1MHz which is working nicely (4x20 LCD, SD card, kbd, running forth etc).
I read somewhere on here about the EconoReset part so figured I'd wire one across my /RES pushbutton to debounce it. (sure "if it ain't broke..." but that's half the fun
But now when I power up the initial startup is fine (it plays a little speaker init sequence) but then immediately resets again when it tries to initialize the LCD screen, and so just plays the startup sound in an infinite loop. Reading the datasheet more closely, I realize it is presumably triggering because the LCD init is causing the voltage to dip below its trigger point. (I think I have the 5% threshold part, number is DS1813-5T&R)
I'm powering the board from a bench power supply at 5.00V and over-current protection @ 300mA. There is definitely a current spike when the LCD initializes, but I don't think it was exceeding that threshold. Maybe momentarily tho?
I'm still new at all the hardware stuff. Any recommendations for how best to avoid the repeated reset? Is a small increase in input voltage or current threshold likely to help? (I do like that ocp helps me fry fewer parts...). Thanks to previous advice here I've already sprinkled lots of capacitors and more power gridding on the board, but maybe I need a bigger one to help serve the LCD?
Re: DS1813 EconoReset looping on LCD init
Posted: Wed Sep 04, 2024 1:38 am
by GARTHWILSON
These LCDs are very miserly on the current, except for a backlight if you have one. Backlights are a power hog. Is it that you're turning on the backlight at that time?
Re: DS1813 EconoReset looping on LCD init
Posted: Wed Sep 04, 2024 2:04 am
by pdragon
yes, there is a backlight. i don't exactly where in the init that it fails, its the usual HD44780 so I do the normal wake x 3 plus the init sequence (8-bit, 2-line, 5x8 font, display on, cursor/blink off) and then clear/home (random side question - why does that take 1.5ms according to the datasheet when everything else is measured in microseconds?!).
at some point in that process the backlight will normally cycle off and on. the steady state draw for the whole setup is a little under 100mA but there definitely is some kind of spike as the LCD starts up.
Re: DS1813 EconoReset looping on LCD init
Posted: Wed Sep 04, 2024 7:07 am
by John West
What sort of wires do you have connecting the power supply? If they're particularly long and particularly thin, there will be a voltage drop that the supply doesn't know about (it only sees the voltage at its terminals). At peak current that drop might be enough to trip the reset. Measuring the voltage both at the supply and on the board should tell you this needs addressing. I generally prefer to have the regulator on the board, with a higher supply voltage, to be certain that I'm getting the voltage I think I am.
Also, do you have adequate filtering capacitance on your board? Even if the average voltage is OK, if it's noisy enough there could be dips below the reset threshold. You typically need a range of capacitors to cover the frequencies in play.
Re: DS1813 EconoReset looping on LCD init
Posted: Wed Sep 04, 2024 11:09 am
by pdragon
Here's a couple thousand words worth of pics.
I don't think the wires are particularly long. There are a bunch of 100nF and a few 10uF caps on the power rails near components, and crisscross grid.
(strike this:) It seems the culprit is actually the keyboard - this hosts a pro micro (RP2040 MCU).
Correction: disconnecting the kbd stops the reset cycle, but the kbd isn't involved in the 6502 init sequence or connected to the reset line and quickly gets into a quiescent state where it's sitting waiting for keypresses. So although it might be dragging down the overall current draw, I think the LCD on/off cycle during init is what triggers the actual reset.)
I'm still learning the scope but managed to trigger a trace during one of the reset events. The voltage drops to about 4.8V (vertical grid 50mV) and recovers to 4.9V after about 5us (horizontal scale 1us). I guess the other spikes are due to the two 1Mhz clock edges per 1us? I measured near where the PSU connects to the breadboard.
I'm not sure i'm reading the ds1813-5 datasheet correctly but it seems to say the typical trip point is 4.6V (though 5% of 5V might imply 4.75V?). So maybe it's borderline.
I don't see an obvious spike in current draw on the power supply but maybe it's momentary. Could I use the scope reading to size a larger capacitor to serve the momentary excess demand? Or something else?
Re: DS1813 EconoReset looping on LCD init
Posted: Thu Sep 05, 2024 11:11 pm
by pdragon
It does seem like upping the current limit on the power supply solves it
Re: DS1813 EconoReset looping on LCD init
Posted: Fri Sep 06, 2024 12:55 am
by BigDumbDinosaur
It does seem like upping the current limit on the power supply solves it
There are different versions of the DS1813, each with its own voltage threshold at which it releases or sinks the reset line.
BTW, although the DS1813 has an internal pullup, it’s weak and makes the reset circuit somewhat noise-prone. For best results, you should have a 3.3K pullup in your reset circuit.
Re: DS1813 EconoReset looping on LCD init
Posted: Fri Sep 06, 2024 1:59 pm
by pdragon
yup, i think i have the 5% version. I can't quite make sense of how it's presented in the datasheet but I assume it means it will trigger around 0.95 * 5V ie. 4.75V which seems to be the case.
I still have the 3.3K pullup there from my unbounced reset switch, so all good I think.
Re: DS1813 EconoReset looping on LCD init
Posted: Fri Sep 06, 2024 4:46 pm
by BigDumbDinosaur
yup, i think i have the 5% version. I can’t quite make sense of how it’s presented in the datasheet but I assume it means it will trigger around 0.95 * 5V ie. 4.75V which seems to be the case.
No. The specific part number that you have determines the “trip” voltage. I’m not sure about the meaning of the tolerance spec—I go by the part number suffix, which defines the nominal trip voltage:
- DS1813-5 — 4.62
- DS1813-10 — 4.35
- DS1813-15 — 4.13
Dallas Semiconductor, while noted for the high quality of its products, was also noted for writing confusing data sheets. When Dallas was bought out by Maxim, some effort was made to clean up the data sheets, but a lot of them are still a bit of a mess. I ran into this with the DS1216E “smart watch” when I adapted it years ago to my Commodore 128D. I ended up on the phone for about an hour with Dallas tech support...taking notes. 
With that said, a self-reset in your application due to voltage sag is an indictment of your power source or distribution...or both. 
I still have the 3.3K pullup there from my unbounced reset switch, so all good I think.
Some years ago, prior to my start with my POC series, I had an occasion to use the DS1813 in something else I had devised, and initially omitted the pullup resistor, since the data sheet mentioned the presence of an internal pullup. By sheer happenstance, I had an unrelated circuit problem with the device and moved it to my work bench to troubleshoot. On the bench, the DS1813 kept going in and out of reset, although when it was on my desk in my office, things were fine. It wasn’t the power source or connections, so I surmised noise was the culprit, proved with a quick check with the ’scope.
It turned out, “hash” from the fluorescent lamp in the bench’s magnified work light was triggering the spurious resets. I decided to add a pullup to the circuit and voilà! No more spurious resets.