Forum: Mikrocontroller und Digitale Elektronik Problem mit Programmieren Attiny13


von Michael (Gast)


Lesenswert?

Hallo,

da ich letzt schon so tolle Hilfe erhalten habe hier, frage ich direkt 
nochmal etwas. Benutze aktuell den Programmer aus dem Franzis Lernpaket 
"Elektronik mit USB". Funktioniert ja auch soweit ganz gut, aber man 
muss halt erstmal den µC initialisieren. Dabei wird ein Bootloader 
aufgespielt. Damit der µC aber zuverlässig seinen Dienst verrichtet, 
muss man PB2 auf Masse legen. Sonst denkt er, er soll neu programmiert 
werden und macht garnichts.

Das Blöde dabei ist nur, dass mir der PB2 natürlich fehlt um diesen als 
I/O normal benutzen zu können. Den Reset will ich nicht umprogrammieren, 
aber wenn man nur 4 statt eigentlich 5 Ports benutzen kann ist das nicht 
zufriedenstellend. Kann man das irgendwie umgehen? Bootloader nach dem 
Programmieren wieder löschen, oder andere Firmware?

Hab auch schon versucht den USB Programmer direkt über Bascom 
anzusprechen, aber das funktioniert leider nicht und nen altes Com oder 
LPT Kabel habe ich nicht mehr um mir damit nen Programmer zu basteln.

Vielleicht hat jemand dieses Problem ja schonmal erfolgreich gelöst. 
Wäre für Tipps dankbar.

von Ralf G. (ralg)


Lesenswert?

Michael schrieb:
> Dabei wird ein Bootloader aufgespielt.

Musst du die Bootlader-Datei auswählen? Oder ist das fest eingestellt?

Bei Frage (1) == ja -> einfach was anderes drauf spielen.

von Michael (Gast)


Lesenswert?

Da ist nur nen Button wo man drauf klickt. Bootloader und Fuses. Es gibt 
im Programmordner aber eine init.hex

Weiß nicht ob man die eventuell austauschen kann und ob man hinterher 
noch Programme in den Flash bekommt. Notfalls bestelle ich mir einen 
Bascom tauglichen Programmer, aber diese mitgelieferte Platine ist ja 
nichts anderes als nen USB Serial wandler würd ich mal so behaupten.

von Karl H. (kbuchegg)


Lesenswert?

Michael schrieb:

> Weiß nicht ob man die eventuell austauschen kann und ob man hinterher
> noch Programme in den Flash bekommt.

Eher nicht.
Das ist nichts anderes als das alte Franzis Lernpaket mit einem 
vorgeschaltet FT232 als USB/Seriall Wandler.

> Notfalls bestelle ich mir einen
> Bascom tauglichen Programmer, aber diese mitgelieferte Platine ist ja
> nichts anderes als nen USB Serial wandler würd ich mal so behaupten.

Exakt.
Die Frage ist an dieser Stelle überhaupt, ob du nicht vom Tiny13 gleich 
auf einen größeren Prozessor gehst. Dann Hand aufs Herz. Die Tiny sind 
zwar nett, wenn man ein konkrete Anwendung hat, in der man mit den 
wenigen Pins durchkommt. Aber ob man jetzt 4 oder 5 Pins zur Verfügung 
hat, macht meistens das Kraut auch nicht mehr fett. IMHO sollte man 
zumindest so viele Pins haben, dass man wenigstens ein LCD anhängen kann 
und dann noch ein paar Pins frei bleiben. Nichts gegen das Lernpaket, 
aber meiner Meinung nach ist ein Tiny13 schon etwas zu minimalistisch, 
als das man mit dem wirklich weiter kommt. Um erste Luft zu schnuppern 
mag es schon reichen, aber so richtig in Schwung kommt die Sache erst 
mit etwas größeren Prozessoren (mehr Pins).

von Michael (Gast)


Lesenswert?

Also ich habe mir einen 2Kanal RC Schalter programmiert. 1 Eingang fürs 
Empfängersignal. 2 Ausgänge. Aktuell 1 Kanal später über Jumper oder Dip 
Schalter auf Masse um zwischen Tasten und Schalten mit Memoryeffekt 
umzustellen. Das Umschalten zwischen Tastfunktion und Memoryschaltung 
erfolgt momentan für beide Kanäle gleichzeitig. Wäre aber halt schön, 
wenn man das für beide getrennt ein oder ausschalten könnte. Dafür 
benötige ich aber den Port2.

Das Lernpaket selbst ist naja. Unverständlich, es wird nichts wirklich 
programmiert und bevor es los geht installiert man unzählige Programme. 
Würde das definitiv nicht weiterempfehlen. Zumal bei dem Preis.

Allerdings hab ich mich inzwischen an das Bascom mit Basic gewöhnt und 
würde auch dabei bleiben wollen. Programme da rein flashen klappt mit 
dem im Lernpaket enthaltenen Programm ja auch problemlos, aber für 
andere Anwendungen sollen sicher später nochmal größere µC kommen.

Da bräuchte ich aber echt mal ne Empfehlung für ein Programmiergerät 
welches mit Bascom kompatibel ist. Und eine grundsätzliche 
Verständisfrage hätte ich auch noch.

Mal angenommen ich habe einen neuen noch unberührten Chip. Muss da 
zwingend ein Bootloader drauf? Oder kann man seine Programme auch ohne 
in den Flashspeicher übertragen? Ist denn auf neuen Chips bereits ne 
Firmware drauf, oder muss man die auch erst drauf kopieren?

Sry für die Fragen, aber dieses Lernpaket ist mehr Spielerei, als 
wirkliches Lernen. Hab auch schon diverse Tutorials durchstöbert, aber 
was diese grundsätzlichen Dinge angeht fische ich immer noch im Trüben.

von Axel S. (a-za-z0-9)


Lesenswert?

Michael schrieb:

> Benutze aktuell den Programmer aus dem Franzis Lernpaket
> "Elektronik mit USB". Funktioniert ja auch soweit ganz gut, aber man
> muss halt erstmal den µC initialisieren. Dabei wird ein Bootloader
> aufgespielt. Damit der µC aber zuverlässig seinen Dienst verrichtet,
> muss man PB2 auf Masse legen. Sonst denkt er, er soll neu programmiert
> werden und macht garnichts.

OK. Das ist dann ein eher dämlicher Bootloader. Besser wäre es, wenn der 
Bootloader die umgekehrte Logik verwenden würde und bei PB2=L in den 
"Loader" Modus geht und sonst in das Anwenderprogramm springt. Dann 
könnte man PB2 zumindest eingeschränkt im Anwenderprogramm nutzen.

> Das Blöde dabei ist nur, dass mir der PB2 natürlich fehlt um diesen als
> I/O normal benutzen zu können.
> Kann man das irgendwie umgehen?

Anderen Bootloader verwenden. Oder gleich ganz ohne Bootloader arbeiten 
(ISP). Bedeutet aber beides, daß deine Entwicklungsumgebung nicht mehr 
so arbeitet wie bisher.

Der kanonische Weg ist natürlich, einfach einen größeren Controller zu 
nehmen. z.B. einen ATtiny84. Oder ATmega328.

> Hab auch schon versucht den USB Programmer direkt über Bascom
> anzusprechen, aber das funktioniert leider nicht und nen altes Com oder
> LPT Kabel habe ich nicht mehr um mir damit nen Programmer zu basteln.

Ich würde sagen, du bist einfach dem Franzis Lernpaket entwachsen. Mach 
also den nächsten Schritt: kaufe oder baue einen USB-ISP Programmer 
(usbasp, usbtiny etc. siehe AVR In System Programmer: USB). Dazu ein 
Steckbrett und einen z.B. ATmega328.


XL

von Axel S. (a-za-z0-9)


Lesenswert?

Michael schrieb:
> Mal angenommen ich habe einen neuen noch unberührten Chip. Muss da
> zwingend ein Bootloader drauf? Oder kann man seine Programme auch ohne
> in den Flashspeicher übertragen? Ist denn auf neuen Chips bereits ne
> Firmware drauf, oder muss man die auch erst drauf kopieren?

Die meisten AVRs sind im Auslieferungszustand leer. Ausnahme sind 
ATXmega mit USB, die haben einen USB-Bootloader drauf für die Verwendung 
mit dem Atmel DFU Uploader.

Ansonsten haben alle AVRs mindestens einen Mechanismus zum Befüllen von 
Flash (und EEPROM). Die meisten haben ISP, das ab XMEGA durch PDI 
abgelöst wird. Die größeren AVRs mit ISP haben oft zusätzlich JTAG, 
kleinere oft zusätzlich Debugwire. Sowohl JTAG als auch Debugwire werden 
eher für das Debuggen eingesetzt als für das ausschließliche 
Programmieren (JTAG kann aber beides).

Ein Bootloader ist ein Zugeständnis an die Klientel, für die man ISP als 
zu "kompliziert" erachtet, z.B. die Arduino-Fraktion. Allerdings sind 
diese Leute dann auch wieder darauf angewiesen, daß ihnen jemand µC mit 
vorinstalliertem Bootloader verkauft.

Ein Bootloader kann vorteilhaft sein, wenn er entweder weniger Pins 
verwendet als ISP. Oder wenn er eine Schnittstelle verwendet, die die 
Applikation ohnehin braucht. Allerdings kriegt man das nicht umsonst. 
Ein Bootloader belegt immer Platz im Flash. Und meistens blockiert er 
noch einen Pin, für die Entscheidung ob nach einem Reset in den 
Bootloader oder in das Anwenderprogramm gesprungen werden soll. Nicht zu 
vergessen: es gibt nicht den Bootloader, sondern dutzende.


XL

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.