mikrocontroller.net

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


Autor: Fabian S. (jacky2k)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fabian S. (jacky2k)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian S. (jacky2k)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: holger (Gast)
Datum:

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

Irgendwie versteh ich hier nur Bahnhof.

Autor: Fabian S. (jacky2k)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Anna-zaira Engeln (nanalisa)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Anna-zaira Engeln (nanalisa)
Datum:

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

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.