PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Prog. mit IDE! Direkt über STK200/STK300 programmieren



PRobot
18.11.2007, 16:46
Hallo!
Ich bin auf der Suche nach einem Programm, mit dem man in der Programmiersprche C einen AtMega32 direkt über die parallele Schnittstelle mit dem STK200/STK300 Dongle (ISP-Programmierkabel (ISP Dongle) von Robotikhardware) programmieren kann, so wie Bascom.

Ich habe es bereits mit AVR-Studio versucht, dort bekomme ich aber keine Verindung.

Da ich nur einen Com-Anschluss habe, und diesen für RS232 benütze, sollte man den Comtroller über die parallele Schnittstelle programmieren können.

Welches Programm benützt ihr?
Es sollte eine IDE haben.

Danke

Hubert.G
19.11.2007, 10:09
Für die Parallele Schnittstelle kenne ich sonst nur PonyProg. Das AVR-Studio unterstützt diese Programmer nicht. Ich bin aus diesem Grund auf USB_AVR-ISP umgestiegen.

PRobot
22.11.2007, 16:45
Danke für die antwort!
Ich werde es jetzt mal mit PonyProg versuchen!
Kennt jemand vllt. noch ein anderes Programm, mit dem man den Code direkt vom Editor in den Microcontroller über die parallele Schnittstelle übertragen kann?
Ich habe bereits den Programmer für den parallel-Port gekauft und möchte deshalb nich noch einen USB-Programmer kaufen!

izaseba
22.11.2007, 17:28
Kennt jemand vllt. noch ein anderes Programm, mit dem man den Code direkt vom Editor in den Microcontroller über die parallele Schnittstelle übertragen kann?

Programmers Notepad

Gruß Sebastian

PRobot
22.11.2007, 18:40
Programmers Notepad
Der erste Eindruck ist wirklich gut!
Nur wie man die Programme compiliert und dann überträgt bin ich noch nicht ganz mitgekommen!
Ich habe WinAVR installiert. Dort wird automatisch Programmers Notepad und avrdude mitinstalliert. Also alles was ich brauche!
Die Einstellungen bei Tools für Programmers Notepad für WinAVR waren bereits eingestellt (hier nochmals die Beschreibung: PDF (http://www.coe.uncc.edu/~jmconrad/AVR/ButterflyGuide.pdf)) Aber wie kann ich jetzt den Code compilieren und dann übertragen? Hat jemand zufällig eine Beschreibung parat?

izaseba
22.11.2007, 19:11
Ja also das ist garnicht so schwer.

Programmers Notepad arbeitet mit Makefile und das will erst erstellt werden.
Dazu liefert Dir das winavr Paket ein Programm mit dem Namen Mfile, zu finden in Start/winavr******/

So nachdem Du Dein C Programm geschrieben hast, rufst Du MFile auf.

Darin kannst Du im Menu oben Makefile drücken und Einstellungen zu Deinem
µC machen ( unter MCU Type)
unter C/C++ Sources wählst Du Dein C Programm(das Du hoffentlich irgendwo gespeichert hast) Wenn Dein Programm aus mehreren *c Dateien
besteht mußt Du natürlich alle auswählen.
Unter avrdude wählst Du Deinen Programmer und Port.
Dann Speicherst Du Das Makefile in den gleichen Ordner, wo Dein *c Programm liegt.

Jetzt kann MFile gechlossen werden.

Im PN kannst Du in der Projektansicht rechtsklicken und Dein Makefile mit in den Projekt aufnehmen.
Es ist zwar nicht nötig, aber so erscheint das Makefile in der Projektansicht
und läßt sich von da aus bequem öffnen um eben kurz was zu ändern z.B. eine neue *.c Datei eintragen.

Kompilieren kannst Du mit Tools/Make all
Brennen mit Tools/Make program

Einfach ?

Wenn nicht mußt Du nochmal nachfragen

Gruß Sebastian

PRobot
23.11.2007, 15:19
Danke! Super Antwort!
Und auch einfach!!!!!

Thanks
Sollte es dennoch Probleme geben, melde ich mich!

PRobot
23.11.2007, 17:13
Ich habe jetzt doch ein Problem:
Beim Programmieren:

> "make.exe" program

Creating load file for EEPROM: main.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0
c:\Program Files\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied!
avrdude -p atmega32 -P lpt1 -c stk200 -U flash:w:main.hex
avrdude: can't open device "giveio"

avrdude: failed to open parallel port "lpt1"

make.exe: *** [program] Error 1

> Process Exit Code: 2
> Time Taken: 00:02


Wahrscheinlich ist eine Eistellung für den Programmer falsch!
In MFile habe ich es mit stk200 und pony-stk200 versucht, immer die selbe Fehlermeldung.

Ich habe den ISP-Dongle von robotikhardware.de (hier (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=73&products_id=41&osCsid=ad468507d993c46d46bcd52c513f7e76))

Kann es damit zusammenhängen, dass ich den LPT-port über eine PCI Karte bereitstelle, denn bei BASCOM musste ich auch die Adresse vom E/A-Bereich ändern?

Zusätzlich habe ich noch folgende Frage:
Bei MFile wird für F_CPU autom. 8000000 eingestellt. Ich habe aber 16Mhz. Sollte man den Wert in der Makefile ändern oder sonst irgendwo?

Danke

izaseba
23.11.2007, 17:37
Wenn man


avrdude: can't open device "giveio"

bei Google eingibt und den ersten Treffer nimmt, wird man auf
C:\winavr***\doc\avrdude\avrdude.pdf aufmerksam, darin befindet sich ein Kapitel mit dem Namen "Using the parallel Port" da steht was von install_giveio.bat was in c:\avr***\bin zu finden ist :-s
Versuch es mal damit O:)

Zu dem Quarz, ja das sollst Du im Makefile ändern (deswegen ist es gut, wenn man im Projektordner Makefile hat)

Da drückst Du drauf und kannst die Datei bearbeiten.
Interessant ist hier dieser Teil


# Processor frequency.
# This will define a symbol, F_CPU, in all source code files equal to the
# processor frequency. You can then use this symbol in your source code to
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
# automatically to create a 32-bit value in your source code.
# Typical values are:
# F_CPU = 1000000
# F_CPU = 1843200
# F_CPU = 2000000
# F_CPU = 3686400
# F_CPU = 4000000
# F_CPU = 7372800
# F_CPU = 8000000
# F_CPU = 11059200
# F_CPU = 14745600
# F_CPU = 16000000
# F_CPU = 18432000
# F_CPU = 20000000
F_CPU = 8000000


# steht für Komentar, wird also ignoriert, jetz nur noch # an einer Stelle wegmachen und woanders einfügen, fertig.

Viel Spaß mit Deinem Projekt ;-)

Gruß Sebastian

PRobot
23.11.2007, 18:56
Danke!
Die .bat Datei habe ich jetzt erfolgreich ausgeführt. Aber in der oben genannten .pdf steht folgendes:

AVRDUDE will only accept 3 Windows parallel port names: lpt1, lpt2, or lpt3. Each of
these names corresponds to a fixed parallel port base address:
lpt1 0x378
lpt2 0x278
lpt3 0x3BC

Mein Problem ist jetzt, dass der LPT1 Port eine andere Adresse besitzt, da dieser über eine PCI Karte bereitgestellt wird, da ich keinen LPT onboard habe!

Die aktuelle Adresse für LPT1 ist folgende (E/A-Bereich im Gerätemanager)
0xCCA8

Der gesamte E/A Bereich:
CCA8-CCAF
CCB0-CCB7

Wie kann ich jetzt Avrdude sagen, dass diese Adresse verwendet werden soll?

Achja:
Ich habe folgende PCI Karte:
Moschip MCS9805 (http://www.moschip.com/html/MCS9805.html)

izaseba
23.11.2007, 19:28
Das ist in der Tat nicht gut...
Da ich keinen Parallelportprogrammer verwende, bin ich jetzt etwas ratlos,
sorry.

Vielleicht kann sonst noch jemand helfen ?

Gruß Sebastian

izaseba
24.11.2007, 10:53
Ich habe mich etwas umgesehen, und zwar in Sources von avrdude in der Datei ppiwin.c steht folgendes:


static const winpp winports[DEVICE_MAX] =
{
{DEVICE_LPT1, 0x378},
{DEVICE_LPT2, 0x278},
{DEVICE_LPT3, 0x3BC},
};

Wenn man hier nicht was ändern,hinzufügen könnte ;-)

Leider hab ich bis jetzt keine Erfahrungen in Sachen Windows und Unix Sources kompilieren, habe erst seit 2 Wochen Win drauf, aber hier (http://www.mikrocontroller.net/topic/52898) ist etwa beschrieben, wie es geht.

Vielleicht habe ich naher Lust und Zeit mich dranzusetzen dann werde ich berichten.

Gruß Sebastian

UPDATE:

So ich habe avrdude 5.5 erfolgreich auf Win Vista übersetzt und die von mir vorgeschlagene Änderung gemacht.

Danach habe ich die Originale Datei aus Winavr mit dem Kompilat ersetzt und was soll ich sagen, es klappt.
Leider hab ich keinen Parport Programmer und auch keine Parport Karte mit Deiner Adresse um das zu testen...
Wenn Du interesse hast schick mir Deine E-Mail Adresse per PN dann schicke ich Dir die Datei zum Testen zu.

PRobot
25.11.2007, 10:05
Es funktioniert!!!
Danke!