Forum: Mikrocontroller und Digitale Elektronik In circuit avr programmieren


von R. H. (knosper)


Lesenswert?

WIE PROGRAMMIERT MAN AM BESTEN DIE AVR´S OHNE pROGRAMMIERGERÄT?

von Oliver Döring (Gast)


Lesenswert?

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!

von R. H. (knosper)


Lesenswert?

Windows XP

von Oliver Döring (Gast)


Lesenswert?

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

von Sonic (Gast)


Lesenswert?

@ 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!

von R. H. (knosper)


Lesenswert?

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?

von Oliver Döring (Gast)


Lesenswert?

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.

von jack (Gast)


Lesenswert?

>Nein, das geht definitiv nicht.

Schau mal hier...

http://www.lancos.com/siprogsch.html#spiadapter

von Oliver Döring (Gast)


Lesenswert?

Ja und?

von R. H. (knosper)


Lesenswert?

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 ?

von Oliver Döring (Gast)


Lesenswert?

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

von Oliver Döring (Gast)


Lesenswert?

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.

von Knuddel P. (knopf)


Lesenswert?

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

von Knuddel P. (knopf)


Lesenswert?

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.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Jörg B. (manos)


Lesenswert?

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
Noch kein Account? Hier anmelden.