This may be well known, but I thought I would post my experience, maybe save someone else some troubles.
I'm working on a small project that requires low power and the atmega328P, running at 3.3v 8Mhz ( actually intend to run it at ~2.8v in the final project as that saves a milli-amp or so.) is a perfect fit.
The first prototype I just used a pro-mini that I bought from SparkFun years ago on a perf-board, Worked great. I built a second unit much the same, only i used a different display. The second unit, i used a cheaper Chinese pro-mini. This worked fine too, however, while the SparkFun unit worked fine at ~2.7 volts, ( tested it down to 2.5 volts! ) the Chinese unit would not function under ~3.3volts. Not a huge deal, but i thought it was strange.
Once I had the design and the code pretty much sorted out, Decided to try EasyEDA to build up a board, instead of KiCad. This was , well, pretty easy, and it was really nice just to pick parts from LCSC for the board. This saved a bunch of time, footprints and BOM are automatically generated, pretty handy.
I got the board all put together, with all the parts I ordered from LCSC, and here is where things turned weird.
I initially programmed the blank 328P with a USBasp programmer, set at 3.3v. The board programmed just fine, but the code would not run. I tried a different USB>TTL converter, and it worked. But when I tried to power the board externally from 3.3V, it would not run the code.
So i checked, and it turned out that the second USB>TTL was actually supplying 5 volts, not the 3.3 i thought it was. So, while the USBasp programmer would program the micro just fine at 3.3v, it simply would not run on 3.3v.
I tried several different things, using another pro-mini as an ISP, loading the pro-mini bootloader, a bread board bootloader ( to use the internal oscillator ) double checking the fuse settings just in case the brown out was set wrong.... etc. Nothing worked, the code simply would not run, nor would it program using the boot loader, if i tried to use 3.3 volts. It would only work if i used 5 volt VCC.
Finally I just decided to de-solder the LCSC 328P that was on the board, and solder on a known good 328P from one of the China pro-mini dev boards. This worked.
So, maybe I just got a bad chip, or maybe LCSC is using knock off clones. LCSCs' price for a single atmega328p is not much different than what digikey is charging, so from now on i will just get them from digikey, hopefully they will be genuine units.
project details...if anyone is wondering why the heck Im trying to use such a low VCC and clock...
The project is a small current sinking tool for testing 4-20mA loops, and its powered by the loop ( no batteries needed ) . I'm using a ILI226 as feedback, and a MCP4725 feeding an opamp circuit to regulate the current in the loop. Using a backlit 128x64 monochrome TFT to display data.
The backlight is the killer.... With only 4mA to work with. But so far, its working better than i had hoped. Using a small buck converter, it functions very well from ~10 to 24+ volt loop voltage, and the output is very stable and noise free, even with the DC/DC converter.