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


von Holger (Gast)


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

von Uwe .. (uwegw)


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

von Johannes A. (Gast)


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.

von Peter D. (peda)


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

von Holger (Gast)


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

von Michael U. (Gast)


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

von Peter D. (peda)


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

von Peter D. (peda)


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

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.