Questions on making a minimal/custom Arduino circuit @ 3.3v/8Mhz?

Despite what the symbol is, caps less than 1 uF are typically unpolarized, and >= 1 uF
are typically polarized.

what IS the minimal (but still somewhat stable/safe) components needed?

A minimum implementation would include just the chip itself.

A reasonable minimum implementation would have a decoupling cap, a crystal + two caps, or a decoupling network on the analog supply. And then more from there, based on your needs.

I have done many "chip-only" minimum implementations myself.

hi..
thanks for the reply..

this can not (should not) be a chip by itself project... IMHO..

I mean I need it to be small.. but I want it to work and be somewhat stable! lol

Since it will be running @ 3.3v & INTERNAL 8Mhz clock... I dont need the caps/crystal.......correct?

RESET pin broken out (for easier flashing/uploading)
DTR pin broken out (for easier flashing/uploading)

AREF pin (correctly set-up... I see in the schematic Crossroads posted.. he has the AREF pin connected to GND through a cap... but I do NOT need to connect to the 3.3v for a voltage refeence? Just keep it INTENRAL reference at the 1.1v or whatever?)

and of course I want to ensure that I 'correctly' set-up the battery/power input..

since there will NOT be any voltage regulator (battery supply will be within the 3-3.7v range max).. but I want it to be stable..no ripples.

follow same principles or ceramic/polarized cap on the input power lines?

@ oric_dan(333)

Despite what the symbol is, caps less than 1 uF are typically unpolarized, and >= 1 uF
are typically polarized.

thanks!.. rules like this help a noob like me.

I am still wrestling with 'decoupling'.. and 'KNOWING' when to use a certain component or not (like when to use ceramic vs polarized..etc)

hopefully I can get to a more final version tonight/tomorrow.. and I'll post for review..

appreciate all the discussion guys!

thanks! :slight_smile:

The little ceramic decoupling caps are not polarized. Example:

Rule of thumb/general guidance: 0.1uF cap on every Vcc/Avcc pin on every part located as nearby as possible.

Aref - needs a 0.1uF cap to Gnd if you are using the internal references
See 2.2:

AtmelAVR042 AVR Design Considerations.pdf (236 KB)

Lithium coin cells are usually 3.6 volts, not 3.0.

that's wrong. You can find Li-ion coin cells with a "nominal" 3.6V or 3.7V, but the vast majority of non-rechargable Li coin cells are 3.0V 404 - Duracell Batteries | AA, AAA, Rechargeable, Coin Button

this can not (should not) be a chip by itself project... IMHO..

I mean I need it to be small.. but I want it to work and be somewhat stable! lol

The chip-only implement will work and will be very stable.

update: well.. i got things up and running with a minimal/breadboard Arduino using +3.3v @ 8MHz internal clock

to be clear order of things (for me) were:

1.) hook up my Arduino Duemilanove 2009 board to USB
2.) Open IDE (I used v.23)
3.) Tools >>> Board >> (Duemilanove 2009)
4.) Tools >>> Serial Port (select port your above Arduino is connected to)
5.) File >>> Examples >>> ArduinoISP.. (upload this sketch to your Arduino board.
6.) Disconnect.. from USB
7.) Connect a 100-120 ohm resistor between RESET & +5v (to disable auto-reset on the MAIN board)
8.) Connect your target board (minimal +3.3v/8Mhz internal clock) to the MAIN Arduino above.

Wiring Pnout:
Arduino board pin >>> Target board pin
D10 >>>> RESET
D11 >>>> D11
D12 >>>> D12
D13 >>>> D13
GND >>>> GND
+3.3v >>>> VIN on breadboard...

9.) Reconnect MAIN Arduino board to USB.
10.) Open IDE (I used v.23)
11.) Tools >>> Board >> (Breadboard 3.3v with Internal 8MHz clock)
12.) Tools >>> Serial Port (select port your above Arduino is connected to)
13.) Tools >>> Burn Bootloader >> w/Arduino as ISP

(bootloaded and can upload sketches all day...)..

two things I noticed though...

1.) Does NOT work with Aruino IDE 1.0+ out of the box...not sure exactly how to make it work yet either.

From reading around, it seems to have something to do with:
a.) editing/adding pin_arduino.h or Arduino.h files to somewhere.
b.) edit the breadboard 'boards.txt' file.. and add a line at the end?

(not to sure.. a bit above my comfort level messign with boards.txt and stuff)

this is just specific to my project.. not about the minimal Arduino part..


2.) and the MAIN problem I need to overcome.. I cant seem to communicate/initialize an SD card???
Using an Arduino @ 16MHz (external crystal) & +5v... I have never had a problem.. with voltage divider or level shifter..or shield...

having the Arduino with +3.3v logic and INTENRAL 8MHz clock doesnt seem to work.. and I 'thought' I would be able to directly connect/communicate to it? (no voltage divider, no level shifter..etc)

been searching around.. and havent found much on using 3.3v8MHz internal clock -with- SD card..

anyone done this? (so I know Im not spinning my wheels?)

Lets see the schematic you said you'd post back in #15 & #18, and your sketch.

How'd you bootload it?

(sorry thought I had posted it)..

I ran into this post while searching here on the topic.. and just updated the outcome..

I started a thread about 3.3v/8MHz Internal clock and SD card communication thread here:

I have that circuit mocked-up on a breadboard right now.. before I order PCBs and make it all SMD..

this is the SAME project.. that we discussed via PM.. (ultra tiny pcb with zero space to work with & custom pcb shape/outline)

The last post in the other thread, you say SD PIN >>> Arduino
DAT2(9) >>> NOT USED
CD/CS (1) >>> D10
CMD/DI(2) >>> D11
VSS1/GND(3) >>> GND rail
VDD/V++(4) >>> +3.3v rail
CLK/SCK(5) >>> D12
VSS2/GND(6) >>> GND rail
DAT0/DO(7) >>> D13
DAT1( >>> NOT USED

These are not the correct pins for SPI:
D13 - SCK
D12 - MISO
D11 - MOSI
D10 - SS

What is really connected?
Are you really running from coin cell? May not have enoughcurrent oomph for the SD card.

(not sure if I should post here or there) hahah

hmm.. (Im hoping I just fat finger the pinout!)...

but I thought that was how I had it wired it up:

DAT2(9) >>> NOT USED
CD/CS (1) >>> D10
CMD/DI(2) >>> D11
VSS1/GND(3) >>> GND rail
VDD/V++(4) >>> +3.3v rail
CLK/SCK(5) >>> D12
VSS2/GND(6) >>> GND rail
DAT0/DO(7) >>> D13
DAT1(8) >>> NOT USED

I'll have to check when I get home... looks like I have D12 and D13 switched??

This tutorial has some interesting tips on power saving a minimalist board.

http://www.sparkfun.com/tutorials/309

Well I checked it out.. looks like I only typed it wrong..

this is what I have:

DAT2(9) >>> NOT USED
CD/CS (1) >>> D10
CMD/DI(2) >>> D11
VSS1/GND(3) >>> GND rail
VDD/V++(4) >>> +3.3v rail
CLK/SCK(5) >>> D13
VSS2/GND(6) >>> GND rail
DAT0/DO(7) >>> D12
DAT1(8 ) >>> NOT USED

so.. whilke I had typed it with D12 and D13 switched.. checking the wiring.. it was NOT as originally posted..

the above is how it 'is' currently wired.

I can upload any sketch.. but anything that uses the SD card 'fails'..

SD lib >>> Files Sketch:

Initializing SD card...initialization failed!

SdFat lib >>> SdInfo:

SdFat version: 20110902

type any character to start

card.init failed
SD errorCode: 0X1
SD errorData: 0X0

type any character to start

Im not sure where to start troubleshooting?

  • Im not sure if this is/could be a boards.txt problem? (a tweak to a fuse setting because the timing is off or something 'odd'?
  • Im not sure if I just need to add a cap/resistor somewhere that I missed? (everything is direct connect except for the cap on the VDD/VSS lines of the SD lines)
  • Maybe not even possible to do this with 8MHz internal clock @ 3.3v?

Gotta be something silly Im doing on my end..??

heres the schematic:

thanks!

also to answer you Crossroads.

I am using a PSU..

but I have powered/tried it from being powered form the FTDi cable (+5v)..

I have tried from PSU @ +3.3v...

I have 'not' tired the coin cell that I plan on using in the end..(yet).. no point in trying it yet..lol

I am stumped.
Send a pm to fat16lib, ask him to review this thread.

sounds like a plan...

I'll be sad if this isnt even possible.. and Ive been spinning my wheels! lol..

well I PM'd him.. and got a response..

although Im not sure it really applies to me? or if Im over thinking it..etc.etc..

but basically fat16lib responded that SD cards will work with +3.3v/8MHz boards...

he stated he uses one with the Pro-Mini..

and also said he uses this breakout board: SparkFun microSD Transflash Breakout - BOB-00544 - SparkFun Electronics

which to me looks like a 'bare' bones SD socket on a pcb.. (which is good.. since I too have nothing on my SD card)

however.. it looks as if the Pro-Mini 'does' in fact use an external 8Mhz crystal on-board?

and I am using 8MHz INTERNAL clock??..

could this be where the problem lies?

I have changed out the MOSI/MISO/CS/CLK wires too just in case they were 'bad'... still same results..

I wanna hear from ANYBODY that has done this on an internal 8MHz clocked chip?

this is starting to kill my self-esteem! hahaha :wink:

thanks guys!

I'm sure that what you are trying to do is possible. It should not matter whether you use a 8MHz crystal or 8MHz internal clock, the SD card does not have an internal time reference so it doesn't care what the exact clock speed is. I suggest:

  1. With the SD card removed, run some sketches on your board to test it out. Include sketches that toggle the pins that you use to communicate with the SD card.

  2. Check your connections between the mcu and the SD socket carefully, looking for open/short circuits.

hmm..

Im baffled still then...

If the SD card doesnt matter about the clock (external/internal)..

then why isnt it possible? (curious)..

fat16lib says he does it with pro-mini.. +3.3v & external 8Mhz crystal... (stand alone SD socket..no caps/resistors..etc)

so to comment back it 'should' be possible..if others have done it?

I have an LED on pin 13..and that works fine.. I can go through and check the other pins too (12, 11, 10).. to ensure they 'toggle'..(they should..its a brand new chip from the factory)

as far as connections.. its on a breadboard.. and I have replaced the jumpers wires once to check to see if bad connection

thanks!