I've got a ATMega16 that is interfaced to a LM34 temperature sensor. I'm using the ADC noise reduction (sleep) mode every second when I sample my ADC. Based on the temp, I'm TRYING to drive a SSR directly from the micro on Pin B0. The micro has a 300 ohm impedance that should limit current to 16ma @ 5VDC. This is an acceptable load for the micro. The only onther load is a LCD. I've done other projects with this SSR and the mega16 albiet simpler - never a problem - the Mega16 can source enough current to drive this particular SSR when it is the only thing hooked to it. Now, when the micro determines that it needs to turn on the SSR, it puts out 5VDC to the pin. With the pin disconnected, no problem, 5VDC. When the pin is connected to the SSR, the voltage on the pin is only 1 VDC. I put an ammeter in series with the pin and the SSR and measured .1ma. So, it looks like the pin is only sourcing 1 milliwatt of power...? According the the datasheet, it should source 20ma@5Vdc. Anybody have a clue? The micro is going into sleep mode and taking measurements while it is trying to drive the SSR. Is this the problem? Can the micro drive pins in sleep mode? I'm assuming my power supply to the micro is sufficient because my VCC stays at 5VDC with the pin at 1VDC. I've tried a couple of different SSRs. I'm pretty sure they're ok. I've switched the output from Pin D0 to Pin B0, no luck there. I've got the pins configured as outputs, DDRB, DDRD set to
- I shouldn't have to worry about pullups when the pins are configured to be outputs right? At least, that's what I'm getting after reading the Mega16 datasheet. I've triple checked the circuit, it's wired right...My last resort will be to re-design the circuit to sink current rather than source it but - IN THEORY - what I have should work. I can also spend some time taking the noise reduction sleep mode stuff back out it that's the problem.
Any help is appreciated.