Forum: Mikrocontroller und Digitale Elektronik AVR Auswahl mit Speziellen Vorgaben


von N.G. (Gast)


Lesenswert?

Hallo Leute,

Ich weiß, es gibt schon viele solche Tgreads, aber keiner von diesen 
passte genau auf meine Kriterien.

Ich suche einen kleinen AVR, am besten 8bit, mit folgrnden 
Spezifimationen.
1
- AVR Architektur 
2
- so wenig Pins wie möglich, aber
3
   - mdst. 8 ADCs
4
   - sowie 12 weitere I/O-Pins
5
- SMD
6
- bis 16MHz (nicht unbedingt nötig, aber wäre schön)
7
- mit einem RESET-Pin, der nicht als I/O verwendet wird
Ich hätte einfach nur gerne einen Chip, der als "Unterstützungs"-Chip 
dient, und mit vielen ADCs. Auf der Paltine, auf welche der AVR noch 
soll, sitzt schon ein mega2560, aber dessen 16 ADCs sind schon alle 
genutzt. Und eig wollte ichcnicht noch mal einen Chip mit 64 oder mehr 
Pins drauf setzen.

Also, nun meine Frage: wer weiß einen Chip auf den das oben genannte 
zutrifft? Das würde mir viel Zeit mit allen möglichen Darenblättern 
sparen, und meine Zeit ist eh schon sehr eng dimensioniert.
Gibt es vllt eine Seite, auf der alle Tinys, Megas, und meinetwegen auch 
noch xMegas in einer Liste stehen?

Danke schon mal im Vorraus
MfG
N.G.

von Max B. (theeye)


Lesenswert?

N.G. schrieb:
> Ich suche einen kleinen AVR, am besten 8bit, mit folgrnden
> Spezifimationen.

Dafür haben die Hersteller sich schon was überlegt...
http://www.atmel.com/products/selector_overview.aspx

Gruß Max

von Thomas E. (thomase)


Lesenswert?

N.G. schrieb:
> - AVR Architektur
> - so wenig Pins wie möglich, aber
>    - mdst. 8 ADCs
>    - sowie 12 weitere I/O-Pins
> - SMD
> - bis 16MHz (nicht unbedingt nötig, aber wäre schön)
> - mit einem RESET-Pin, der nicht als I/O verwendet wird

Atmega 48-328. Die Finger von der RSTDISBL-Fuse zu lassen, bleibt 
allerdings dir überlassen.

mfg.

von chris (Gast)


Lesenswert?

ATtiny861
ATtiny841
ATtiny84

schau mal durch vielleicht was dabei

von Frank K. (fchk)


Lesenswert?

Du hast keine 16 ADCs, sondern genau einen, mit einem 16:1 Multiplexer. 
Du kannst durchaus noch weitere Multiplexer davor schalten, um die 
Anzahl der analogen Eingänge zu erhöhen. Ein FST3253 macht aus 2 Inputs 
8 Inputs.

Oder Du nimmst externe ADCs, die per SPI oder I2C angeschlossen werden.

fchk

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Du hast keine 16 ADCs, sondern genau einen, mit einem 16:1 Multiplexer.
> Du kannst durchaus noch weitere Multiplexer davor schalten, um die
> Anzahl der analogen Eingänge zu erhöhen. Ein FST3253 macht aus 2 Inputs
> 8 Inputs.
Ja, das mit dem ADC wusste ich schon, nur wie soll ich noch weitere 
Channels bilden? Gehts das ohne aufwendige externe Beschaltung?
> Oder Du nimmst externe ADCs, die per SPI oder I2C angeschlossen werden.
Das würde ich nach möglichkeit gerne Vermeiden, da auf den SPI-Pins 
schon andere Senenoren liegen, und der IIC möglicherweise zu langsam 
ist; da hängen schon ein CMPS03 und 5 SRF10 dran, die Werte haben 
Priorität

Aber schon mal danke an alle

von spess53 (Gast)


Lesenswert?

Hi

>Das würde ich nach möglichkeit gerne Vermeiden, da auf den SPI-Pins
>schon andere Senenoren liegen,...

Jede der vier USARTs kann auch SPI.

MfG Spess

von holger (Gast)


Lesenswert?

>> Oder Du nimmst externe ADCs, die per SPI oder I2C angeschlossen werden.
>Das würde ich nach möglichkeit gerne Vermeiden, da auf den SPI-Pins
>schon andere Senenoren liegen, und der IIC möglicherweise zu langsam
>ist;

Wie wolltest du nochmal den zweiten Atmega anbinden?

von N. G. (newgeneration) Benutzerseite


Lesenswert?

spess53 schrieb:
> Jeder der vier USARTs kann auch SPI.
Okay, danke, das wusste ich noch nicht. Aber ich habe noch nie etwas mit 
SPI gemacht. Wie ist denn da das "delay", also die Zeit, bis der 
Processor wieder etwas anders machen kann. Und wie schnell kan man ein 
Byte übertragen?

Wobei eig diese Frage sich erübrigt, da ich zum Tiny88 tendiere
Danke an alle

von holger (Gast)


Lesenswert?

>Wie ist denn da das "delay", also die Zeit, bis der
>Processor wieder etwas anders machen kann.

Bei 8MHz SPI sind es für ein Byte so ziemlich genau
eine Mikrosekunde. Mit einem uC als Slave wirst du da nie
hinkommen.

von Wolfgang (Gast)


Lesenswert?

N. G. schrieb:
> Das würde ich nach möglichkeit gerne Vermeiden, da auf den SPI-Pins
> schon andere Senenoren liegen, und der IIC möglicherweise zu langsam
> ist;

Ah, wo du gerade das Thema Geschwindigkeit anschneidest, sollte man 
vielleicht mal eingrenzen, was du überhaupt suchst.

 - Wie schnell sollen deine zusätzlichen ADCs sein?
 - Welche Auflösung benötigst du?
 - Welche Genauigkeit benötigst du?

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> - Wie schnell sollen deine zusätzlichen ADCs sein?
Naja, es sollte keine lange Converrsion-time sein, also unter 250us
>  - Welche Auflösung benötigst du?
8-Bit reicht, weniger sollten es nicht sein
>  - Welche Genauigkeit benötigst du?
Naja, an die Qualität von den ATmega-ADCs sollte es schon rankommen

Also eigentlich keine hohen Ansprüche

: Bearbeitet durch User
von frager (Gast)


Lesenswert?

Was willst du überhaupt machen. Muss es ein adc sein? Manchmal geht es 
mit geschickter elektronik auch ohne

von N.G. (Gast)


Lesenswert?

frager schrieb:
> Was willst du überhaupt machen. Muss es ein adc sein? Manchmal geht es
> mit geschickter elektronik auch ohne
Naja, ich habe an den ADCs diverse IR-Dioden dran hängen. Sie sollen den 
IR-Ball RCJ05 erkennen können. Wenn das ohne ADC geht, dann nur her mit 
einer schaltung. Aber bitte auch nur 1 Pin

von c-hater (Gast)


Lesenswert?

N.G. schrieb:

> Naja, ich habe an den ADCs diverse IR-Dioden dran hängen. Sie sollen den
> IR-Ball RCJ05 erkennen können. Wenn das ohne ADC geht, dann nur her mit
> einer schaltung.

Für deinen Zweck genügt vermutlich die "ADC des kleinen Mannes" völlig.


          ---------
GPIO o---|         |---*------
          ---------    |      |
                       |      |
                     -----  -----
                     -----   / \
                       |      |
                       |      |
                      ---    ---

Der Mehraufwand gegenüber deiner gegenwärtigen Schaltung besteht in dem 
einen Kondensator pro Kanal. Dafür ist aber jeder beliebige Pin 
verwendbar, nicht nur ADC-Pins. Und die Empfindlichkeit im für dich 
vermutlich relevanten Bereich kann durch die geeignete Wahl eben dieses 
Kondensators gegenüber der Lösung mit AVR-ADC vermutlich noch merklich 
verbessert werden, denn gegenwärtig ist es wahrscheinlich so, daß du von 
den 8 bzw. 10 Bits Gesamtumfang des ADC-Wertebereiches nur einen 
klitzekleinen Bruchteil effektiv wirklich nutzt.

Alles andere würde mich jedenfalls sehr wundern...

von N. G. (newgeneration) Benutzerseite


Lesenswert?

Hallo c-hater,

sehe ich das richtig, die Schaltung erlaubt ein Erkennen eines Signals, 
aber nicht dessen Strärke? So denke ich zumindest mal.
Ich habe von Elektronik nicht so die Ahnung, kannst du mir noch bitte 
sagen, was das für ein Kondensator ist? Den 'WErt werde ich wohl 
ausprobieren müssen.

c-hater schrieb:
> daß du von
> den 8 bzw. 10 Bits Gesamtumfang des ADC-Wertebereiches nur einen
> klitzekleinen Bruchteil effektiv wirklich nutzt.

Naja, ich nutze schon die ADC-Werte richtig, genauer gesagt die ersten 
8-bit. Da der Ball gepulstes Licht aussendet, ist die Schwelle nicht 
immer klar. Sie variiert auch abhänig vom Abstand
Im Code wird geprüft, ob der Wert < 195 ist. Wenn der Ball nahe dran 
liegt wird ein boolean auf true gesetzt. Also eigentlich reicht ein 
"2bit"-ADC

von c-hater (Gast)


Lesenswert?

N. G. schrieb:

> sehe ich das richtig, die Schaltung erlaubt ein Erkennen eines Signals,
> aber nicht dessen Strärke?

Nein, sie erlaubt auch das Erkennen der Signalstärke. Allerdings nur in 
einem recht begrenzten Wertebereich mit einer Auflösung, die dem eines 
AVR-ADC mit einer gegebenen Samplerate entspricht (die auch von dieser 
kleinen Lösung wieder zu erreichen wäre).

> Ich habe von Elektronik nicht so die Ahnung, kannst du mir noch bitte
> sagen, was das für ein Kondensator ist? Den 'WErt werde ich wohl
> ausprobieren müssen.

Nicht unbedingt. Den kann man tatsächlich auch ausrechnen. Wenn du deine 
gegenwärtige Schaltung und deinen Code gepostet hättest, wären darin 
alle Informationen enthalten gewesen, um das zu tun. Hast du aber 
nicht->schon verloren, jetzt mußt du es selber tun.

Voraussetzung dafür ist allerdings, daß du verstehst, wie die Sache 
grundsätzlich funktioniert. Also: du legst zu einem Zeitpunkt t0 einen 
High-Pegel an den als Ausgang geschalteten Pin und zwar lange genug, 
damit sich der Kondensator sicher "voll" aufladen kann. Dann schaltest 
du den Pin auf Eingang und mißt dann die Zeit von diesem Moment bis zu 
dem Moment t0+t, wenn er auf Low geht, was durch die Entladung des 
Kondensators über die Fotodiode irgendwann unweigerlich passieren wird. 
Das Interessante ist nun, daß diese gemessene Zeit t vom wirksamen 
Widerstand der Fotodiode abhängt, also im Wesentlichen von der Menge des 
Lichts, welches sie in dieser Zeit empfängt.

> Naja, ich nutze schon die ADC-Werte richtig, genauer gesagt die ersten
> 8-bit. Da der Ball gepulstes Licht aussendet, ist die Schwelle nicht
> immer klar. Sie variiert auch abhänig vom Abstand
> Im Code wird geprüft, ob der Wert < 195 ist. Wenn der Ball nahe dran
> liegt wird ein boolean auf true gesetzt. Also eigentlich reicht ein
> "2bit"-ADC

Das ist der Punkt. Dafür ist sogar die "ADC des kleinen Mannes" noch 
fast zu gut. Eigentlich brauchst du wohl bloß ACs mit einstellbarem 
Referenzlevel. Leider haben AVRs davon aber nur höchstens einen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.