Forum: Mikrocontroller und Digitale Elektronik AtMega8 Programmieren


von Frank S. (Firma: no) (frank_schubert)


Lesenswert?

Nabend,
ich habe mir einen kleinen AVR Atmel Programmer gebaut.
USB -> FT232BM->AtMega8

So nun aber wie Programmiere ich den Mega8 ? kenne keinen der einen 
helfen könnte.

Also mein Delphi7 Installiert und Programmiere mir selber ein Tool,
wobei ich den FT232BM erstmal nehme um mein mega8 zu Programmieren.

DTR RTS Break kann ich ja alles ansteuern und CTS für MISO abfragen.

1010 1100 0101 0011 xxxx xxxx xxxx xxxx <-Programming Enable
Programming Enable funzt super, auch die FuseH und FuseL kann ich schon
über den 232BM auslesen.

Nur mit den Pages habe ich beim Mega8 Prob. ich bekomme doch kein Byte 
geschrieben. ?Versuche es schon seit 3 Tagen.....

Da ich aber kein Englisch kann, stehe ich auf den Schlach. Diese Zeilen
möchte ich gerne verstehen

The Flash is programmed one page at a time. The page size is found in
Table 25-5 The memory page is loaded one byte at a time by supplying
the 5LSB of the address and data together with the Load Program
memory Page instruction. To ensure correct loading of the page,
the data Low byte must be loaded before data High byte is applied for
a given address. The Program memory Page is stored by loading the Write 
Program memory Page instruct ion with the 7 MSB of the address.
If polling is not used, the user must wait at least t WD_FLASH
before issuing the next page.


könnte mir jmd dabei helfen.?

ich muss eine ganze Page hoch laden, jedesmal 2 byte (Hi+lo) lo zuerst.
Load Program Memory Page.
danach....
Write Program Memory Page.

Aber es wird nichts abgespeichert...

Wäre nett wenn mir jmd helfen könnte.


Gute Nacht

von Karl H. (kbuchegg)


Lesenswert?

Frank Schubert schrieb:
> Nabend,
> ich habe mir einen kleinen AVR Atmel Programmer gebaut.
> USB -> FT232BM->AtMega8
>
> So nun aber wie Programmiere ich den Mega8 ? kenne keinen der einen
> helfen könnte.
>
> Also mein Delphi7 Installiert und Programmiere mir selber ein Tool,
> wobei ich den FT232BM erstmal nehme um mein mega8 zu Programmieren.
>
> DTR RTS Break kann ich ja alles ansteuern und CTS für MISO abfragen.

Mit Verlaub.
Aber ob du das über USB und einen FT232 vernünftig rüber bringst, wage 
ich zu bezweiflen.

Einen Programmer baut man nicht selbst, den kauft man. Denn sonst steckt 
man im Henne-Ei Problem fest. Du brauchst erst mal einen Programmer um 
einen Programmer bauen zu können.
Und letzten Endes willst du ja nicht deine Zeigt damit verplempern, wie 
du ein Programm in den Mega kriegst, sondern du willst Programme für den 
Mega schreiben.
So einen Programmer kriegst du in der Bucht für ein paar Euro. Das lohnt 
nicht, da selbst was grossartiges zu inszenieren.

: Bearbeitet durch User
von Frank S. (Firma: no) (frank_schubert)


Lesenswert?

Guten morgen Karl Heinz,

> Aber ob du das über USB und einen FT232 vernünftig rüber bringst, wage
> ich zu bezweiflen.

Was meinst du was PonyProg macht ? die schalten doch auch nur ihre 
Bits.!
Und bei meinen FT232 ist das nichts anderes.
ComPort1.SetRTS(true);
ComPort1.SetDtr(true);
ComPort1.SetBreak(true);
if csCTS IN ComPort1.Signals then bla bla bla......


> Einen Programmer baut man nicht selbst, den kauft man. Denn sonst steckt
> man im Henne-Ei Problem fest.

genau das ist es, ich lese bei Fischl und Co. immer wieder wie die leute 
sich selber einen Programmer bauen könnten, aber keiner kann so richtig
das erstemal seinen AtMega Programmieren. Also warum nicht mal ein
anständiges kleines Tool schreiben um den mega8 zu Programmieren.

> Und letzten Endes willst du ja nicht deine Zeigt damit verplempern, wie
> du ein Programm in den Mega kriegst, sondern du willst Programme für den
> Mega schreiben.

Karl Heinz, ich sitze hier im Rollstuhl, ich habe alle Zeit der Welt und
es macht mir richtigen spaß so was zu Programmieren.

> So einen Programmer kriegst du in der Bucht für ein paar Euro. Das lohnt
> nicht, da selbst was grossartiges zu inszenieren.

Da gebe ich dir recht, aber dann könnte ich mein Hobby an den Nagel 
hängen.

Was meinst du wie ich mich gefreut habe als ich das erstemal selber
die $53 bekommen habe (Enable Proz) und dann auch noch die Fuse lesen
konnte.

Na ok, mal sehen ob mir jmd den Text da oben übersetzen könnte, damit 
ich weiter komme.

von Justus S. (jussa)


Lesenswert?

Frank Schubert schrieb:
> Was meinst du was PonyProg macht ? die schalten doch auch nur ihre
> Bits.!

na und? auch bei PonyProg gibt es genug Fälle, wo es mit 
usb2rs232-Wandlern eben NICHT klappt, weil die so eine 
"Zweckentfremdung" nicht mitmachen...

von Joachim B. (jar)


Lesenswert?

mein erster Prommer war ein schnell selbstgebauter an der parallelen 
Schnitte mit Pony2000

einfach nur den H74HCT244 Bustreiber der sich aus den Ports selber 
versorgt, viele Schottkydioden und ein kleiner Elko.

Hast du noch ne parallel Schnitte ? dann stelle ich meinen Plan ein.

von Oliver (Gast)


Lesenswert?

Wenn man das Rad neu erfinden will (Hobby muß ja nicht sinnvoll sein), 
ist es trotzdem nicht verboten, sich andere Räder anzuschauen...

Von avrdude, ponyprog, und noch anderen gibt es frei zugängliche 
Sourcen. Da lässt sich sicherlich einiges abschauen.

Oliver

von Frank S. (Firma: no) (frank_schubert)


Lesenswert?

ne ich habe keine parallelen mehr an meinen Computer.


>Von avrdude, ponyprog, und noch anderen gibt es frei zugängliche
>Sourcen. Da lässt sich sicherlich einiges abschauen.


Das ist auch eine Idee...

von Hubert G. (hubertg)


Angehängte Dateien:

Lesenswert?

PonyProg geht auch seriell mit ein paar Bauteile.

von Justus S. (jussa)


Lesenswert?

das will er doch wohl auch machen, aber eben nicht mit einer 'echten' 
seriellen Shcnittstelle, sondern mit einem usb2seriell-Chip. Und mit 
denen kann sowas, muss aber nicht funktionieren...

von Karl H. (kbuchegg)


Lesenswert?

Justus Skorps schrieb:
> Frank Schubert schrieb:
>> Was meinst du was PonyProg macht ? die schalten doch auch nur ihre
>> Bits.!
>
> na und? auch bei PonyProg gibt es genug Fälle, wo es mit
> usb2rs232-Wandlern eben NICHT klappt, weil die so eine
> "Zweckentfremdung" nicht mitmachen...

Vor allen Dingen ist(war) die Anzahl der Berichte sprichwörtlich Legion, 
in denen berichtet wird, dass mit so einfachen Adaptern des Brennen von 
100 Bytes Code 2 Stunden (ok, das ist jetzt etwas übertrieben) Zeit 
benötigt.

'war' deshalb, da derartige Berichte aus einer Zeit stammen, als 
Ponyprog noch groß im Geschäft war. Ich hab meine ersten Gehversuche 
auch mit Ponyprog und einem einfachen Adapter an der parallelen 
Schnittstelle gemacht. Hat gut funktioniert.
Aber seit es auf den meisten PC keine Parallelports und/oder 
(herausgeführte) seriellen Schnittstellen mehr gibt und alle nur noch 
USB Buchsen haben, führt Ponyprog mit diesen Einfach-Adaptern nur noch 
ein Schattendasein. Und das liegt genau an diesen USB-RS232 Umsetzern, 
bzw. eigentlich am USB. USB ist nun mal nicht wirklich dafür gedacht, 
damit einzelne Bytes schnell zu übertragen. USB spielt seine Stärken 
aus, wenn größere Datenmengen in einem Rutsch zu übertragen sind. Bei 
einzelnen Bytes ist der USB Protokolloverhead um ein Vielfaches höher 
als der Anteil der Nutzbytes. Was früher eine ganz einfache Sache war, 
eine Leitung am Parallel-/Seriell-port von 0 auf 1 umzuschalten btw. 
umgekehrt, ist jetzt eine Sache, die sich durch viele Treiberschichten 
durchquälen muss, um dann auf der USB-Gegenseite (hoffentlich) in der 
beabsichtigen Pegeländerung zu münden.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Frank Schubert schrieb:
> The Flash is programmed one page at a time. The page size is found in
> Table 25-5 The memory page is loaded one byte at a time by supplying
> the 5LSB of the address and data together with the Load Program
> memory Page instruction. To ensure correct loading of the page,
> the data Low byte must be loaded before data High byte is applied for
> a given address. The Program memory Page is stored by loading the Write
> Program memory Page instruct ion with the 7 MSB of the address.
> If polling is not used, the user must wait at least t WD_FLASH
> before issuing the next page.
>
> könnte mir jmd dabei helfen.?

 Um auf die eigentliche Frage zurückzukommen:

 Das heist dass die Program Page 5 bits breit ist, also 32 Adressen hat.
 Auf diese Adressen schreibst du zuerst LowByte, dann HighByte.
 Es gibt 7 bits für Pages, also 128 Pages.
 Wenn du die 32 Adressen beschrieben hast, sendest du Write_Program
 Memory_Page zusammen mit der PageAdresse (0 bis 127 in deinem Fall).
 Falls du kein Polling (zyklische Abfrage) benutzst, must du t WD_FLASH
 warten, bevor du die nächste Page programmieren kannst.

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


Lesenswert?

Frank Schubert schrieb:
>> Einen Programmer baut man nicht selbst, den kauft man. Denn sonst steckt
>> man im Henne-Ei Problem fest.
>
> genau das ist es, ich lese bei Fischl und Co. immer wieder wie die leute
> sich selber einen Programmer bauen könnten, aber keiner kann so richtig
> das erstemal seinen AtMega Programmieren. Also warum nicht mal ein
> anständiges kleines Tool schreiben um den mega8 zu Programmieren.

Genau solche Tools gibts doch. Im einfachsten Fall verwendet man einfach 
das gleiche Programm, das man nachher für die "richtige" Programmierung 
verwenden will. z.B. avrdude.

Was man hingegen wirklich braucht, ist ein Programmieradapter. Früher 
war das mal einfach, da hat man einfach ein paar Leitungen von einem 
echten Parallel- oder Serial-Port genommen. Heutzutage muß man da etwas 
kreativer sein.

Deswegen gibts Varianten mit USB-Hub

https://www.pjrc.com/hub_isp/

oder mit den LED-Ausgängen eines PC-Keyboards:

http://hackaday.com/2012/11/26/usb-keyboard-becomes-an-avr-programmer/

mein avrdude 6.1 kennt auch einen FT232H basierten Adapter:

http://helix.air.net.au/index.php/avrdude-and-ftdi-232h/

usw. usf.

Natürlich kann man sich da jetzt trotzdem nochwas selber 
zusammenfummeln, aber mir wäre es zu schade um die Zeit. YMMV.


XL

von Frank S. (Firma: no) (frank_schubert)


Lesenswert?

Axel Danke für die Links, die schaue ich mir naher mal an.


@Marc Vesely
Danke, jetzt geht...hast gut geschrieben, das habe sogar ich verstanden. 
:-)
mein kleiner atmega8 ist nun Programmiert.

Also für kleine sachen gehts auch über einen FT232BM oder sonst was.
Und vor allen Dingen verstehe ich jetzt mal wie sowas Programmiert wird.
Man lernt dazu :-)




Besten Dank an alle :-)

von Conny G. (conny_g)


Lesenswert?

Frank Schubert schrieb:
> mein kleiner atmega8 ist nun Programmiert.

Cool!!!

von Rolf ROFL (Gast)


Lesenswert?

>Also warum nicht mal ein
anständiges kleines Tool schreiben um den mega8 zu Programmieren.

Jo, mal eben was besseres als avrdude proggen. okay...

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.