attiny verbinden

pitipet

Neues Mitglied
27. Jan. 2013
2
0
0
Sprachen
Hallo
Bin Neu Hier und möchte mich mit den atmel mal beschäftigen

Hierzu habe ich mal eine frage
wie kann man zwei attiny13 miteinander verbinden und über
zweitrat daten austauschen

zumbeispiel bei einem attiny taster gedrückt und bei dem zweiten in mehreren meter entfernung sll eine led oder relaise seine arbeit tun

für ein beispiel wäre ich dankbar

gruss
pitipet
 
Kurz: Ja.

Etwas länger:
In Software kannst Du mit dem 1k Flash, und den je 64 SRAM bzw Eeprom-Registern in die vollen gehen. Da wären bei 5 PINs (ohne den Reset Pin zu verwenden) mehrere Möglichkeiten von parallel (Nibbelweise) bis seriell, getaktet und ungetaktet drin...
Warum muß es der 13 sein?
Welche Programmiersprache willst Du verwenden?

BASCOM
Code:
$crystal = 9600000
$regfile = "attiny13.dat"
$hwstack = 15                                               
$swstack = 10                                               
$framesize = 10                                             

Dim Zahl As Byte
Zahl = 255
[B]Serout Zahl , 0 , B , 0 , 4800 , 0 , 8 , 1                  'gibt A seriell (4800baud) über B0 aus[/B]
End                                                         'end program
...belegt ca zwei drittel des Flash

Edit: (*Manierenzusammensuch*) Willkommen im Forum...
 
Hallo,

herzlich willkommen im Forum :flowers:

Bin Neu Hier und möchte mich mit den atmel mal beschäftigen
...
wie kann man zwei attiny13 miteinander verbinden und über ...
Äh ... also vorher nix mit Mikrocontrollern gemacht?
Dann tu dir nen Gefallen und nimm den Mega8.

1. genug Speicher für Anfangsspielereien ohne gleich durch nen Engpaß vor die Wand zu rennen

2. Der hat ne echte serielle Schnittstelle und keine USI geschweige denn nix wie der Tiny13. Da kann man die beiden einfacher koppeln oder mal an den PC (über nen MAX232 Pegelwandler) legen.

Oder versuchst du beim Modellbau auch gleich am Anfang was mit Mikrominiatur- oder Ultraleichtbauweise um schon am Anfang wegen Frust keinen Bock mehr auf das Thema zu haben?

Gruß
Dino
 
Danke LotadaC für deine schnelle antwort

möchte gerne Bascom benutzen
aber das was du geschrieben hast ,
komme ich noch nicht zurecht
geht es etwas einfacher ewentuell mit einem kleinen plan
erstmal danke

und nu zu dino03
ich wollte nicht gleich mit Kanonnen auf Ameisen schiessen
ich kenne es halt nur vom picaxe 08 wo man so kleine kleine programme mal zum test probieren kann
und ich der meinung ware das es bei einem attiny13 auch so währe
der mega8 hat ja mehr wenn es dazu ein beispiel mal zum senden und empfangen geben tut her damit

aber wenn ich mich da so verhauen habe

ok dan werde ich was anderes mal testen
 
Hi Pitipet,

und nu zu dino03
ich wollte nicht gleich mit Kanonnen auf Ameisen schiessen
ich kenne es halt nur vom picaxe 08 wo man so kleine kleine programme mal zum test probieren kann
und ich der meinung ware das es bei einem attiny13 auch so währe
der mega8 hat ja mehr wenn es dazu ein beispiel mal zum senden und empfangen geben tut her damit

aber wenn ich mich da so verhauen habe

ok dan werde ich was anderes mal testen
wenn du den Tiny13 nehmen willst, dann will ich dich nicht abhalten. Ich hatte so zwei, drei Gründe dir den Mega8 zu empfehlen.

Ich habe selbst schon mit Bascom Projekte mit einem Tiny2313 gemacht. Der hat 2k Flash. Also das doppelte von deinem. Es paßt schon so das eine oder andere rein. Ich hatte nen kleines LCD dran. Dazu nen Hardware-UART in Betrieb. Dein Tiny13 hat keinen Hardware-UART. Nicht mal nen USI den man zweckentfremden kann. Also muß das in Software gegossen werden die dir natürlich viel des kostbaren 1k-Flash verbrät. Mit 64Byte SRAM bist du auch verdammt knapp dran. Vergleich mal in der Datenbank vom Forum den Tiny13 mit nem Tiny2313. Dann wirst du sehen was ich meine. In den 64Byte sind deine Variablen, der Stack für Unterprogramme, Framesize und Softwarestack. Da hab ich sogar schon beim Tiny2313 mit 128Byte rumgezirkelt weil ich ab und zu wegen Stacküberlauf komische Phänomene hatte.

Wenn du noch Anfänger bist, dann hast du eigentlich schon genug damit zu tun das Programm zum laufen zu bekommen. Dann willst du bestimmt nicht noch zusätzlich versuchen es so zu optimieren das es in den Speicher paßt.

Ich weiß nicht wie weit du bereits bei Elektronik im Thema bist. Wenn du da auch noch im Anfangsstadium bist, dann kämpfst du bereits an zwei Fronten (Elektronik und Programmierung) wenn dann noch Optimierung des Programms dazukommt, dann ist schnell Frust angesagt weil es nicht so will und dauernd das Programm zu groß ist um es zu brennen oder das Programm Amok läuft weil du Speicherüberläufe hast.

Ich würde an deiner Stelle mindestens nen Tiny45, Tiny2313 (bei Pollin gibts den Tiny4313), Tiny461, Mega8 oder Mega48 nehmen. Die freie Bascom-Version kann 4k Code. Tu dir nen Gefallen und nutz die Größe aus.

Wenn du in Assembler was machen willst, dann kannst du problemlos den Tiny13 nehmen da der Code in Assembler wesentlich kompakter ist (ich tippe etwa auf ein Drittel bis Viertel).

Aber stöber einfach mal in der Datenbank des Forums ...

Gruß
Dino
 
möchte gerne Bascom benutzen
aber das was du geschrieben hast ,
komme ich noch nicht zurecht
geht es etwas einfacher ewentuell mit einem kleinen plan...
Was meinst Du mit Plan?
Ich wollte Dir nur die Beschränktheit des Controllers (für Dein Ziel) zeigen. Dino ist ja inzwischen auch darauf eingegangen...
Der Tiny13 bietet:
-8 PINs, davon 2xStromversorgung, 1xReset (kann man zwar als I/O freigeben, aber dann ist der Chip nicht (mehr) in-systemprogrammierbar (ISP)). Bleiben also effektiv 5 PINs.
-1 kByte ProgramFlash (also 512 Words... fast jedes Assembler Mnemonic belegt ein Word - Bascom-Befehle setzen sich (wie bei jeder höheren Sprache) quasi aus mehreren/vielen Mnemonics zusammen)
-64 Bytes SRAM (Arbeitsspeicher)
-64 Bytes Eeprom ("Festplatte")
-32 Bytes Rechenregister - die verwendet Bascom zum Teil für sich/damit hast Du unter Bascom quasi nix zu tun (als Anfänger... - außer Du bettest Assembler ein)
-einen 8bit-Timer, der Dir 2 Kanäle Hardware-PWM bietet (über 2 Pins, klar)
(kann über PB2 asynchron betaktet werden)
-einen AnalogComperator
-einen ADC mit 3 single ended inputs (der Reset könnte als 4ter verwendet werden, aber ->oben)
-einen externen Interrupt
-jeder der 5 Pins kann den PinChangeInterrupt auslösen
-keine Hardware-I/O-Schnittstelle
-interner RC-Oszillator, kann auf 4,8 oder 9,6MHz eingestellt werden. Alternativ existiert ein interner 128kHz Oszillator.
Alternativ kann an PB3 eine externe Taktquelle (bis 20MHz) angeschlossen werden - das kostet Dich dann halt einen weiteren Pin).

Du mußt die Kommunikationsschnittstelle also in Software lösen (bzw Bascom das machen lassen). Mein Code-Schnipsel da oben legt eigentlich nur eine Variable (1 Byte, Zahl) an, und weist ihr den Wert 255 zu. Danach lasse ich diese Variable mit "serout" über PB0 senden. "serout" ist ein, von Bascom zur Verfügung gestellter Befehl, mit dem genau das in Software gemacht wird. Siehe die Bascom-Hilfe dazu.
Allein die Verwendung von serout belegt ca zwei drittel Deines Programmspeichers (eigentlich sollte man interessehalber mal die 3 Zeilen auskommentieren, und sehen wieviel Overhead Bascom bei einem "leeren" Programm erzeugt...).
Serout ist quasi Software-UART (nur senden), in Bascom zur Verfügung gestellt. Sicher gibts auch 'ne vergleichbare Software-TWI-Lösung - wird aber meiner Meinung nach nicht viel anders sein (Timingtechnisch weniger kritisch, da getaktet - dafür muß man sich dann mt mehr Protokollen rumschlagen (Adressen/Adressenerkennung...).
Man kann sich natürlich selbst eine sinnige Kommunikationslösung zusammenstricken (insbesondere unter Assembler-Einbindung) - da wäre dann als erstes zu entscheiden, wie die Bit-Synchronisation zu erfolgen hat (über den Timer getimt), oder unter Verwendung einer Clock/Latch Leitung, und als zweites, wie breit der "Bus" werden soll (Du hast halt insgesamt 5 Pins).
Machbar ist das, aber für den Anfang macht das sicher keinen Sinn - erst recht nicht in einer Hochsprache.
Ich würde Dir auch zum ATmega48/88/168, ATtiny25/45/85, oder zum ATtiny2313/4313 raten (den Tiny261/461/861 hab ich als "differentiellen ADC- und High-Speed-PWM-Spezialisten" in Erinnerung - kommunikationstechnisch bietet er immerhin Hardware-USI. Ich hab hier noch'n Tiny26 - das ist doch der Vorgänger, oder?)
(Wo also bereits Hardware-Kommunikationsschnittstellen nutzbar sind)
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)