Forum: Mikrocontroller und Digitale Elektronik Atmega8 - TWI und ADC gleichzeitig?


von Fabian S. (jacky2k)


Lesenswert?

Hallo,
ich wollte mal fragen ob es Probleme bereitet oder ob ich etwas dabei 
beachten muss, wenn ich den ADC und den TWI anschalte, da die ja 
teilweise die gleichen Pins verwenden.
Oder muss ich die einfach nur beide einschalten und der adc geht dann 
halt auf den beiden TWI Pins nicht?

von spess53 (Gast)


Lesenswert?

Hi

>Oder muss ich die einfach nur beide einschalten und der adc geht dann
>halt auf den beiden TWI Pins nicht?

Richtig. Du solltest aber Vermeiden, während der ADC-Wandlung das TWI zu 
benutzen. Du könntest das Messergebnis verschlechtern.

MfG Spess

von Fabian S. (jacky2k)


Lesenswert?

MHh joa ok. Problem ist, das kann ich nicht beeinflussen, da ich nicht 
der Master bin ;) Wird schon gehen, die Messungen müssen nicht so genau 
sein.
Danke!

von MeinerEiner (Gast)


Lesenswert?

Wenn du der Slave bist, kannst du ja je nach Protokoll 2 Befehle 
vorsehen:
1) eine Messung starten
2) Messergebnis abfragen (wenn fertig, eine evtl. vorhandene 
Interrupt-Leitung benutzen)

Zwischen den beiden Befehlen könntest du ja den TWI abschalten. Der 
Master muss halt dann zwischen den beiden Befehlen eine bestimmte Zeit 
warten.

von Fabian S. (jacky2k)


Lesenswert?

Nein, nein und nochmals nein ;)
Die beiden Systeme müssen eigenständig und asynchron arbeiten. Und auf 
keinen Fall darf ich den Master auf irgend eine Weise aufhalten, da er 
zeitkritische Sachen macht ;)
Denke das geht schon so...

von holger (Gast)


Lesenswert?

Was willst du eigentlich?
Auf den TWI Leitungen einen analogen
Sensor anschliessen und per ADC abfragen?

Irgendwie versteh ich hier nur Bahnhof.

von Fabian S. (jacky2k)


Lesenswert?

Die Kurzfassung?
Ich baue ein 2D Positionserkennungssystem für einen Roboter, basierend 
auf Ultraschall und Infrarot. Der Atmega soll die Position berechnen, 
plausibilisieren (heißt das so?) und dem Master zur Verfügung stellen.
Daher ein eigener µC mit ADC und TWI.

von Ulrich (Gast)


Lesenswert?

Die Beeinflussung des ADs durch ein aktives TWI sollte nicht so stark 
sein. Man sollte ein bischen auf den Verlauf der Masse achten und wenn 
möglich keine extra kleine Vref benutzen, dann sollten die Fehler eher 
klein, d.h. kaum merklich, bleiben.

Wenn man unbedingt will, könnte man die AD werte verwerfen, wenn gerade 
während der Wandlung was per TWI reinkommt. Vermutlich ist das aber 
nicht nötig.

von Oliver (Gast)


Lesenswert?

>Und auf keinen Fall darf ich den Master auf irgend eine Weise aufhalten,
>da er zeitkritische Sachen macht ;)

Na, wenn das so ist, sollte der Master ja wohl so programmiert sein, daß 
eine Taktverlängerung auf dem TWI-Bus ihn nicht ausbremst. Schließlich 
sieht die TWI-Spezifikation den Fall explizit vor.

Ist also das Problem vom Master, nicht deins :-)

Oliver

von Anna-zaira E. (nanalisa)


Lesenswert?

Hallo!

Ich habe ein ganz ähnliches Problem:
Ein ATmega8, der sammelt per TWI Daten von verschiedenen Sensoren.
Ein HCS12, der fordert dann und wann die gesammelten Daten per TWI vom 
ATmega8 an.

Sensorplatine:
- ATmega8 in Multimaster TWI (ist selber mal Master und mal Slave)
- alle 6 ADCs in Benutzung

--> Pins 27 und 28 sind also doppelt belegt:
- Pin 28: ADC5 und SCL
- Pin 27: ADC4 und SDA

Was genau  muss ich jetzt bei der Beschaltung und Programmierung 
beachten, damit keine Verwirrung entsteht?

DANKE im Voraus!!

von holger (Gast)


Lesenswert?

>--> Pins 27 und 28 sind also doppelt belegt:
>- Pin 28: ADC5 und SCL
>- Pin 27: ADC4 und SDA
>
>Was genau  muss ich jetzt bei der Beschaltung und Programmierung
>beachten, damit keine Verwirrung entsteht?

Einen uC besorgen wo sie nicht doppelt belegt sind.

von Anna-zaira E. (nanalisa)


Lesenswert?

Heißt das, ich KANN die beiden NICHT gleichzeitig (also abwechselnd) 
benutzen?

von Michael U. (amiga)


Lesenswert?

Hallo,

naja, im Prinzip schon, dem AVR ist es relativ egal.
Wie und womit schaltest Du extern aber zwischen den I2C-Geräten und den 
zu messenden ADC-Quellen um?

Gruß aus Berlin
Michael

von Peter D. (peda)


Lesenswert?

Anna-zaira Engeln schrieb:
> Heißt das, ich KANN die beiden NICHT gleichzeitig (also abwechselnd)
> benutzen?

Dem ATmega8 ists wurscht, aber Deine angeschlossene Schaltung wird 
Probleme haben.

Du kannst nicht analoge und digitale Signale auf einen Draht legen und 
erwarten, daß die sich nicht gegenseitig stören.
Du könntest die Pins mit nem Analog-MUX umschalten, dann geht es.

Aber dann ist es einfacher, einen AVR zu nehmen, der 6 AIns und I2C auf 
getrennten Pins hat, z.B. ATtiny261, ATtiny24.


Peter

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.