Hello...
I need to communicate to 4 serial devices, and found that nano every have 4 serial ports. All of 4 other devices are 3.3V but nano every is 5V device. So I got into idea to use internal regulator on every (MPM3610) and just change resistor divider to get around 3.5V output instead 5V. I choose 3.5V so that internal linear LDO have 0.2V headroom. Now the funny part. In MPM datasheet there is formula for calculation. R2=R1 / ( (Vo/0.798)-1 )
And if I give original values as every have (100k and 5V), then I got result 18.99k but on board is 19.1k. If I turn around formula Vo=0.798*((R1/R2)+1)
and put values for resistors as every have (100k/19.1k) I got result of 4.78V So something is wrong here or (probably) I miss something.
I wish to change only one resistor as part is so tiny that I'm not sure if I'm capable to do it at all. I know that this will be not optimal and will have bigger ripple but I don't need ADC. Just read 3 serial ports (all at 115200BPS) make some additional headers and send that to serial 4 where ESP8266 is connected. (basicaly 3 serial port to WiFi bridge)
I moved your topic to an appropriate forum category @eslavko.
In the future, please take some time to pick the forum category that best suits the subject of your topic. There is an "About the _____ category" topic at the top of each category that explains its purpose.
What is your final goal - to reduce the voltage of the whole board to 3.3V? Are you sure it will continue to work? AVR chips have limitations on the voltage range depending on the frequency.
In addition, to work with USB, a separate controller is installed on the board, which MUST be powered from 5V, otherwise the board will no longer communicate with the computer.
It looks like you're better off choosing a central board that runs on 3.3V.
Or, as an option, use a logic level converter.
One TXS0108 chip will provide you with conversion for 4 serial ports
In the original schematics the only part that have 5V supply is ATMEGA. All other allready run on 3.3V. External voltage is passed thru MPM3610 switching regulator to get 5V. After that there is linear regulator to get 3.3V from 5V (AP2112). So changing MPM3610 output voltage from 5V to 3.5V should be okay. Only consiredation is that CPU clock should be set to 10MHz or maybe 16MHz, and if circuit is powered from USB, the USB 5V is passed thru D2 to 5V output pin of regulator. (best to remove D2 and have only external voltage.)
As initial problem was formula with strange result, I found the culpruit. For calculation I write simple python script. And for unknown reason python2 is executed instead python3. The big difference is that in python3 all numbers are floats in default. In python2 some values are accepted as integers and that cause wrong results.
For anybody who like/need nano avery to have all gpios at 3.3V I tested my idea and it works!.
Steps to convert board to 3.3V gpios are:
Replace R6 from 100k to 62k. (5V rail become 3.4V rail)
"insert" R20 as short. Easy solution is just jumper wire from top of R19 to top of D3.
Remove D2. If you want to use board with only USB power for programming then place diode with Anode in same place as D2-Anode was, and Cathode connected to Vin.
Undervolting is like overclocking. The processor, or parts of the processor, will likely become unreliable. If you lower the logic voltage, you should also lower the MCU clock frequency.
Leo..
True. As I allready write the clock need to be lowered. Indeed my sample runs at 20MHz at 3.3V but i need reliable thing so I will run at 10MHz. From datasheet the corner frequency for 3.3V is around 13MHz.