WIE PROGRAMMIERT MAN AM BESTEN DIE AVR´S OHNE pROGRAMMIERGERÄT?
Mit einer entsprechenden Software vom PC aus und einem einfachen Adapter vom Parallelport auf die ISP-Pins am AVR. Ein passives Filter am SCK-Pin ist dringend empfohlen, und zusätzlich mußt Du Dich darauf einstellen, daß diese Methode nicht immer 100% zuverlässig funktioniert. Schaltpläne für die Adapter gibt es meist mit der Software. Welches Betriebssystem? P.S.: Schalt mal Dein caps lock ab!
Dann probier es mit AVRStudio von Atmel - WinAVR ist da meines Wissens nach ganz gut integrierbar - und einem beliebigen ISP-Programm für Windows (Suchen im Forum oder Google hilft).
@ R.w. H.: Mein Tipp: kauf' dir einen AVRISP! Sonst wird's nicht lange dauern und die üblichen Fragen werden hier autauchen, wie 'µC ist nicht mehr ansprechbar', µC verFused, wie kann ich den retten?' oder 'Wie stelle ich die ISP-Frequenz ein?'. GUTES WERKZEUG IST GOLD WERT!
Danke für die tips. Habe mal gehört, dass, wenn man rS232, implementiert auch nen nackten avr direkt programmieren kann. wisst ihr da was?
Nein, das geht definitiv nicht. Was Du meinst, ist ein sogenannter "Bootloader". Der muß aber auch erst einmal auf den AVR drauf, und das geht nur per ISP oder Programmiergerät. Es gibt Controller, die ab Werk mit einem Bootloader ausgeliefert werden, wie zum Beispiel die ARM7-Controller von Atmel. Aber wie gesagt, nicht die AVRs.
Das heist man muss, in abhängigkeit der µc, genau wssen, wie dieser zu programmieren ist. Ist ISP standardesiert, d.h. bei allen µc gleich? wie kann ich schnell herausfinden ob ein µc einen bootloader hat oder nicht? Klar steht es sicher irgendwo im datenblatt wenn einer vorhanden ist, dabei wird man aber erst mal warscheinlich vile seiten Manual durchforsten müssen. geht das auch schneller ?
Geht es nur um Atmel AVR? Dort gibt es in jedem Datenblatt ein Kapitel "serial downloading", wo genau beschrieben ist, welche Pins für ISP vorgesehen sind. Immer sind das RESET und GND, meistens SCK, MISO und MOSI (gibt ein paar Ausnahmen). Dieses Interface aus den 5 (oder 6 mit Betriebsspannung) Pins ist standardisiert. Die ISP-Software kann einen Identifier auslesen und so den Prozessor (und die Größe der Speicher) feststellen. Du mußt bei der Auslegung Deiner Schaltung auf folgendes achten: Der Controller braucht einen Takt. Wenn Du also den internen RC-Oszillator nicht nutzen willst, braucht der Controller auch zum Programmieren einen Quarz. Denke daran, daß beim ISP Deine Schaltung "in Betrieb" ist. Daher mußt Du darauf achten, daß die ISP-Pins nicht von der Schaltung auf irgendeinen festen Pegel getrieben werden oder in ungünstige Impedanzen schauen, so daß der Programmieradapter (also der Parallelport Deines PC) diese nicht vernünftig treiben kann. Achte auch darauf, daß beim Programmiervorgang RESET ständig aktiv (low) ist und die drei Pins SCK, MISO und MOSI beliebige Zustände annehmen. Deine Schaltung sollte damit zurechtkommen (und nicht die CNC-Fräse in die Anschläge fahren).
Nachtrag: Wenn genügend Pins frei sind und SPI nicht benötigt wird, einfach die Leitungen Vdd, GND, RESET, SCK, MISO und MOSI auf einen 6poligen Pfostenstecker führen und als dediziertes ISP-Interface benutzen. Für die Anschlußbelegung gibt es einen "Pseudo"-Standard, der dann auch mit dem Atmel-Programmiergerät kompatibel ist, falls Du das später doch einsetzen möchtest.
ok, ich benötige also immer eine SPI. Zum einen um ein bootloader zu laden oder wenn dies erkaputt ist oder nen update braucht, um ihn neu zu programmierne. werden die I/O nicht für nadere dinge dann blockiert? wie ist es mit dem debuggen. kann man über SPI debuggen? ein bootloader macht wohl nichts anderes als bei einem reset darauf zu warten ob was da ist zum neu zu programmieren und wnn nicht springt er zur applikation. das heist er setz sich auf adresse 0 -sprich startaddresse. Inizialisiert sereiell oder USB. wartet ob da was kommt, wenn nicht springt er auf anfangsadresse einer applikation. stimmt das so? also ein bootloader erwartet so immer etwas auf rs232 oder USB
ich habe mich mal mit ISP- schnittstelle umgesehen. Manche nehmen die datenbitleitungen für eine stromversorgung, andere nicht. manche gehen direkt auf die Leitungen zum steuern, manche nehmen noch ein ttl-baustein. was der sinn dieses bausteins sein soll ist mir nicht ganz klar.
Mir scheint, Du bringst einige Dinge durcheinander. Du mischst ISP-Schnittstelle mit ISP-Adapter. Die Schnittstelle am Controller ist immer gleich, die Adapter oder Programmer variieren stark. Wichtig ist, daß der Adapter oder der Programmer das ISP-Protokoll und Timing einhalten. Jeder, der keinen originalen Programmer besitzt, macht´s halt anders, mit unterschiedlichem Erfolg. Mit einem originalen ISP-Programmer (ATMEL AVR-ISP) ist man immer auf der sicheren Seite und kann, eigene Dummheit ausgeschlossen, von 99.99% sauber programmierten Controllern ausgehen.
Debuggen über SPI geht nicht, dafür haben die meisten AVR's JTAG eingebaut (andere Pinne). Die ISP-Ports kann man bei geschickter Beschaltung für andere Sachen weiterverwenden. Man benötigt in der Schaltung nicht zwingend den Programmier-Anschluss. Man kann auch hingehen und den µC vor dem Einbau einen Bootloader (und das Programm) aufspielen und anschließend über eine vorhandene Kommunikationsschnittstelle updaten (falls nötig). Bootloader müssen nicht zwingend über die RS232 arbeiten (bei AVR's übrigens auf keinen Fall USB da es keinen mit eingebauten USB gibt) sonder können z.B. auch über I2C arbeiten. Der Bootloader sitzt für gewöhnlich am oberen Ende des Speichers.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.