One nice thing about the AVR is that all I/O pins have identical digital
characteristics (pull-up, down, hysterisis, thresholds). So from a general
I/O point of view there is no issue. Peripherals can be switched in/out and
are attached to specific pins. The best way to learn about them is as Ned
noted, below: Read the manual.
Analog pins are slightly different in that they have their own power supply
(AVCC) which has to be the same as VCC so there is really no difference
except that the filtering on the supply is recommended to keep the readings
clean. I never do anything special for my AVCC line, relying upon proper
board layout & bypassing and generally I get excellent results.
Although you can do digital I/O on an analog line while doing an analog
conversion, it basically messes up the results due to the digital logic
current draw affecting the signal levels. Clever code could put the digital
logic into a high-impedance input state before conversions. Newer chips
have a bit in a register to physically disconnect the digital section from
the analog so that too could be manipulated to get on-the-fly digital and
analog out of one pin.
| -----Original Message-----
| From: AVR-Chat@yahoogroups.com [mailto:AVR-Chat@yahoogroups.com] On Behalf
| Of Ned Konz
| Sent: Wednesday, November 22, 2006 12:11 PM
| To: AVR-Chat@yahoogroups.com
| Subject: Re: [AVR-Chat] AVR port pin verification help?
|
| luthjej wrote:
| > Hi all,
| > I'm new to this group, predominantly because I've always used PIC's
| > for control applications - but I've decided that it's time to give the
| > AVR a whirl; the feature list on the mega series AVR's is just too
| > good to pass up! :)
| >
| > For my first design, I'm using a mega8 MCU for a closed loop
| > automotive control circuit, nothing terribly fancy, but I'm just
| > wondering about port allocations in terms of digital I/O's - I know
| > that on the older MCU's (PIC12Fxx, HC11 etc) there were significant
| > restrictions on what ports can be used for what function (i.e. PWM was
| > restricted to only a few pins, some ports were input or output only
| etc).
| >
| > So, just before I go and get the PCB printed up, I was just hoping
| > that the knowledgable could cast their eye on my pin allocations that
| > I'm not doing anything impossible (or anything that's a particularly
| > bad idea! :).
| >
| > I've read the data sheet cover to cover, and haven't come across
| > anything yet, although I'm still a bit vague as to which pins can
| > actually support PWM and whether different pins on different ports can
| > be allocated to different functions at the same time (e.g ADC Port -
| > can I do digital logic in, logic level out AND ADC conversion - all at
| > the same time?
| >
| Read the section starting at page 56 on I/O ports/Alternate Port
| Functions. For a given internal peripheral you typically have a limited
| set of choices; perhaps only one.
|
| On the ADC ports, there is a discussion about combining ADC operation
| and digital operation (in the ADC section, I think). These (and maybe
| the analog comparator inputs?) are about the only case I can think of of
| being able to use a pin in multiple modes; typically with the digital
| functions the pins go through a multiplexer and you have to choose.
|
| > PB0 - Out Piezo Buzzer Out (Direct Drive 20mA Max)
|
| > PB1,2 - Out PWM Drive 1,2 (to FET driver IC)
| If you want to use the hardware PWM outputs this is a sensible choice
| (PB1=OC1A, PB2=OC1B). But both will be running at the same frequency
| because they share the same timer counter.
|
| > PD0,1 - In/Out RS232 Out via MAX232
| Right.
|
| > PD2-7 - LCD Display Out
| OK, as long as you don't need the analog comparator or external
| interrupt pins.
|
| > PB6 - Out SPI Device Slave Select
| So the AVR is a SPI master here?
|
| > PB7 - In Keyboard (switches via 1N914's across PD2-7)
|
| > PC0 - 0-5v analogue in (for ADC use)
| Assuming Vref is 5V, that's OK.
|
| > PC1-3 - +12v logic in (direct connect via 1k resistor)
| Nope. You'd be driving too much current through the input protection
| diodes. What's your VCC level? Why 1K? And if you mean "automotive 12V"
| you VERY MUCH NEED input protection circuitry! Remember that you can see
| voltages up to 60V here (if you have a loose battery cable, for
| instance) and even negative voltages! There is much information
| available on input signal conditioning for automotive voltages. Same
| thing goes for your 12V-to-5V power supply; you can't expect to safely
| connect just a 7805 and have everything survive!
|
| > PC4 - 0-5v analogue in (for ADC use)
| Assuming Vref is 5V, that's OK.
|
| > PC5 - FET Drive (on/off) via FET Driver IC
| OK
|
| > MISO, SCK, MOSI - SPI Bus & ICP Header (Also LED via 500R resistor to
| > indicate SPI activity)
| Right:
| PB4/MISO
| PB3/MOSI
| PB5/SCK
| >
| > AREF,AVCC,VCC - Regulated +5v (no decoupling - direct connect)
|
| If you want to use AVcc for AREF, you should do this internally and use
| AREF for a decoupling cap. And you might want to connect AVCC to VCC via
| an inductor/cap network.
|
| >
| > Thanks in advance for your help.
| >
| >
| > Jon
| >
| >
| >
| >
| >
| >
| > Yahoo! Groups Links
| >
| >
| >
| >
|
|
|
| --
| Ned Konz
| ned@bike-nomad.com
| http://bike-nomad.com
|
|
|
| Yahoo! Groups Links
|
|
|