Forum: Mikrocontroller und Digitale Elektronik ATtiny2313 mit ATmega8 verbinden


von Maxel1985 (Gast)


Lesenswert?

Hey

Wie im Betreff schon erwähnt möchte ich gerne einen ATtiny2313 mit einem 
ATmega8 kommunizieren lassen. UART geht leider nicht, da am Tiny schon 
für die Kommunikation mitm PC genutzt. Was gibts noch für Möglichkeiten?
Achso... PortB fällt auch komplett weg. Hier hängen Relais dran. Bleiben 
also nur PD2 bis PD6.

Am ATmega ist aber alles frei :)

von Julian R. (tuefftler)


Lesenswert?

Ich würde dir zu Software SPI am 2313 raten, die du mit dem hardware SPI 
des m8 verbindest.
SPI(ASM):http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister

julian

von Maxel1985 (Gast)


Lesenswert?

Danke für den Tipp.. Aber gibts das auch in C?
Also gibts irgendwo vielleicht schon ne fertige Software-SPI-Lib? ^^

von Julian R. (tuefftler)


Lesenswert?

Ich hab mal mikrocontroller.net durchsucht leider nichts in C gefunden.

Vieleicht hilft dir das weiter(Das hat google ausgespuckt):
http://www.byteparadigm.com/files/documents/ug_SPICLib.pdf

julian

von ... (Gast)


Lesenswert?

Kannst Du nicht einige der Relais umhängen (PB5..PB7)? Dann könntest Du 
auch die SPI Hardware im ATtiny nutzen.

Julian R. schrieb:
> Ich hab mal mikrocontroller.net durchsucht leider nichts in C gefunden.

Das kann ich nicht so richtig glauben:
http://www.mikrocontroller.net/search?query=Soft+SPI&forums[]=1&forums[]=19&forums[]=9&forums[]=10&forums[]=2&forums[]=4&forums[]=3&forums[]=6&forums[]=17&forums[]=11&forums[]=8&forums[]=14&forums[]=12&forums[]=7&forums[]=5&forums[]=18&forums[]=15&forums[]=13&forums[]=16&max_age=-&sort_by_date=0
Da findet sich doch einiges.

Alternative wäre noch Soft UART, da findet sich hier auch einiges

von Julian R. (tuefftler)


Lesenswert?

@...:Ich hab die Suche auf der Startseite genutzt und es ist mir auf die 
schnelle keine passende LIB ins Auge gesprungen

Ich finde aber dass gerade in C die Ansteuerung des UART schwehrer ist, 
da keine Clock Leitung vorhanden ist und man somit mehr auf das Timing 
achten muss.
Bei SPI kannst du im Gegensatz die externen Interupts am 2313 nutzen um 
deine Clock leitung anzuschließen, dann hätte man das SPI-Programm mehr 
oder weniger auf Interupts ausgelagert und könnte somit mehr in der 
Hauptroutiene erledigen.

julian

von J.-u. G. (juwe)


Lesenswert?

Maxel1985 schrieb:
> Wie im Betreff schon erwähnt möchte ich gerne einen ATtiny2313 mit einem
> ATmega8 kommunizieren lassen.

> Bleiben also nur PD2 bis PD6.

Was meinst Du mit kommunizieren? Wenn es nur darum geht Werte von einem 
zum anderen zu schieben, kannst Du auch ohne UART bzw. SPI auskommen. Du 
benutzt eine der fünf Leitungen als Takt/Synchronisation und überträgst 
auf den anderen vier jeweils ein halbes Byte.

von ... (Gast)


Lesenswert?

Julian R. schrieb:
> Ich finde aber dass gerade in C die Ansteuerung des UART schwehrer ist,
> da keine Clock Leitung vorhanden ist und man somit mehr auf das Timing
> achten muss.
Dafür gibts ja Timer. Und auch genug vorhandenen Code, hier mal ein 
Bsp.:
http://www.siwawi.arubi.uni-kl.de/avr_projects/#softuart

> Bei SPI kannst du im Gegensatz die externen Interupts am 2313 nutzen um
> deine Clock leitung anzuschließen, dann hätte man das SPI-Programm mehr
> oder weniger auf Interupts ausgelagert und könnte somit mehr in der
> Hauptroutiene erledigen.

Soft SPI ist sicher einfacher, da hast Du absolut Recht. Insbesondere 
als Master (wobei einem die externen Interrupts dann eher wenig nutzen). 
Kommt halt darauf an, ob man mit dem Master-Slave Konzept leben kann 
oder nicht. Multimaster ist dann schon wieder aufwändiger.

von Max (Gast)


Lesenswert?

Am tiny einen soft i2c Master der an das hw-twi vom Mega geht....

PS: elektor hat bascom Code für nen soft i2c slave, einfach ma 
suchen.....

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.