Atmega32u4 3.300 V

hello, this is related to one of my post

http://forum.arduino.cc/index.php?topic=337397.0

However, this is a more specific question. My previous problem seemed to be caused by a voltage issue. I have realised that the micro will only work well (I2C working) at 3.3V precisely as its maximum voltage. I Used a multi meter to monitor the voltage and at 2.500 - 3.300 V, it works fine. once i exceed 3.320 V, The i2c stopped working but all other functionality still worked. For the time being, i wont try and figure out why it only takes 3.3V but actually how to get a precise 3.300 V or slightly less say 3.2V

Firstly, i got a 3.3V voltage regulator and it work fine, but its giving me 3.333 V which causes the micro to fail.

Other methods would include a buck converter, but will try and fix this issue first. Is it possible to drop the voltage slightly? I can think of using a diode and utilise its forward voltage drop. but that seems inefficient.

Can anyone give a suggestion? thanks!

Diode wastes just a little energy, I dont think its inefficient.

The voltage regulator is already turning volts into heat, so the diode isn't any less efficient. A lower voltage regulator would do the trick too, and be more graceful

I would recommend you figure out why it dies the moment it gets over 3.300 volts. Running at 3.3v when it doesn't work at 3.33 is a recipe for disaster, and if it behaves in that way, it's not supposed to be run at 3.3, since all supplies vary a bit around their intended voltage.

Thanks for all the replies. May i ask, what are typical values for a 3.3v Pullup resistpr? 4.7k?

This query is getting a trifle absurd.

If the processor (which by definition will operate up to 5.5 V) is misbehaving at in excess of 3.3V, then you are doing something really, really wrong in your circuit and you need to figure out what that is, not fiddle around with regulators.

Now you say "The i2c stopped working". This would really only happen if the input voltage on the I2C lines was failing to exceed 1.65 V (i.e., half of Vcc), which implies that some component on the bus is limiting it to that voltage.

You need to look at the voltage the bus is showing (when idle, or with a CRO, or both) and see what is pulling it down.

hi,thanks paul, you were right that something on the I2C line was mucking up. It was the DS3231 chip. i used an SMD chip at it wouldnt work above 3.300V. However, i replaced it with a off the shelf module, and it worked fine all the way to 3.7V. which to be fair is good.

So either i wired something wrongly with the RTC, or the pull up resistor value in the RTC module matches the setup better. I will do more testing

Cheers

hi, i just want to do a sanity check on myself this is the RTC i am using

http://datasheets.maximintegrated.com/en/ds/DS3231M.pdf

It supports up to 5.5 volts, and i only need Vbat, VCC,GND ,SDA and SCl. including the decoupling capacitor and two pull up resistor.

in my setup, i followed the schematic and used a 1uF decoupling , but i also tried a 0.1 uF. The pull-up i am using is a 4.7k ohm.

Does this sound right?

So i found an interesting problem. according to the datasheet, when either VCC or VBAT is not in used, it should be connected to ground. And so i tied one of them to ground and the I2C started working . HOWEVER, the RTC had a temperature built in and i saw that the temperature started increasing rapidly. and damn it got hot. I checked that there was no short circuit throughout the pins, and everything was fine. well, connecting VCC to GND on the RTC is sort of a short right?

am i doing anything wrong?

That sounds pretty wacky. I think if I saw something like that I would ask others first before trying it. What is the link to the datasheet and what page is that advice on?

http://datasheets.maximintegrated.com/en/ds/DS3231M.pdf
=)

page 7

I don't know what to think about that.

its fine, i used a spare chip and it works at 3.300V. it seems to be fairly consistent. So i have deduced that it is NOT the atmega32u4 that fails upon 3.300V, but the RTC. Because when i use the same RTC module from ebay with a 3.00V backup battery built in, it works fine. So there has to be something wrong with the RTC i have.

The datasheet says VBAT and VCC goes from 2.5 to 5.5 V but typical values are 3.0 V. So i am not sure. But as a conclusion, theres nothing wring with the I2C of atmega but the RTC

Did you tie VCC or VBAT to ground? I think you should power it with VCC and pull VBAT to ground.

yup i did =). I am still unsure as to why it cant operate above that voltage though. However, i noticed something very interesting. It doesn't work with 3.3v when i am using my buck converter but works fine with 3.4-3.5 v direct supply from my PSU.

I checked the oscilloscope and i cant notice any sort of noise, it was a clean DC signal with 3.333 V and yet it does not work with my circuit. any other source of 3.3-3.5V works just fine. I doubt its the current, both measures similar current draw and voltages. Could it be capacitance? i dont have the tools the measure these situations unfortunately.

Edit : just a side question, it could be that the supply voltage to the RTC is fine , but the signal of the pull-up resistor is failing. im not sure of this as of yet. but someone might know something about this.

Any suggestions will be helpful =) it was from this post by paul that i figured it was the RTC. thanks again paul