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.
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.
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.
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).
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.
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
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