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.
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.
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
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
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
>> 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?
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
>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.
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?
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
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
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...
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
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.