www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ein Reset-RC für zwei AVRs + Verbindung zweier AVR


Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

folgendes: Ein AVR ist ausgelastet und so soll er Daten zu einem zweiten 
übertragen, der diese dann auf einem LCD darstellt. Verbindung läuft 
über drei Leitungen. Datenbits a-->b, Busy a <--b und Clock a-->b.
Ich benutze derzeit zwei verschiedene AVR-Borards mit jeweils einem 
ATMEGA32.
Der Datenaustausch funktioniert soweit. Jetzt geht es um eine gemeinsame 
Platine:

Folgende Fragen habe ich:

Kann ich mit einer R-C-Kombination beide Reset-Eingänge beschalten? 
Beide Reset währen dann ja direkt verbunden. Sinnvoll? Sollte man einen 
Widerstand dazwischen schalten?

Die beiden AVRs sind miteinander verbunden. AVR1 jat zwei Ausgänge und 
einen Eingang. AVR2 dementsprechend umgekehrt.Der interene Pullup wird 
für die Eingänge benutzt. Kann ich die beiden AVRs weiter mit den drei 
Leitungen verbinden oder sollte man dort auch einen kleinen Widerstand 
z.B. 100 Ohm einfügen?

Bin dankbar für jede Antwort.

Holger

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du schon mal dran gedacht, eine vorhandene Schnittstelle (I2C oder 
SPI) zu nutzen, statt was eigenes zu schreiben?

Die Kommunikationsleitungen kannst du direkt verbinden (allerdings 
könntest du dabei per Softwarefehler die Pins grillen).

Zum Reset: hast du so wenig Geld, oder so wenig Platz? Notfalls kann man 
die externe Reset-Beschaltung auch ganz weglassen, die AVRS haben 
interne Reset-Pullups (allerdings etwas hochohmiger). Zusammenschalten 
dürfte aber auch gehen...

Autor: Johannes A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde die Resets nicht zusammenschalten, weil es dann Probleme mit 
dem ISP geben könnte. Aber warum denn auch? Du hast doch die 
Busy-Leitung!

Da einfach ein Pullup drauf (kann auch der interne des Senders sein), 
und wenn der empfangende AVR den runterzieht, weiß der Sender, dass er 
jetzt loslegen darf.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Holger wrote:

> folgendes: Ein AVR ist ausgelastet und so soll er Daten zu einem zweiten
> übertragen, der diese dann auf einem LCD darstellt.


Wenn Du mit Auslastung die Rechenzeit meinst, ein Text-LCD stellt keine 
Belastung dar (<1%), schließlich muß man es ja auch ablesen dürfen.


Wenn Du mit Auslastung aber die Pinanzahl meinst, ein simples 
Schieberegister 74HC164 reicht, um mit 3 Pins auszukommen (siehe 
Codesammlung).



Peter

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin, danke für die Kommentare. Sorry aber leider war nicht viel 
brauchbares dabei... Das Projekt ist ja soweit fertig.

@Johannes A.
Das mit dem ISP ist richtig, hatte ich zwischenzeitlich auch so bedacht. 
Ich brauche auch zwei ISP.

@Uwe ...
Weder ISP noch I2C sind brauchbar. Dauert auch zu lange ...

@Peter Dannegger
Ich schrieb ja bereits, das der erste Atmel ausgelastet ist. Und es 
reicht auch nur noch um mit minimalen Mitteln zeitgerecht Daten zu 
senden. LCDs und selbst die serielle Schnittstelle versauen mein Timing. 
Der Refresh ist übrigens jede Sekunde. Genung Zeit zum Schreiben, genug 
Zeit zum lesen. Das übernimmt aber ein zweiter AVR.

Hintergrund:
Aufgabe war es einen simplen Frequenzzähler (1Hz bis 10khz, kein 
prescaler) zu bauen. Jedoch mit einer 1/4 Sekunde Torzeit.
- jede Sekunde wird aus den letzten 12 Werten das 3-sec-Mittel berechnet
- jede Sekunde wird aus den letzten 60 3-sec-Mittel ein Mittel berechnet
- zusätzlich wird alle 10 Sekunden aus den letzten 120 3-sec-Mittel ein 
Mittel berechnet

Und damit ist der Atmel voll. Die drei Mittel sind jeweils 16-Bit 
Zahlen. Also 48 Bit, die jede Sekunde weggeschickt werden.


Gruß
Holger

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eigentlich nur aus reinem Interesse:
wenn ich es richtig verstehe, hat er 1/4s Zeit, die Mittelwerte zu 
berechen.
Was macht der in der verbleibenden Zeit?
Oder habe ich was übersehen?

Gruß aus Berlin
Michael

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael U. wrote:

> wenn ich es richtig verstehe, hat er 1/4s Zeit, die Mittelwerte zu
> berechen.
> Was macht der in der verbleibenden Zeit?

Wundert mich auch.

Frequenzmesser kenne ich nur so, daß die sich größtenteils langweilen.

Das ganze Zählen machen doch die beiden Timer/Counter voll in Hardware.
Und ab und zu zählt mal der Overflowinterrupt noch die höherwertigen 
Bytes.

Der Zeitbasistimer macht bei mir noch nebenbei das Multiplexen der 
LED-Anzeigen, damit die Langeweile nicht gar so groß ist.


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Holger wrote:

> Aufgabe war es einen simplen Frequenzzähler (1Hz bis 10khz, kein
> prescaler) zu bauen.


Die AVRs können bis Takt/2 zählen, d.h. bei nem 20MHz Quarz braucht man 
erst ab über 10MHz (praktisch ab etwa 8MHz) einen Prescaler.


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.