Restructered pre-import
This commit is contained in:
244
Old Pages/Electronics/Avr2011_kit.md
Executable file
244
Old Pages/Electronics/Avr2011_kit.md
Executable file
@@ -0,0 +1,244 @@
|
||||
### Kit Contents
|
||||
|
||||
You will need:
|
||||
|
||||
1\) AVR ATMega microcontroller 2) AVR Classboard printed-circuit-board
|
||||
3) Eight resistors (~120 ohm) 4) Eight LEDs (I like the small square
|
||||
ones) 5) 1 uF capacitor 6) 0.1 uF capacitor 7) Two push buttons 8) 6-pin
|
||||
header to connect the FTDI serial cable 9) A small-signal diode for
|
||||
backward-power protection (optional, but certainly won't hurt)
|
||||
|
||||
<figure>
|
||||
<img src="_avr2011_kitContents.jpg" title="_avr2011_kitContents.jpg"
|
||||
width="500" />
|
||||
<figcaption>_avr2011_kitContents.jpg</figcaption>
|
||||
</figure>
|
||||
|
||||
(D'oh! I left the AVR out of the photo. You should have one.)
|
||||
|
||||
### A Brief Tour of the Board
|
||||
|
||||
Before you start assembling anything, have a look at the printed circuit
|
||||
board.
|
||||
|
||||
<figure>
|
||||
<img src="avr2011_pcb.jpg" title="avr2011_pcb.jpg" width="500" />
|
||||
<figcaption>avr2011_pcb.jpg</figcaption>
|
||||
</figure>
|
||||
|
||||
Big and bold in the center is the location for the AVR chip. Notice the
|
||||
notch in the silkscreen at one end? That corresponds to a notch on the
|
||||
top of the AVR chip, and helps you get it in the right orientation when
|
||||
the time comes.
|
||||
|
||||
Just to the outside of the AVR chip itself, you'll see two rows of holes
|
||||
labelled for the port/pin combinations that appear in the datasheet. For
|
||||
instance, just below the chip see the two rows labelled PORTD, and PD0
|
||||
-- PD7. See how there are tiny white lines connecting the two rows of
|
||||
holes, pairwise? Those indicate that the two holes are electrically
|
||||
connected to each other. This was a convenience -- you can solder two
|
||||
things easily to each AVR pin. One side of the chip has PD0-PD7, the
|
||||
other has PB0-PB7 and PC0-PC6.
|
||||
|
||||
Just outside of the AVR connection points, you'll see two more rows of
|
||||
holes, labelled VCC and GND respectively. GND is connected to the
|
||||
board's ground plane, and so is at 0V. VCC is connected to the board's
|
||||
power supply and is whatever voltage you're using to drive the whole
|
||||
mess -- In class, I'll refer to this as VCC or I usually just call this
|
||||
5V.
|
||||
|
||||
And finally, at the edge of the board is another pair of rows of holes.
|
||||
These are electrically connected in pairs, and are just there to allow
|
||||
you to connect things together easily. For the LED array, we'll use
|
||||
these paired holes to connect the resistor to the positive end of the
|
||||
LED.
|
||||
|
||||
Other stuff:
|
||||
|
||||
To the left of the AVR, there are holes for two buttons, a protection
|
||||
diode, power-supply buffering capacitors, an optional power LED and its
|
||||
resistor, a 3x2 SPI programming header, and the 6-pin inline FTDI cable.
|
||||
|
||||
Below the AVR chip area and to the right, there's more prototyping space
|
||||
-- just sets of holes electrically connected to each other in ways to
|
||||
facilitate soldering stuff up.
|
||||
|
||||
The power LED and it's associated LED are optional and included for your
|
||||
creative use/abuse. Everyone should solder the coolest LED they can find
|
||||
in here, with a 100-1k ohm resistor, depending on how bright you want
|
||||
it.
|
||||
|
||||
And those white areas? They're for writing your initials on. Or notes.
|
||||
Tiny, little notes.
|
||||
|
||||
### Assembling the Kit
|
||||
|
||||
0\) If you're new at soldering (or even if you're not) go spend seven
|
||||
minutes with [the best soldering video
|
||||
ever](http://www.youtube.com/watch?v=I_NU2ruzyc4).
|
||||
|
||||
1\) To get your feet wet soldering, install the two capacitors. They can
|
||||
go in either capacitor position, and are non-polarized (can go in either
|
||||
way). When you clip off the leads from the capacitors, save the wire for
|
||||
the next step.
|
||||
|
||||
2\) Now install the two pushbuttons. They're oblong, but there's no top
|
||||
or bottom.
|
||||
|
||||
3\) Solder in the protection diode. Notice that it's polarized, with a
|
||||
black band on the diode itself corresponding to the little band in the
|
||||
silkscreen.
|
||||
|
||||
4\) Above the buttons, there are two pairs of holes -- these connect the
|
||||
button to the pin on the AVR when they're jumpered together. (I did this
|
||||
for flexibility so that you could connect the buttons up to other pins
|
||||
later as you wish.) Take two of the leads you saved in step 1) and
|
||||
connect each pair of holes together.
|
||||
|
||||
<figure>
|
||||
<img src="avr2011_jumpers.jpg" title="avr2011_jumpers.jpg"
|
||||
width="500" />
|
||||
<figcaption>avr2011_jumpers.jpg</figcaption>
|
||||
</figure>
|
||||
|
||||
5\) Solder in the 6-pin header for the FTDI cable. Rather than doing it
|
||||
the way I did (which covers the labels on the circuit board) why not
|
||||
mount the header on the bottom side like Ed did?
|
||||
|
||||
<figure>
|
||||
<img src="avr2011_ftdiInstall.jpg" title="avr2011_ftdiInstall.jpg"
|
||||
width="500" />
|
||||
<figcaption>avr2011_ftdiInstall.jpg</figcaption>
|
||||
</figure>
|
||||
|
||||
6\) Now start on the LEDs -- in PORTB pins PB0 through PB7. They _are_
|
||||
polarized, and you'll notice that one lead is longer than the other. The
|
||||
short lead gets connected to ground, while the long lead will eventually
|
||||
connect through a resistor to the AVR output pins. (Resistors soldered
|
||||
in next step.) Place the LEDs so that their short leads are in the
|
||||
ground strip (labelled GND), and the long lead is in one of the outside
|
||||
rows of hookup holes. Orientation matters here. Double-check it before
|
||||
soldering?
|
||||
|
||||
<figure>
|
||||
<img src="avr1022_rowLEDs.jpg" title="avr1022_rowLEDs.jpg"
|
||||
width="500" />
|
||||
<figcaption>avr1022_rowLEDs.jpg</figcaption>
|
||||
</figure>
|
||||
|
||||
For aligning the LEDs, I had success putting them all face-down on the
|
||||
table, and using the fact that they have rectangular faces. Pro-tip:
|
||||
solder one pin on each LED, make sure they're in a nice line, and
|
||||
re-heat any that you need to wiggle into place. Then solder in the
|
||||
second pin on each LED.
|
||||
|
||||
<figure>
|
||||
<img src="avr2011_aligningLEDs.jpg" title="avr2011_aligningLEDs.jpg"
|
||||
width="500" />
|
||||
<figcaption>avr2011_aligningLEDs.jpg</figcaption>
|
||||
</figure>
|
||||
|
||||
7\) Once you've done the LEDs, you can solder in their resistors. These
|
||||
fit most easily and cleanly on the underside of the board, so you'll
|
||||
want to trim off the extra leads from the LEDs before installing. You
|
||||
want to solder each resistor to the outside strip of holes that
|
||||
connected to the positive (long) pin of the LEDs, and the other end of
|
||||
the resistor to the pins of the AVR. Notice that you're working on the
|
||||
back-side of the board! Double-check that you're not connecting the
|
||||
resistor to the VCC line that is closest to the LED.
|
||||
|
||||
<img src="avr2011_LEDresistors.jpg" title="avr2011_LEDresistors.jpg"
|
||||
width="300" alt="avr2011_LEDresistors.jpg" />
|
||||
<img src="avr2011_LEDresistors_top.jpg"
|
||||
title="avr2011_LEDresistors_top.jpg" width="300"
|
||||
alt="avr2011_LEDresistors_top.jpg" />
|
||||
<img src="avr2011_LEDresistors_bottom_done.jpg"
|
||||
title="avr2011_LEDresistors_bottom_done.jpg" width="300"
|
||||
alt="avr2011_LEDresistors_bottom_done.jpg" />
|
||||
|
||||
8\) At this point, you can install the chip. They come from the factory
|
||||
with the pins splayed out a little bit -- you can lean the chip into a
|
||||
tabletop to straighten the pins out. Place the chip with the notch on
|
||||
the top of the chip corresponding to the notch in the silkscreen.
|
||||
Double-check. Solder.
|
||||
|
||||
<img src="_avr2011_chipBending.jpg" title="_avr2011_chipBending.jpg"
|
||||
width="400" alt="_avr2011_chipBending.jpg" />
|
||||
<img src="_avr2011_chipAlignment.jpg" title="_avr2011_chipAlignment.jpg"
|
||||
width="400" alt="_avr2011_chipAlignment.jpg" />
|
||||
|
||||
9\) Optional fun stuff: Feel free to solder in an artistic power LED and
|
||||
its resistor. (Note the polarization. Short pin downwards, or notice
|
||||
that there's a flat-spot on the LED flange.) Write your name on it. Wire
|
||||
up the battery (black wire to GND).
|
||||
|
||||
<img src="_avr2011_kitDone.jpg" title="_avr2011_kitDone.jpg" width="400"
|
||||
alt="_avr2011_kitDone.jpg" />
|
||||
<img src="_avr2011_kitDone2.jpg" title="_avr2011_kitDone2.jpg"
|
||||
width="400" alt="_avr2011_kitDone2.jpg" />
|
||||
|
||||
10\) You should now be ready to flash in your first program. Hooray.
|
||||
From here on it's (mostly) firmware!
|
||||
|
||||
### Adding the Light Sensor for Class 2 (ADC)
|
||||
|
||||
For the light sensor, you're creating a voltage divider with the
|
||||
photoresistor and two legs of the potentiometer used as a variable
|
||||
resistor. The photoresistor is connected to VCC and the AVR pin PC0, and
|
||||
the variable resistor from PC0 to ground.
|
||||
|
||||
In the following image, the red pins represent the potentiometer, and
|
||||
the blue are the leads from the photoresistor.
|
||||
|
||||
<figure>
|
||||
<img src="_avr2011_bare_board_annotated_small.jpg" title="500 px" />
|
||||
<figcaption>500 px</figcaption>
|
||||
</figure>
|
||||
|
||||
Start out by placing and soldering the potentiometer on the underside of
|
||||
the board. Make sure that the smaller center pin connects to the ground
|
||||
lines. Do _NOT_ clip the leads short yet.
|
||||
|
||||
<figure>
|
||||
<img src="_avr2011_board_bottom.jpg" title="500 px" />
|
||||
<figcaption>500 px</figcaption>
|
||||
</figure>
|
||||
|
||||
Bend one lead on the variable resistor up and over the two other holes
|
||||
on the board, and plug it into PC0. Solder it in on the top side. Now
|
||||
soldering the photoresistor in place should be easy.
|
||||
|
||||
<figure>
|
||||
<img src="_avr2011_board_topside_soldered.jpg" title="500 px" />
|
||||
<figcaption>500 px</figcaption>
|
||||
</figure>
|
||||
|
||||
Flash in the light sensor firmware and turn the potentiometer until it
|
||||
give you a nice range of values on the LED display. I found that turning
|
||||
it up to _just_ max out in full light works well -- you'll see that
|
||||
it'll get down to one or two bars when you cover the cell with your
|
||||
hand. You're done!
|
||||
|
||||
### Schematics, etc
|
||||
|
||||
If you'd like to make yourself a class-board, the attached Eagle files
|
||||
should get you started.
|
||||
|
||||
Warning: It's a good idea to socket your AVR in the board so that you
|
||||
can remove/swap chips when you want to.
|
||||
|
||||
Also, the LEDs in port B will over-ride the SPI port. For the class, we
|
||||
used AVRs with a bootloader already flashed into them, so we didn't use
|
||||
the SPI most of the time. If you'd like to use the SPI instead, you can
|
||||
**probably** get away with using large-value (1k Ohm?) resistors for the
|
||||
LEDs. Best is to omit them if you're going to use the SPI a lot, though.
|
||||
|
||||
[Media:
|
||||
mega_classboard_files.zip](Media:_mega_classboard_files.zip "wikilink")
|
||||
|
||||
Finally, if you want something with almost all of the functionality (but
|
||||
none of the style!), Evil Mad Science sells a nice, very cheap, AVR Mega
|
||||
breakout board.
|
||||
|
||||
[Category:Microcontrollers](Category:Microcontrollers "wikilink")
|
||||
[Category:AVR_Class](Category:AVR_Class "wikilink")
|
||||
Reference in New Issue
Block a user