Programmer für ATTiny2313

Alles rund um Computertechnik, LEDs, und und und....
Benutzeravatar
Michael Schmidt
Forumane
Beiträge: 331
Registriert: Montag 23. Februar 2004, 14:39
Wohnort: Groß Twülpstedt

Programmer für ATTiny2313

Beitrag von Michael Schmidt » Mittwoch 8. August 2007, 18:49

Hallo Zusammen,

heute möchte ich euch einen einfachen Programmer für den Microprozessor ATTiny2313 vorstellen, sowie einen ersten geh versuch der Programmierung mit BASCOM.

EDIT 05.01.2008 "Koregiertee Zeichnung eingestellt"

Bild
Zeichnung in Groß

Das schöne an dem Programmer ist, man kann ihn in der laufenden Schaltung nutzen. Das heißt, ihr brauch das IC nicht extra ausbauen und auf einem extra Programmierboard stecken zum Programmieren. Ihr müßt lediglich eine Schnittstelle vorsehen, die ich in der Zeichnung mit den roten Punkten makiert habe. Desweitern ist es wichtig, das ihr beim Programmieren das IC mit 5V versorgt. Dazu am Versorgungseingang, ich sag mal ab 7V sollte der 5V Stabi stabiel arbeiten, eine Spannungsquelle größer 7V spendieren. In der laufenden Schaltung, kommt dann der ATTiny mit deutlich weniger Spannung aus. Auf dem Programmer habe ich noch eine LED vorgesehen, die wir im folgenden Programmierabschnitt zum Blinken bringen wollen.

Mit BASCOM programmieren:

Also, zu erst müßt ihr euch BASCOM als DEMO Version Downloaden. Die Demo Version reicht uns aus, da man mit ihr bis zu 4KB Programmieren kann und unser ATTiny aber nur 2KB hat. Folgende Version nutze ich:

Bild
Downloadbereich MSC Electronics

Wie gesagt, ihr braucht die Software nicht Kaufen, es reicht die Demo Version.

Bild

So, nun braucht ihr nur das oben Angezeigte Programm abtippen und die LED würde Blinken. Aber ich will euch natürlich noch den Programmablauf etwas erklären.

Mit dem Befehle regfile wird der Chip Typ defienert der Programmiert werden soll und BASCOM weis welche einstellung vorzunehmen sind, um den Chip auch Programmieren zu können.
Mit crystal legt man fest, welcher Quarz sich am ATTiny befindet, damit BASCOM weis, wie das IC getacket ist.
Mit config Pinb.0 gleich 0, sagen wir dem IC, das der Ausgang Pinb.0 auf Null, sprich auf Masse geschaltet werden soll. LED aus
Mit Do beginnen wir eine Schleife.
Mit toggel kippen wir den Ausgang Pinb.0 hin und her, hier auf 1. LED an
Mit waitms sagen wir dem IC warte eine bestimmt Zeit, in diesen fall 10 Zeit einheiten.
Mit loop beenden wir die Schleife und sie fängt wieder von vorne an.

Da in unserer Schleife steht, toggel den Ausgang nach einer bestimmen Zeit, Blink nun die LED. Ändert man nun den Zeitwerte, Blinkt sie schneller oder Langsamer. Man könnte z.b. auch noch weitere toggel und wait Befehle drunter setzen und wenn man dann z.B. bei den wait Befehlen die Zeiteinheiten immer etwas ändert, würde die LED Flakern (Schweizgerät, Feuer, Frontblitzer...).

Nun muß aber unser geschriebenes Programm noch den auf ATTiny, dazu müssen wir BASCOM ertsmal sagen welchen Programmer wir verwenden und das geht so:

Bild
Ihr wählt Options / Programmer

Bild
Dann Universal MCS Interface, sowie WinAVR und SP12

Bild
Dann last ihr einen Syntax Check durch führen, ob euer Programmiertes auch Fehlerfrei ist.

Bild
Nun führen wir Compile current file aus, sprich unser Basic Programmiertext wird jetzt in einen Maschienencode gewandelt, welchen der ATTiny versteht.

Bild
Den Programmer starten, aber bitte Manuel.

Bild
Vor dem eigentlichen Flaschen, also den Maschienencode auf das IC übertragen, immer den ATTiny erst mal löschen

Bild
Jetzt wird es HOT, der Maschienencode wird auf den ATTiny geflascht, mit Write Buffer to flash ROM.

Nach erfolgreichen Schreiben, läuft das Programm sofort und die LED Blinkt.

Viel spaß beim Programmieren und ich würde mich freuen, wenn ihr eure Quellcodes hier veröffentlich würdet.

Sorry das ich mich dieses mal so kurz gefast habe, aber meine Zeit erlaubt es einfach nicht mehr, das ich so aus führlich schreiben kann.
Endschuldigt auch die mit sicherheit vielen Rechtschreibfehler, aber eine schwäche muß man nun mal haben.
Zuletzt geändert von Michael Schmidt am Samstag 5. Januar 2008, 11:25, insgesamt 2-mal geändert.
MfG

Michael Schmidt
__________________________________________

Für jede Form von Straßen.
Der Touareg

rob

Beitrag von rob » Mittwoch 8. August 2007, 19:55

Am besten du läßt den Quartz weg , dann kannst du noch den pina nutzen.
Für welche Anwendungen suchst du den Software?
Kann den Bascom AVR auch die Configbit des ATTiny setzen?

Benutzeravatar
Michael Schmidt
Forumane
Beiträge: 331
Registriert: Montag 23. Februar 2004, 14:39
Wohnort: Groß Twülpstedt

Beitrag von Michael Schmidt » Donnerstag 9. August 2007, 12:44

Moin rob,

klar kann man den Quarz weg lassen, dann läuft der ATTiny mit seinen Internen Taktgenerator, von ca. 4MHz wenn mich gerade nicht Täusche.
Bis her habe ich mit CMOS Bausteinen der 4000 reihe gearbeitet, sowie mit dem NE555, aber man brauch ne menge IC um eine Schaltung auf zu bauen. Mit einen µPro brauch man nur noch ein Baustein, wenn man ihn denn richtig Programmieren kann. Ich bin gerade am Anfang und kann noch nicht viel mehr, als wie oben steht. Ich habe mir das Buch Programmieren mir BASCOM-AVR gekauft, aber richtig nach vorne hat mich das auch nicht gebracht, da in diesem Buch nicht gut verdeutlicht wird, wie man Unterprogramme zum laufen bringt.
Ziel ist es, ein Programm für ein Feuerwehrauto zu schreiben, sprich 4 Asycrone Blaulichter, Frontblitzer, Blinker, per PWM Front und Hecklicht (PWM, damit sie nicht so Hell sind) und Bremslicht, sowie Martinshorn. Desweitern soll die Funktionen separat über Schalter ein und ausschaltbar sein.
Mit dem Configbit bin ich gerade überfragt.
MfG

Michael Schmidt
__________________________________________

Für jede Form von Straßen.
Der Touareg

rob

Beitrag von rob » Donnerstag 9. August 2007, 15:35

Hallo!
Der Attiny wird ausgeliefert mit 1Mhz intern.Nur durch ändern der Configurationsbits kann mann die Taktung ändern.Ich benutze Twinavr ,aber Vorsicht viele Bits sind negiert man kann sich da ganz schnell aussperren.
Mit Bascom habe ich noch nicht gearbeitet ,programmiere in Assembler.
Bei Basic sollte aber sowas wie "IF X=5 then goto test1"usw gehen.
Mit Soft kann ich nicht helfen da ich Dcc Dekoder und Serielle Steuerung von
Modellbahn programmiert habe.

Benutzeravatar
H0Egon
Forumane
Beiträge: 978
Registriert: Montag 16. Oktober 2006, 12:55
Wohnort: BW

Beitrag von H0Egon » Donnerstag 9. August 2007, 17:49

Kann mann mit dem oben gezeigten Programmer auch IC NE555 programmieren?
Ich möchte so eine Blinkfolge für zwei LEDs haben:

"LED eine Sekunde an, halbe Sekunde aus, eine sekunde an, eine Sekunde aus, ..."

Sollte dann so aussehen wie das hier.
Wenn meine blinkfolge nicht so aussieht wie in dem kleinen Filmchen dann köntett ihr mir vielleicht Sagen wie sie aussehen Muss?
Ich freu mich drauf! (auf eure Antworten) :wink:

claus
Forumane
Beiträge: 549
Registriert: Montag 5. Dezember 2005, 12:42
Wohnort: bei Nürnberg

Beitrag von claus » Donnerstag 9. August 2007, 18:05

Ein Mirkorkontroller ist ein kleiner Copmuter in einem einzigen Bauteil, der auch Komplexe Aufgaben ausführen kann.

Ein NE555 ist normales Impulsgeber IC, da kann nichts Programmiert werden. Bei einem NE 555 kann man durch die Äussere Beschaltung nur festlegen wie schnell es den Ausgang ein und aus Schaltet.
Also grob gesagt eine sehr Flexible Blinkerrelaisschaltung in einem Bauteil.

Benutzeravatar
VT_340
Forumane
Beiträge: 683
Registriert: Samstag 13. März 2004, 01:07

Beitrag von VT_340 » Donnerstag 9. August 2007, 19:16

Moin,
Coole Sache.
Ich benutze zum Flashen das AVRprog von Atmel. Geht schneller und löscht den Chip vorher automatisch. Außerdem hab ich mir jetzt einen USB ISP Programmer zugelegt, damit lassen sich die Chips doppelt so schnell beschreiben. Außerdem ist das setzten der Lock/Fusebits einfacher. Wenn man mal mehrere Chips brennt sit das schon von Vorteil.
Allerdings ist der Nachteil am 2313er dass er kein A/D Wandler hat. Spannungen messen ist daher nicht so einfach.


Gruss

Alex
Greatness is no Question of Size

Benutzeravatar
Oysos
Forumane
Beiträge: 793
Registriert: Samstag 4. August 2007, 11:43
Wohnort: Kiel

Beitrag von Oysos » Donnerstag 9. August 2007, 20:42

Moin,

ich arbeite mich auch gerade ein ins Thema Mikrokontroller.
Allerdings anderer Hersteller und andere Sprache.

Mir kam grad die Idee, ob ein Threat, wo verschiedene Systeme vorgestellt werden, evtl. sinnvoll sein könnte.

Gruß
Hannes

Benutzeravatar
VT_340
Forumane
Beiträge: 683
Registriert: Samstag 13. März 2004, 01:07

Beitrag von VT_340 » Donnerstag 9. August 2007, 21:49

Assembler? Viel Spaß :-)
Naja wenn man es einmal kann ist es sicherlich besser und Sinnvoller zu erlernen als das Programmieren in einem Compiler. Wie gesagt WENN... aber wenn man von vornerein nur was im unteren Anspruchsbereich machen will (Spannung Messen, Blinklichter.. etc) sind Comiler wie BASCOm echt Ideal.
Mein HLF (siehe FCS Forum) hab ich auch in BASCOM programmiert :-) Dafür ist der Chip aber auch zu 95% voll, ich denke in Assembler wäre es auch deutlich kleiner machbar gewesen.

Alex
Greatness is no Question of Size

Benutzeravatar
Oysos
Forumane
Beiträge: 793
Registriert: Samstag 4. August 2007, 11:43
Wohnort: Kiel

Beitrag von Oysos » Freitag 10. August 2007, 07:50

Assembler? Wo steht was von Assembler?

Gruß
Hannes

Benutzeravatar
VT_340
Forumane
Beiträge: 683
Registriert: Samstag 13. März 2004, 01:07

Beitrag von VT_340 » Freitag 10. August 2007, 09:30

Niergendwo, aber ich dachte neben Basic bleibt nicht mehr viel über!

Alex
Greatness is no Question of Size

Benutzeravatar
Oysos
Forumane
Beiträge: 793
Registriert: Samstag 4. August 2007, 11:43
Wohnort: Kiel

Beitrag von Oysos » Freitag 10. August 2007, 12:04

C.

Damit lässt sich ne ganze Menge machen.
Mehr als ich im Moment überschauen kann.

Muss mich auch noch mal ein bisschen schlauer machen im Bezug auf Interrupt, UART und so.

Mal sehen.
Bei einfachen Programmen machts wohl kaum einen Unterschied, welche (Hoch)Sprache man nimmt.

Gruß
Hannes

Benutzeravatar
H0Egon
Forumane
Beiträge: 978
Registriert: Montag 16. Oktober 2006, 12:55
Wohnort: BW

Beitrag von H0Egon » Freitag 10. August 2007, 13:28

Kann an auch 9 poliges D-Sub Kabel wie dieses hier verwenden?
Bild

Benutzeravatar
Oysos
Forumane
Beiträge: 793
Registriert: Samstag 4. August 2007, 11:43
Wohnort: Kiel

Beitrag von Oysos » Freitag 10. August 2007, 14:25

Verwenden auf jeden Fall, fragt sich nur, was dann passiert :lol:

aber Spaß beiseite: wofür denn?
Die Kommunikation PC <-> Flasher ist meist über den Com-Port, von daher passts, du musst nur schaun ob du Stecker-Stecker oder Stecker-Buchse brauchst.

Alex machts per USB - ist aber bestimmt teuer in der Anschaffung.

Gruß
hannes

Benutzeravatar
VT_340
Forumane
Beiträge: 683
Registriert: Samstag 13. März 2004, 01:07

Beitrag von VT_340 » Freitag 10. August 2007, 17:02

Moin,
Dafür dass ich auch eine Uart Schnittstelle dabei habe sind die 29 Euro schon in Ordnung, zumal ich das Ding mit drei AtMega8 für 15 Euro bei Ebay gekauft habe :-)

Mit UART wollte ich jetzt auch einmal anfangen, auch wenn man das für Modellbau Sachen nicht umbedingt brauch.

Alex
Greatness is no Question of Size

claus
Forumane
Beiträge: 549
Registriert: Montag 5. Dezember 2005, 12:42
Wohnort: bei Nürnberg

Beitrag von claus » Freitag 10. August 2007, 21:00

Ich bin auch z.Z: dabei mich mit Mikrokontrollern zu befassen.

Ich habe als Informationsquelle u.a. die folgenden Seiten, wobei ich bis jetzt fast nur bei Roboternetz im Wissenbereich Über Robotikeinstieg gelesen habe.
Die befassen sich zwar mit Robotik aber das Grundwissen ist erklärt.
Auf die anderen Seiten bin beim Surfen gestossen, habe aber noch nichts weiter gelesen und erwähne sie weil sie auch mit zum Thema passen.

http://www.roboternetz.de./
http://www.roboternetz.de/wissen/index. ... ikeinstieg

http://www.avrfreaks.net/
http://www.mikrocontroller.net/

Viel Spass beim lesen.

Nebenbei lese ich grade die Bascom Anleitung. Man kann da wenn ich das Englische richtig interpretiere u.a auch das Löschen, schriebn, Prüfen usw. automatisieren und bascom auch an andere Programmiersoftwaren anpassen.

Ich schriebe die AVR´s z.Z: mit dem Board von Pollin weil ich zu faul war mir selber eins zu bauen.

Mit den Fusebits muß man gewaltig aufpassen. Ich habe einen AVR weil ich damals das mit der Invertierung nicht wußte aus versehen auf externen Takt umgestellt. Glaube ich zumindest. Demnächst versuche mal den wiederzubeleben.

Benutzeravatar
Oysos
Forumane
Beiträge: 793
Registriert: Samstag 4. August 2007, 11:43
Wohnort: Kiel

Beitrag von Oysos » Samstag 11. August 2007, 09:56

Moin,

diese ATTinys scheinen ja beliebte und bekannte Mikrocontroller zu sein.
ich muss leider zu geben, noch wie was davon gehört zu haben...

Ich habe vor längerer Zeit mal ein R8C-Startkit kostenlos bekommen und deshalb angefangen, mich mit dem Renesas R8C/10 - R8C/13 auseinanderzusetzen.

Der Einstieg war leicht, da sich dieser Baustein mit einer Minimalbeschaltung (Batterie, 7805, Transistor, paar Widerstände) direkt über den serielle Schnittstelle flashen lässt.

Programmiert wird mit C oder Assambler, der Compiler ist bis 64k Programmgröße kostenlos.

Das ganze ist ein 16Bit µC mit bis zu 22 I/O, 20MHz, 16k ROM und 1K RAM

Hier stehts.
Heißt auch Tiny.

Kostet ein bisschen mehr als Atmel.

(Das soll jetzt natürlich keine Werbung sein, bin mit denen aus Japan weder verwand noch verschwägert ;-) )

Gruß
Hannes

Benutzeravatar
H0Egon
Forumane
Beiträge: 978
Registriert: Montag 16. Oktober 2006, 12:55
Wohnort: BW

Beitrag von H0Egon » Dienstag 1. Januar 2008, 15:44

Hallo,

Hat von euch eigentlich irgendjemand schon den Programmer ausprobiert?
Ein Kollege hat grad festgestellt das der Programmer so garnicht funktionieren kann. Dort werden föllig andere Pins angesprochen als normal üblich.

Über eine Stellungnahme des Erschaffers würde ich mich freuen.

Mfg
David

Benutzeravatar
Michael Schmidt
Forumane
Beiträge: 331
Registriert: Montag 23. Februar 2004, 14:39
Wohnort: Groß Twülpstedt

Beitrag von Michael Schmidt » Dienstag 1. Januar 2008, 18:43

Moin David,

ich verwende den Programmer genau so und der Funtz bestens...Die paar Wiederstände passen dicke mit ins SUB-D Gehäuse, den Rest habe ich einmal auf einer Lochrasterplatiene aufgebaut und einmal habe ich mir ein kleines Board geätzt.

Ach ja, der Programmer ist für den LPT1, sprich Parallelport. Die Fünf roten Punkte sind die UART Schnittstelle. Desweitern gibt es eine vielzahl von Programmern, jetzt nicht nur COM1, LPT1, USB, sondern mit Unterschiedlicher Internen beschaltung.
MfG

Michael Schmidt
__________________________________________

Für jede Form von Straßen.
Der Touareg

Benutzeravatar
H0Egon
Forumane
Beiträge: 978
Registriert: Montag 16. Oktober 2006, 12:55
Wohnort: BW

Beitrag von H0Egon » Dienstag 1. Januar 2008, 19:21

Ich hab den Fehler gefunden:

Bild

So funktionierts auch bei mir.

P.S: Ich werd den genauen Bericht mit Schaltplan dann im Car-System Forum veröffentlichen wenn alles funzt.

MFG
David

Antworten