PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : atmega8 lässt sich nicht programmieren



Gary
28.05.2009, 16:11
hi,

ich bin neu hir und nen ziemlicher anfänger im bereich microcontroller.

ich habe eine isp grundschaltung gebaut, betrieben mit einem atmega8 controller der eine led zum leuchten bringen soll.

ich habe nun folgendes problem,
ich habe ein paar programme aufgespielt, mal sollte die led im sek takt blinken mal per taster an und aus gehen, hat alles tadelohs funktioniert.
dann wollte ich die led ganz schnell blinken lassen und habe die Hz zhal auf 32MHz gesterllt und nun kann ich nichtmehr auf den controller zugreifen.
ich habe mal in nem forum gelesen das man mit den fuse-bits vorsichtig sein soll weil der controller sonst die komonikation verweigert, kann das fieleicht damit zu tun haben?

mfg Gary

Ceos
28.05.2009, 16:36
wo hast du bitte 32mhz eingestellt ? so eine fuseeinstellung exisitiert meines wissens nicht für einen atmega8!

Thomas$
28.05.2009, 16:51
ich glaub der arme hat seine Quarz Frequens geändert. findet der pc den mega8 am besten reset den mal

Gary
28.05.2009, 16:55
ich habe auch nicht gesagt das ich die bits verendert habe, nur ob das damit etwas zu tun haben könnte.

ich bin das programmieren für anfänger auf dieser seite mal durch gegangen und hab die programme meinem atmega8 etwas angepasst


$regfile = "m8def.dat"
$framesize = 8
$swstack = 8
$hwstack = 8
$crystal = 32000000 hir hab ich aus der 16 eine 32 gemacht, ich dachte das wären die Hz?
$baud = 9600


Config Pinb.0 = Output

do
Portb.0 = 1
Waitms 100
Portb.0 = 0
Waitms 100
loop

das hab ich auf den controller geladen, an den fuseeinstellung hab ich nichts gemacht.

wie kann ich den resetten?

C_Classic
28.05.2009, 17:11
Ja, $crystal stellt die Quarzfrequenz ein, aber das bezieht sich meiner Meinung nach nur auf das eine Programm. Wenn du hier die falsche Zahl angibst, funktionieren nur die Timing-Befehle(wie Waitms usw.) im Programm nicht richtig.
Aber das ändert Nichts an der Übertragung der Programme zum bzw. vom PC.

Die einzige Idee, die ich hätte, wäre, dass du deine serielle Schnittstelle am PC mal auf 9600 Baud setzt.

PS: Müsste die Zeile "Config Pinb.0 = Output " nicht "Config Portb.0 = Output " sein?

Thomas$
28.05.2009, 17:17
geht der programmer an anderen µC(fals vorhanden) gehen die leds áus wenn du programieren willst. sind alle drähte fest dran (ich hab mich auchmal doof und dämlich gesucht nach dem fehler es war ein draht ab) und stimmen die programmer eistellung in bascom ? und ist der programmer richtig rum angeschlossen?

Gary
28.05.2009, 17:37
ja alle kabel sitzen, die bascom einstellungen sind ok, die isp is richtig eigesteckt und die led get aus wen ich programmieren will.

aber wie kann ich den controller resetten? würde ich gerne mal ausprobieren

C_Classic
28.05.2009, 19:14
Das mit dem Reset ist meiner Meinung nach nicht so einfach Möglich. Es gibt jedoch eine Möglichkeit, den "high voltage parallel programming mode". Dies kann jedoch nur über die Parallele Schnittstelle geschehen.
Wie das genau funktioniert müsste im Datenblatt stehen, wenn nicht kannst ja mal bei Google nach "high voltage parallel programming mode" (http://www.google.de/search?hl=de&q=high+voltage+parallel+programming+mode&btnG=Google-Suche&meta=&aq=f&oq=) suchen.

Gary
28.05.2009, 19:42
sorry aber iwi bringt mich das alles nich weiter,
jedesmal wen ich den upload starte kommt diese fehlermeldung

bei ponyprog kommt diese fehlermeldung:
Communication port not available (-16)

und bascom reagiert garnicht der bleibt beim hochladen auf 0%

Ceos
28.05.2009, 20:04
das mit der frequenz wurde ja schon gesagt, das ist nur ein wert den du anlegst damit alle funktionen die auf zeitbasis arbeten wissen wie schnell der prozessor wirklich taktet, der atmega läuft entweder intern auf 1,2,4 oder 8Mhz oder auf externem takt ... wenn er von dir auf extern geschaltet wurde, hastn problem, da hilft nur parallel programming, wie auch shcoj gesagt wurde, was für nen programmiergerät benutzt du ? oder haste n kabel gebastelt ? fürs löschen müsste es ne funktion "chip erase" oder "chip reset" geben, damit setzt du den chip auf auslieferungszustand zurück wnen ich nich grob irre

Gary
28.05.2009, 20:41
ich habe einen parallel programmieradapter selber gebaut
hir hab ich die anleitung dazu gefunden http://s-huehn.de/elektronik/

und bei der resetfunktion "erase chip" die du meinst, naja da passiert so ziemlich nix

und nur um das nochmal zu verdeutlichen das problem trat auf "nachdem" ich dieses programm hoch geladen habe

$regfile = "m8def.dat"
$framesize = 8
$swstack = 8
$hwstack = 8
$crystal = 32000000
$baud = 9600

Config Pinb.0 = Output

do
Portb.0 = 1
Waitms 100
Portb.0 = 0
Waitms 100
loop

danach wollte der keine anderen befele mehr annehmen

raggy
28.05.2009, 21:53
$regfile = "m8def.dat" ----> Atmega8
$regfile = "m16def.dat" --->Atmega16
$regfile = "m32def.dat" ---> Atmega32

$crystal = 32000000---> hier wird die Quarz Frequens eingetragen
Atmega16 16PU heißt höchsten 16 Mhz = 16000000 Hz
bei einem neuen Atmega ist der interne 1 Mhz takt vorgegeben,
wenn Du einen externen Quarz hast muß das mit dem Fusebit
eingestellt werden ebenso der interne wenn der höher laufen soll geht das über den Fusebit .Google mal nach Fusebit,da wirst Du nicht drum rumkommen
Gruß raggy

Gary
28.05.2009, 22:30
egal was ich tuhe das ding blinkt immer in dem selben takt von der letzten programmierung.

die tips sind alle ziemlich gut nur haben die alle nen haken^^ es ist eine komonikation zwischen PC und controller notwendig die wie am anfang schon erwähnt nicht vorhanden ist, egal was ich tuhe. naja ich schmeiß das ding ma weck und kauf mir nen neuen.

ich hätte nur noch ne frage, auf welche weise kann man einen controller kaput programmieren? denn ich will den nächsten nich auch weck schmeißen müssen.

mfg gary

Thomas$
28.05.2009, 22:37
doofe frage kompiliert? das hab ich schon oft vergessen und mich gewundert warum das programm immer noch nicht geht ;-) kaput programiert bekommt man eine µC nicht so schnell 10000 mal programiern da tun mir jtzt schon die finger weh :-). kaput dürfte nichts sein hast du mal zwischen durch den pc neu gestartet das hat mir auch mal weiter geholfen.

Ceos
29.05.2009, 11:30
er sagte doch dass sein ponyprog den chip nicht erkennt !!! wenn du nen adapter für den parallel port gebaut hast iss doch gut, bau halt noch ein für HV parallel programming (HV nur, weil nach dem reset dann 12V an den reset pin angelegt werden um in diesen modus zu kommen)

in dem modus kannst du jeden chip, dessen magischen rauch man noch nicht abgelassen hatr oder dessen innerein man noch nicht überladen hat wieder retten

Gary
29.05.2009, 15:55
ich hab mal nach HV parallel programming gegooglet, ist das eine platine die ich da zusammenbauen darf? http://www.der-hammer.info/hvprog/gallery/large02n.jpg
get das noch was anfängerfreuntlicher?
oder kann ich mir so nen ding auch einfach kaufen?

Ceos
29.05.2009, 16:10
zu kaufen gibts solche dinger immer, der preis iss die frage ^^ ich hab mir puren luxus geleistet und nen avr dragon bei ebay geholt und die pinreihen draufgelötet XD
der geht aber glaube nur mitm avr studio und das versteht kein bascom

http://elm-chan.org/works/avrx/report_e.html

kA bins nur mal überflogen ... den den du gepostet hast, gibts auch als kaufversion .. den link versuch ich grad wiederzufinden

Gary
29.05.2009, 16:15
muss das ne platte sein oder kann man das in nem steckerformat bauen?
gibt es auch so dinger die mit bascom laufen weil ich kann nix anderes.

http://www.rn-wissen.de/images/6/65/Avrtutorial_grundschaltung_max232.gif
die 3 polige schnittstelle unten recht auf dieser schaltung was ist das?

C_Classic
31.05.2009, 20:15
Die Schnittstelle unten Rechts ist wenn ich mich nicht irre eine Serielle Schnittstelle (RS 232).
Unten Links steht ja auch: Rs232 Adapter für PC (Daten/Text auf PC ausgeben)

Aber wieso wird diese nicht direkt an den µC angeschlossen(ist doch möglich, oder)? Wofür ist dieses IC denn überhaupt gut?

peterfido
01.06.2009, 20:56
Die Ponyprog Meldung sieht nach einer bereits geöffneten oder falschen Schnittstelle aus. Einfach die 4 Widerstands-schaltung nehmen, in Bascom STK200/STK300 einstellen. Dann sollte es gehen. Wenn die LED Blinkt, dann ist der Takt auch noch da und nichts verfuset... Hochvolt braucht man nur, wenn man den Reset als IO gefuset hat oder ISP deaktiviert wurde. Da aber nichts an den Fuses geändert wurde, ist das nicht nötig. Ich habe damals übrigens Ponyprog nur kurz getestet gehabt und für mich als ungeeignet verworfen. Anschließend eine Zeitlang mit der 4 Widerstands-schaltung gearbeitet. Da diese aber recht langsam ist, bin ich jetzt bei AVR-Dude angelangt. Als GUI nutze ich khazama AVR Programmer. Als Progger habe ich den Bausatz von Ulrich Radig geordert.

Edit: die RS232 Schnittstelle des PC hat andere Pegel als die TTL-Pegel des Microcontrollers. Das IC ist ein Pegelwandler. Der AVR darf nicht direkt mit dem PC verbunden werden.

Gary
01.06.2009, 23:44
hey VIELEN DANK peterfido^^
mein controller gehorcht mir wieder und so fiel einfacher als ihn zu reseten

danke für die tips und die gedult mit mir^^

mfg gary