Forum: Mikrocontroller und Digitale Elektronik Basecom funktioniert PonyProg nicht?


von Maximilian D. (xxrising-sunxx)


Lesenswert?

Guten Abend,
Ich lese nun schon lange in euerem Forum da ich mich seit einigen Wochen 
mit der Programmierung von µControllern beschäftige.

Nun habe ich einige Problem das ich leider nicht alleine lösen kann und 
bitte euch um Hilfe.

Das erste was ich nicht verstehe ist folgendes:

Ich benutze einen eigenbau DT-006 Programmieradapter.Der zu 
programmierende Chip ist ein ATmega32.

Ich habe diesen in PonyProg laut tutorial eingestellt, jedoch 
funktioniert es einfach nicht. Die Fehlermeldung weiss ich jetzt leider 
nicht genau aber es heisst übersetzt das dass Gerät nicht gefunden oder 
unterstützt wird.

Ok dachte ich mir klickste mal Basecom an... und siehe da Basecom lässt 
mich das Programm übertragen (es funktioniert auch richtig) jedoch kann 
ich die Fusebytes nicht ändern. Oder genauer gesagt ich kann diese 
ändern aber die Änderungen werden nicht beibehalten.Dies habe ich 
festgestellt als ich in Basecom die JTAG Schnittstelle abschalten 
wollte.
Kennt ihr dieses Problem? Wieso passiert das?

Das nächste ist das ich in Basecom die Timer nich einschalten kann.
Der Befehl enable Timer0 wird als fehlerhaft angezeigt.
Das Problem habe ich aber bereits bei euch entdeckt und herrausgefunden 
das es an meiner älteren Version von Basecom liegen müsste.
Da ich das Problem öfters hatte wollte ich nun auf die C-Programmierung 
wechseln.

Jetzt die nächste Frage haben die C Entwicklungsumgebungen auch die 
Möglichkeit Programme direkt zu übertragen? Oder wird ein externes 
Programm (wie PonyProg) gebraucht? Wenn ja habe ich eine gute 
Ausweichmöglichkeit oder muss ich mich mit PonyProg rumschlagen?

Mit freundlichen Grüßen,
ein verzweifelter Rising

von Lukas K. (carrotindustries)


Lesenswert?

Maximilian Diez schrieb:
> C Entwicklungsumgebungen

Bein WinAVR ist avrdude zur Übertragung des Programms in den µC dabei.
avrdude wird über die Makefile aufgerufen. Ponyprog kannst du ebenso 
verwenden.
Wenn du es halbwegs ernst mit den µCs meinst, kann ich dir einen 
usb-Programmer (z.B. den AVRISP mkII) nur empfehlen.
PS: Es heiß Bascom, nicht Bas*e*com

von mü-C (Gast)


Lesenswert?

Hast du die Fuses nach dem Ändern auch in den Controller geschrieben? 
Nur eine andere Einstellung auswählen reicht nicht.
Zeig doch mal dein Bascom Programm mit dem Timer0 Fehler. Den Timer0 hat 
nämlich so ziemlich jeder AVR und für den MEGA32 unterstützt Bascom dies 
bestimmt schon seit einem halben Jahrhundert.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Maximilian Diez schrieb:

> Ich benutze einen eigenbau DT-006 Programmieradapter.

Und der ist garantiert kompatibel mit PonyProg? Wie hast du den Adapter 
aufgebaut, gibt es da einen Link oder einen Schaltplan?

von Maximilian D. (xxrising-sunxx)


Lesenswert?

Erstmal danke für den hinweis mit Bascom ... weiss auch net warum ich 
Basecom schreibe.
Einen USB-Programmierer werde ich mir auch zu legen wollte nur erst 
einmal schauen ob mir das Thema liegt und Spaß macht ohne viel geld zu 
investieren :)

Nun zum Adapter das ist ein Beispiel Schaltplan

http://www.kramann.info/65_Workshop/04_TagOffeneTuer/05_B005_Programmierer/index.php

Mein Adapter is fasst gleich nur das ich die Brücke von Pin 15 zum 
Widerstand nicht eingebaut habe.
Man findet eben 10000 verschiedene Möglichkeiten bei meinem ersten Fund 
war diese Brücke nicht eingebaut.
Der Adapter ist Kompatibel da man ihn direkt im PonyProg anwählen kann.

Nun zu den Fuses...
In Bascom habe ich auf Send to Chip geklickt.
Im folgenden Fenster das ja den Chip anzeigt habe ich die Fuses geändert 
und dann auf automatisches Programmieren geklickt (weiss jetzt nicht 
genau wie es heisst und kann auch net nachschauen). Habe ich da was 
falsch gemacht? Weil eigentlich kommt dein ein Ladebalken und dort steht 
ROM  EEPROM  Write Fuses.

Der Timer0 Fehler taucht hier auf :
Ich habe mich durch diese Tutorial gearbeitet :
http://www.ledhilfe.de/viewtopic.php?f=31&t=1675

und hier der Code :

$regfile = "m32def.dat"

$crystal = 1000000

Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.2 = Input

Config Timer0 = Timer , Prescale = 8
On Ovf0 Unserunterprogramm_isr

Enable Timer0                 <--- Hier meckert Bascom
Enable Interrupts


Danke für die Hilfe :)

von Paul Baumann (Gast)


Lesenswert?

Das ist doch nicht das ganze Programm. Es fehlt mindestens die 
Interruptroutine.

MfG Paul

von Maximilian D. (xxrising-sunxx)


Lesenswert?

hier das ganze :
$regfile = "m32def.dat"

$crystal = 1000000

Config Pind.5 = Output
Config Pind.6 = Output
Config Pind.2 = Input

Config Timer0 = Timer , Prescale = 8
On Ovf0 Unserunterprogramm_isr

Enable Timer0
Enable Interrupts

Taster1 Alias Pind.2
Led1 Alias Portd.5
Led2 Alias Portd.6

Do

Led1 = 1
Waitms 1000
Led1 = 0
Waitms 1000
Led2 = 1
Waitms 1000
Led2 = 0
Waitms 1000

Loop

Unserunterprogramm_isr:
If Taster1 = 1 Then
Led1 = 1
Led2 = 1
Waitms 500
Led1 = 0
Led2 = 0
End If
Return


Wie gesagt nur bei Enable Timer meckert bascom

von Karl H. (kbuchegg)


Lesenswert?

Maximilian Diez schrieb:

> Nun zum Adapter das ist ein Beispiel Schaltplan
>
> 
http://www.kramann.info/65_Workshop/04_TagOffeneTuer/05_B005_Programmierer/index.php

Der funktioniert nicht mit Ponyprog.
Pony will eine andere Steckerbelegung haben.

>
> Mein Adapter is fasst gleich nur das ich die Brücke von Pin 15 zum
> Widerstand nicht eingebaut habe.

Na, dann.
Dann ist er nicht mehr zu PonyProg kompatibel.

> Man findet eben 10000 verschiedene Möglichkeiten bei meinem ersten Fund
> war diese Brücke nicht eingebaut.
> Der Adapter ist Kompatibel da man ihn direkt im PonyProg anwählen kann.

Auswählen kannst du ihn, aber Pony wird ihn nicht erkennen, da es 
abtestet ob die Brücke vorhanden ist. Schau doch mal auf der PonyPorg 
Website, wie dort die Belegung des LPT Steckers sein muss. Das ist das 
einzige was letzten Endes zählt.

von Maximilian D. (xxrising-sunxx)


Lesenswert?

Danke hab mal auf der Pony Seite geschaut sehe ich das jetzt richtig das 
ich mir leider keinen so einfachen adapter bauen kann? Es sind nur 
Beispiele mit zusetzlichen IC´s zu sehen.

von Paul B. (paul_baumann)


Lesenswert?

Der gepostete Quelltext läßt sich hier ohne Fehler übersetzen.
Ich habe es mit der Version 1.11.9.5 von Bascom getan.

MfG Paul

von Lukas K. (carrotindustries)


Lesenswert?

Der Adapter http://www.s-huehn.de/elektronik/avr-prog/avr-parallel.gif 
hat damals bei mir funktioniert.

von Kluchscheißernder N. (kluchscheisser)


Lesenswert?

Waitms 500 in der Timer-ISR ist für jedes Programm tödlich.

MfG

von Maximilian D. (xxrising-sunxx)


Lesenswert?

Kluchscheißender Consulter schrieb:
> Waitms 500 in der Timer-ISR ist für jedes Programm tödlich.
>
> MfG

könntest du mir das kurz erklären? Wegen dem "langen" Stop des 
Hauptprogramms? Oder gibt es da nochwas was ich wissen sollte?

Danke wegen dem Adapter ich schau mir das gleich mal.

Edit : Wegen dem Adapter hab grade gesehn das ich die Version schon mal 
gebaut hatte leider kein erfolg im Pony :)

von Gerhard K. (mikros)


Lesenswert?

Hallo!

Bei mir lässt sich's auch kompilieren!

Hier meckert Bascom hilft leider nicht viel.
Was meckert Bascom denn?

MfG

von Maximilian D. (xxrising-sunxx)


Lesenswert?

Bascom schreibt das es den Befehl net erkennt.
Hab mir jetzt nochmal die Demo geholt und neu installiert jetzt 
funktioniert alles einwand frei :)

Gibt den nun irgenten Tipp wegen dem brennen der Fuses? oder lag das 
eventuell auch an der fehlerhaften version?

von Ralph Fischer (Gast)


Lesenswert?

Hallo Maximilian,

> Gibt den nun irgenten Tipp wegen dem brennen der Fuses?

Jo, einen hätte ich: die Fuses schreibst Du nicht mit "Write PGM" in den 
Chip, sondern mit "Write FH" und/oder "Write FSH".

Mußt mal sehen, ob ich die Bezeichnungen richtig erwischt habe. Ich habe 
gerade keinen Programmieradapter im Büro und kann nicht nachsehen.

Viel Erfolg!

Ralph

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.