1
\$\begingroup\$

I am trying to custom design my own microcontroller circuit and want to eventually embed it into my system. I decided to use an Arduino Mini Pro 3.3V/8Mhz provided from Sparkfun and the links for the schematic of the board and the design files are shown below.

https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Arduino-Pro-Mini-v14.pdf https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Arduino-Pro-Mini-v14.zip

My question is, what component can I remove from this original circuit? For example, something like "LED1" and "R11" doesn't seem like to play any critical role in its circuitry.

By the way, I removed the "R6" and "D3" to test if I can compile and upload the code using Arduino IDE, but did not work after removing those two components.

Can anybody tell me why? I tried to look at the datasheet, but no luck so far.

Thank you in advance for your advice!

\$\endgroup\$
  • \$\begingroup\$ All a microcontroller needs is stable power supply curcuit, reset curcuit and flashing curcuit. Now look at the schematic and remove everything that you don't need. HINT : Do not touch it if it is connected on Vcc,Vdd,Reset and (Rx,Tx for Arduino). \$\endgroup\$ – MaNyYaCk Sep 18 '18 at 5:39
4
\$\begingroup\$

There's not a whole lot to get rid of from a Pro Mini. What you can eliminate really depends on your application, but there's so little to it we can go through the whole schematic you linked pretty quickly:

  • Everything on the top left (U2 etc): This is the power supply, and one way or another your board will need one of these. If you have an external power supply that supplies 5V or less and is well regulated, then you can probably connect this directly to the MCU. You will still need some local capacitance, though, so C13 and C10 should probably stay.

  • C2 is used to provide an automatic reset to the MCU when the serial port is opened for programming, this makes sure that the Arduino is in the bootloader when you go to upload your sketch. You can leave this off, but you will have to manually reset or power cycle your device when you want to program it.

  • S1: this is totally optional, but it's definitely convenient to have a reset button rather than having to power cycle your device while you're developing your program.

  • R2: this pulls the reset pin up, this is almost always necessary. Keep it.

  • C1 and C3: These are local decoupling capacitors and should always be fitted as close to the power pins on the IC as possible. Keep these.

  • Q1: This is the oscillator that provides the 'heartbeat' of the microcontroller. You need some sort of oscillator, but you could use the internal 8MHz oscillator built into the microcontroller. This gets you two extra IOs to play with, but the internal oscillator tends to be less accurate and less stable than the an external crystal, so it's not as good for precision timing, for instance for serial ports.

  • R1 and R3: These are necessary if you're using any I2C devices, but they can be eliminated otherwise.

  • D3 and R6: These are the default user LED in the Arduino environment, but if you don't need any LEDs in your application you can leave this off (or move the LED to another pin)


If you don't mind, can you elaborate more about how C2, R2, and VCC is working with DTR and reset part? Is there any protocal you can check from the manual? I just want to have deeper understanding in that part to comprehent its working principles. Thank you in advance for your help. – Tiger Balm 15 hours ago

In response to your comment, you can use the schematic below in Circuitlab to simulate the behavior of the reset network (C2, R2, and DTR). The two diodes represent ESD diodes typically present on MCU pins (The reset pin might not have these, as it may require a different IO structure than a GPIO).

schematic

simulate this circuit – Schematic created using CircuitLab

The basic operation is this: The reset pin is active low, meaning that the chip will be in reset as long as that pin is held to a low voltage. R2 pulls the pin high normally, keeping the chip out of reset. The DTR line on a serial adapter is also active low, and the Arduino IDE will assert it (pull it low) when they open a connection to the device. Because C2 is discharged (both sides are at VCC), it initially acts like a short circuit, and through it the DTR line pulls reset low, resetting the chip. Over time, C2 charges through R2, and the voltage at the reset pin increases, allowing the chip to come out of reset.

If we simulate that (open the schematic above, click "Simulate", then "DC Sweep", then "Run Time Domain Analysis", you'll see what's happening:

enter image description here

The orange trace is the voltage at DTR, the blue trace is the voltage at reset.

\$\endgroup\$
  • \$\begingroup\$ I know this is probably too late, but thank you so much for your comments. It really helps me a lot to understand. \$\endgroup\$ – Tiger Balm Feb 4 at 23:34
  • \$\begingroup\$ If you don't mind, can you elaborate more about how C2, R2, and VCC is working with DTR and reset part? Is there any protocal you can check from the manual? I just want to have deeper understanding in that part to comprehent its working principles. Thank you in advance for your help. \$\endgroup\$ – Tiger Balm Feb 4 at 23:45
  • \$\begingroup\$ I have updated the answer with a response to your question, since an adequate explanation would not fit in a comment. \$\endgroup\$ – ajb Feb 5 at 15:46
  • \$\begingroup\$ Thanks a lot ajb, it really helped me understand how DTR - reset pins work and why peripheral components are needed ! \$\endgroup\$ – Tiger Balm Feb 11 at 20:48
0
\$\begingroup\$

A minimal number of components are needed:

0.1uF Cap from FTDI Basic header's DTR output pin to Reset, 10K pullup on Reset.

Diode like 1N4148, cathode to Reset, anode to VCC. Keeps any high voltage spikes from fooling the chip into thinking high voltage programming mode is being entered, and then acting hung.

0.1uF cap on VCC (pin 4).

0.1Uf cap on the other VCC pin (pin 6).

0.1uF cap on AVCC (pin 18).

0.1uF cap from Aref to Gnd (pin 20). DO NOT CONNECT AREF TO VCC.

I generally use a crytal (8 MHz or 16 MHz) and two 22pF caps. Some might use a resonator.

Header to plug FTDI Basic (or a clone) onto: Power, Gnd, Tx, Rx, DTR

If space permits, a header for bootloading and setting fuses via a Programmer: Power, Gnd, Reset, SCK, MISO, MOSI.

If no space, make the pins accessible for connecting a Programmer up.

\$\endgroup\$
0
\$\begingroup\$

You are not going to physically remove those components are you? Other than gaining experience with desoldering i don’t really see the point of that. If I were in your shoes (been there) I’d grab a DIP Atmega328P, the handful of passives that are left over after applying the answers listed above in THT package and build your own Arduino on a breadboard.

You’ll see that it is very easy and the hard part is actually to get any code running on it. That’s because stock Atmega’s don’t come with the Arduino bootloader. Luckily you can use your Pro Mini as an ICSP programmer. You’ll need that anyway once you’ll start assembling custom AVR boards.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.