Forum: Mikrocontroller und Digitale Elektronik 8pin-ATtiny mit UART


von Michael G. (mjgraf)


Lesenswert?

Hallo zusammen,

sehe ich richtig, dass es keinen 8pin-ATtiny mit UART gibt? Alles was 
ich brauche ist ein Baustein, der Impulse an einem Pin zählt und auf 
Anfrage den Zählerstand übermittelt...

Gruß & Dank,
Michael

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Michael Graf schrieb:
> Alles was
> ich brauche ist ein Baustein, der Impulse an einem Pin zählt und auf
> Anfrage den Zählerstand übermittelt...

"Übermittel" - auf welche Art? Seriell? Welches Format? Welche 
DÜ-Geschwindigkeit? Muss der Tiny auch Daten empfangen? Falls ja, 
welche?

Sorry, aber ein paar Fragen waren da doch noch. :-)

von cppler (Gast)


Lesenswert?

Also der Tiny85 hat USI, Datenblatt lesen hilft meistens.
Impulse zählen kann man via PinIRQ, Polling oder wie Du wohl willst der 
USI/SPI Schnittstelle.
Oder meinst Du einen Zähler den Du via RS232 abfragen willst ?
In den Tiny85 paßt neben Deinem Zähler auch SoftUSB ohne externen Quarz 
das dürfte sinnvoller sein als Legacyschnittstellen ;-)

von MWS (Gast)


Lesenswert?

Michael Graf schrieb:
> sehe ich richtig, dass es keinen 8pin-ATtiny mit UART gibt?

Nach der parametrischen Suche bei Atmel: Das siehst Du richtig.

> ich brauche ist ein Baustein, der Impulse an einem Pin zählt und auf
> Anfrage den Zählerstand übermittelt...

Es gibt Soft-UARTs und es gibt externe Interrupts, die einem das Pollen 
des Rx ersparen.

von Michael G. (mjgraf)


Lesenswert?

Markus Weber schrieb:

> "Übermittel" - auf welche Art? Seriell? Welches Format? Welche
> DÜ-Geschwindigkeit? Muss der Tiny auch Daten empfangen? Falls ja,
> welche?

Da ich nach einem Tiny mit UART frage, werde ich wohl 32 Bit parallel 
machen wollen... ;-)

Also: der Tiny soll über einen Treiber an RS485, dort auf seine Adresse 
lauschen und bei Bedarf mit seinem Zählerstand antworten.

Schnell muss das ganze nicht sein. Beim ATmega habe ich die Erfahrung 
gemacht, dass mit dem internen RC-Oszillator bei 1 MHz 1200 Baud und 
darunter zuverlässig funktionieren. Ähnliches würde ich auch beim Tiny 
erwarten. 600 oder 300 Baud wären auch ok.

von Harald A. (embedded)


Lesenswert?

Nimm doch den LPC812, 8-pin (auch DIP) mit 2(!) UARTs. Mit Hilfe des 
Starterkits LPCXpresso bist Du schnell drin, solange Du mit C 
programmierst. Interner RC-Oszillator +/-1%, sollte also für UART ohne 
externen Quartz gehen. Beim ATMEL bräuchtest Du in jedem Fall einen 
Quartz, da der interne Oszillator (insbesondere über die Temperatur) 
nicht genau genug wäre.
Ganz nebenbei hast Du noch 32-bit Counter für deine Aufgabe mit drin.

: Bearbeitet durch User
von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Michael Graf schrieb:
> Da ich nach einem Tiny mit UART frage, werde ich wohl 32 Bit parallel
> machen wollen... ;-)

Geht bestimmt mit dem patentierten Pin-Splitting. ;-)

> Also: der Tiny soll über einen Treiber an RS485, dort auf seine Adresse
> lauschen und bei Bedarf mit seinem Zählerstand antworten.

Gar kein Problem, wie MWS ja schon schrieb. Impulszähler ist eingebaut.

Zum Thema Quarz: auch beim ATtiny nicht notwendig. Du kannst auf die 
Bitlänge synchronisieren, die du empfängst. Falls du das nicht willst, 
überträgst du statt Bytes einfach Nibbles, dann ist die Übertragung 
robust für bis zu 10% Frequenzabweichung.

von KPL (Gast)


Angehängte Dateien:

Lesenswert?

Für nen S0-Puls Strom/Wasserzähler?

Ich häng Dir mal meinen code für nen AtTiny85 an. Den hatte ich vor ca. 
2 Jahren in ner Stunde zusammengehackt.
War nur als temporäre Lösung gedacht, läuft aber seit >2 Jahren stabil 
im Dauerbetrieb :-)

Die Uart ist eine quick and dirty Software uart.

Allerdings misst das Ding nicht die Anzahl der Pulse, sondern die Zeit 
zwischen 2 Pulsen. Aber: "für einen Bastler sicher kein Problem" :-)

Viele Grüße,

Kai

von obscurity (Gast)


Lesenswert?

KPL schrieb:
> Ich häng Dir mal meinen code für nen AtTiny85 an. Den hatte ich vor ca.
> 2 Jahren in ner Stunde zusammengehackt.

Der schwierigere Teil ist wohl ehr die rx-Routine der Softuart. Noch 
dazu wenn etwas auf dem Bus los ist. Das käme für mich nicht in Frage. 
Die Zeit die du damit zubringst kannst du auch in was anderes 
investieren. Der Tip mit dem LPC war schon gut. Ein PIC12F1840 hat auch 
nur 8Beine im DIP Gehäuse und eine vollwertige uart und ist damit 
wesentlich besser geeignet.

Oder einen AVR mit 20Beinen. Zur Not tuts auch ein Mega8(8). Alles 
besser als eine SoftUart.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

obscurity schrieb:
> Der schwierigere Teil ist wohl ehr die rx-Routine der Softuart.

Braucht man doch aber alles nicht.  Der Tipp mit der USI wurde schon
ganz oben genannt, die kann auch in einem UART-Modus arbeiten.  Damit
hat man eine Hardware-UART, die halt ein bisschen mehr „Händchenhalten“
braucht als eine gewöhnliche UART.

von c-hater (Gast)


Lesenswert?

Michael Graf schrieb:

> sehe ich richtig, dass es keinen 8pin-ATtiny mit UART gibt?

Ja. Jedenfalls keinen mit Hardware-UART.

> Alles was
> ich brauche ist ein Baustein, der Impulse an einem Pin zählt und auf
> Anfrage den Zählerstand übermittelt...

Impulse zählen geht beim Tiny25/45/85 rein in Hardware (Timer0 erlaubt 
externe Takteinspeisung über den T0-Pin, also Pin7).

Da also die MCU von der Mühe des Zählens weitestgehend befreit ist, kann 
sie ihre ganze Aufmerksamkeit der UART-Kommunikation widmen. D.h.: 
Eigentlich genügt eine reine Software-UART völlig für die Anwendung.

Natürlich, wenn man wie ich Perfektionist ist, läßt einem das ungenutzte 
USI keine Ruhe. Unbedingt nötig ist dessen Nutzung für diese Anwendung 
aber nicht.

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.