C CodeVision: C-Programm auf Mega32 spielen, Fuse-Bit Einstellungen

Hallo,

ich nutze nicht Codevision, es mag also sein dass ich hier falsch liege aber allgemein ist es so, dass wenn während der Kompilierung ein Fehler auftritt, der Code nicht erzeugt wird. In deinem Fall ist der "Flash Buffer" leer, dein Sourcecode wurde wahrscheinlich nicht erfolgreich kompiliert. Codevision muss hier auch irgendwo eine Fehlermeldung oder einen Status anzeigen.

Dirk
 
Hallo Dirk,
hier mal das Ergebnis der Kompilierung

Compiler:
Chip: ATmega32
Clock frequency: 8,000000 MHz
Program type: Application
Memory model: Small
Optimize for: Size
(s)printf features: int, width
(s)scanf features: int, width
Promote 'char' to 'int': Yes
'char' is unsigned: Yes
global 'const' stored in FLASH: No
8 bit enums: Yes
Enhanced function parameters passing: Yes
Automatic register allocation: Yes
Smart register allocation: Yes

Build: 1
1135 line(s) compiled
No errors
No warnings

Bit variables size: 0 byte(s)

Data Stack area: 0x60 to 0x25F
Data Stack size: 512 byte(s)
Estimated Data Stack usage: 2 byte(s)

RAM Global variables size: 0 byte(s)

Hardware Stack area: 0x260 to 0x85F
Hardware Stack size: 1536 byte(s)

Heap size: 0 byte(s)

EEPROM usage: 0 byte(s), 0,0% of EEPROM
Program size: 115 words (230 bytes), 0,7% of FLASH
0 words (0 bytes), 0,0% reduced by Code Compression

Reiter Assembler
AVRASM: AVR macro assembler 2.1.30 (build 592 Nov 7 2008 12:38:17)
Copyright (C) 1995-2008 ATMEL Corporation

C:\cvavreval\LEDTest3\List\LEDTest3.asm(1265): No EEPROM data, deleting C:\cvavreval\LEDTest3\Exe\LEDTest3.eep

ATmega32 memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x0000e6 230 0 230 32768 0.7%
[.dseg] 0x000060 0x000260 0 0 0 2143 0.0%
[.eseg] 0x000000 0x000000 0 0 0 1024 0.0%

Assembly complete, 0 errors.
 
Hallo,

die Kompilierung ist fehlerfrei, der Assembler hat auch das Hex-File erzeugt. Dieses müsste hier zu finden sein: C:\cvavreval\LEDTest3\Exe\LEDTest3.hex

Ich kenne mich leider mit Codevision nicht aus, vielleicht musst du das Hex-File erst in den "Flash-Buffer" laden, um programmieren zu können, möglich dass es projektbezogen nicht automatisch geht.

Dirk
 
Ok, dann gehen wir einen anderen Weg ;)

Empfiehl mir doch mal ne Software, mit welcher ich den MEGA in C programmieren kann und die oft benutzt wird, sodass man gut auf Hilfe zurückgreifen kann.
ggf. auch nen tutorial für einsteiger, bezogen auf die Software

Wäre echt nett... Danke ;)
 
Hallo Codeman,
Empfiehl mir doch mal ne Software, mit welcher ich den MEGA in C programmieren...


kostenlos und wahrscheinlich am meisten eingesetzt ist der AVR GCC Compiler. Es gibt zum Beispiel für AVR Studio4 von Atmel das Plugin WinAVR des GCC-Compilers, so dass man mit AVR Studio4 ein C-Projekt erstellen kann. In der Hilfe (Menü: Help/AVR Studio User Guide) ist eigentlich alles erklärt.

Neu ist die Version AVR Studio5 (aktuell Beta 2) von Atmel mit integriertem C-Compiler und auch für die AVR32 Mikrocontroller UC3. AVR Studio5 habe ich allerdings selber noch nicht eingesetzt, das werde ich demnächst mal testen.

Codevision ist aber bestimmt auch nicht verkehrt.

Dirk
 
ich glaube ich habs verkackt :/

Bin jetzt nach diesem Tutorial vorgegangen:
http://imakeprojects.com/Projects/avr-tutorial/

Erst lief das Programmieren ohne Probleme, jedoch ohne, dass die LEDs angingen :/

Später habe ich nochmal versucht das Programm erneut aufzuspielen. Irgendwie ist da das SPIEN Flag deaktiviert worden..
Ich weiss nicht wie, denn ich konnte da ja nichts ausstellen. Das war schon immer grau hinterlegt, aber sonst mit Haken drin - der fehlt jetzt :/

Error.jpg

Kann ich den Mega noch irgendwie retten?
 
Hallo Codeman,

du hast den Haken bei "Auto Read" nicht gesetzt und auch den Read-Button nicht manuell gedrückt. Bei Auto-Read werden die Fuses automatisch dann eingelesen, wenn du auf den Tab Fuses gehst.

Auf dem Bild steht auch "Fuses not read!".

Ganz wichtig: Zuerst immer Fuses einlesen, dann nur die Fuses ändern, die man ändern möchte, dann Fuses programmieren.

Gruß,
Dirk
 
Hallo Dirk,
AutoRead habe ich raus genommen, weil sonst immer ne Fehlermeldung kommt.
Gehe ich auf Read kommt ne Fehlermeldung, dass er nicht in den Programming Mode gehen kann oder so.
Muss dir mal nen Screenshot schicken, wenn ich zu hause bin.
 
Hi,
also ich habe mein Board grad nochmal angeschlossen und bin dann auf "Connect to selected AVR Programmer" gegangen.
Dann hat er (mit Auto Read bei Fuses) folgendes angezeigt:

1.jpg
2.jpg
3.jpg
5.jpg
4.jpg
 
7.jpg
9.jpg
8.jpg

Wenn ich versuche dann zu Programmieren kommt folgendes:
6.jpg

Siehst du irgednwo nen Fehler?
 
Hallo Codeman,

in diesem Screenshot von dir sieht man, dass die Fusebits richtig gelesen wurden. "Enable Programming Mode" hat also funktioniert! Normalerweise stellt man die Fusebits nur einmalig ein, zum Beispiel um die Systemtaktquelle zu wählen. In deinem Fall ist der Oszillator für einen Quarz bis 16MHz gewählt.

Du solltest also nun dein Programm in den Flashspeicher programmieren können. Das machst du im Programmerdialog im Tab "Program" in der Groupbox "Flash" mit dem Button "Program". Hier dein Screenshot dazu.

Ich kenne mich nun leider mit dem STK500 nicht so aus und weiss nicht, wie die Fehlermeldung in deinem letzten Sceenshot zustande kommt.

Vielleicht kann hier jemand mal weiterhelfen, der mehr Erfahrung mit STK500 hat.

Dirk
 
Hallo,

Ich kenne mich nun leider mit dem STK500 nicht so aus und weiss nicht, wie die Fehlermeldung in deinem letzten Sceenshot zustande kommt.

Vielleicht kann hier jemand mal weiterhelfen, der mehr Erfahrung mit STK500 hat.
ist der Prozessortyp (Mega32) wirklich richtig ?? Gibts da noch Untertypen ?? (m32a,m32...)
ist die Verbindung vom STK500 zum Zielsystem vollständig angeschlossen ?
Auch mit Vcc ?
@Dirk: Wir hatten doch letztens was mit dem Mega128-Modul das vom STK500 mit
versorgt wurde.

Das STK500 mißt anscheinend auch wie das AVRISPmk2 die Spannung des Zielsystems.
Sind also alle Jumper richtig gesetzt ?

Gruß
Dino
 
Dino,

was mich wundert ist, dass "Enable Programming Mode" beim Einlesen der Fuses ja funktioniert, zumindest nach dem einen Screenshot. Die Programmierung des Flash sollte also auch funktionieren. Die Fehlermeldung im letzten Screenshot irritiert mich, die Programmersoftware kann anscheinend die Targetspannung nicht "lesen" :hmmmm:

Kann es sein, dass die Screenshots nicht zusammenpassen, das heisst der Screenshot mit den Fuses wurde irgendwann zuvor erstellt ... hmmm, passt der gewählte Programmer zum Developmentboard?

Gruß,
Dirk
 
hi,
die screenshots gehören alle zusammen!
Es ist ein USB ISP Programmer (Stange ISP Prog), welcher kompatibel mit dem STK500 sein soll...

rest morgen früh ;)

gruß n8
 
Hallo,

heute morgen mal kurz gesucht ...

Es ist ein USB ISP Programmer (Stange ISP Prog), welcher kompatibel mit dem STK500 sein soll...

Anleitung:
Anleitung_ISP-Programmer.pdf

Beiträge:
mikrocontroller.net - Stange USB ISP Programmer anschluss an ATtiny45/2313
ledstyles.de - Wie den AVR USB ISP Programmer einstellen
arduino.cc - Stange ISP

war jetzt nur mal so ein Schnellschuß um zu sehen um welchen Progger es geht.

Noch ne Idee: Es kommen ja ab und zu neue ATmega-Typen raus. zB ATmega32 (alt),
ATmega32L (LowPower), ATmega32A, ... und immer mit anderen SignatureBytes.
Könnte es sein das der Progger mit der Firmware hinterherhinkt ? Ist jetzt nur so eine
Idee ...

Gruß
Dino
 
Guten Morgen zusammen,

für mich sieht es aus, als würde die Programmersoftware ein Kommando senden, um die Targetspannung zu erfahren und das Kommando wird vom Programmierer nicht unterstützt. Eventuell muss man eine andere Programmiersoftware verwenden, vielleicht irgendeine alte STK500 version oder AVRISP (nicht mkII). Hier kann ich aber nicht weiterhelfen.


Anhang anzeigen 3393

Folgendes irritiert mich: Die Fusebits können gelesen, aber nicht geschrieben werden.

Anhang anzeigen 3391


Hmmm, jetzt habe ich leider keine Ideen mehr.

Die Links von Dino sind gut, da würde ich mal weiter durchlesen, vielleicht ist es noch eine Treibersache oder was ähnliches.

Nichts gegen den verwendeten Programmierer, ich würde mir aber darüber Gedanken machen, zum Beispiel den AVRISPmkII von Atmel einzusetzen. Der Programmierer ist relativ günstig, nicht so günstig wie Ebay-Programmierer, aber man spart sich eventuell einige Stunden Kopfzerbrechen. :)

Grüße,
Dirk
 
Moin,
also ich habe den SPI Programmer:
Klick @ Ebay

Wie kann ich das mit der Firmware denn rausfinden, ob die hinterher hängt?

Hab grad nochmal probiert. Es ist nicht möglich nach dem AutoRead nochmal die Fusebits einzulesen, es kommt sofort die oben beschriebene Fehlermeldung... :/

Kannst du mir mal nen Link zum "richtigen" AVR IPS Programmer schicken?

Gruß
 
Hallo Codeman,
Kannst du mir mal nen Link zum "richtigen" AVR IPS Programmer schicken?

aus unserem Onlineshop www.mikrocontroller-praxis.de
AVRISPMKII_01.jpg

AVRISPmkII

Den Programmierer kann ich bedenkenlos empfehlen, diesen gibt es natürlich auch noch in anderen Onlineshops.

Gruß,
Dirk
 
Halo,

Wie kann ich das mit der Firmware denn rausfinden, ob die hinterher hängt?
da kann man sich eigentlich nur auf die Angaben des Herstellers verlassen und hoffen
das die reingeschriebenen Sachen wirklich fehlerfrei laufen.

Beim AVRISPmk2 ist der Support für neue Prozessoren und Funktionen direkt von
Atmel und damit auch mit Sicherheit schneller drin als bei allen anderen. Er ist zwar ein
klein wenig teurer, aber dafür hat man normalerweise auch weniger Probleme. Das
soll aber nicht heißen das jetzt alle anderen Progger schlecht sind. Die Protokolle
sind ja von Atmel offengelegt und können darum von jedem anderen nachgebaut
werden. Es kommt jetzt drauf an wie gut das gemacht wurde. Wenn neue CPUs
raus kommen die neue Signaturen haben dann müssen die auch in den Firmwares
der anderen Hersteller nachgepflegt werden damit der Progger die richtige Prozedur
für die Programmierung wählt. Da ist man dann auch auf den Hersteller angewiesen.
Wenn er keine Zeit oder Lust mehr hat dann sitzt man auf einem veralteten Gerät.

Hab grad nochmal probiert. Es ist nicht möglich nach dem AutoRead nochmal die Fusebits einzulesen, es kommt sofort die oben beschriebene Fehlermeldung... :/
Das ist schlecht. Ich hab es mir angewöhnt immer die Fuses nochmal per Hand
einzulesen. Ob jetzt Autoread an ist oder nicht. Außerdem kann man mit dem
manuellen Einlesen der Fuses schnell mal probieren ob die ISP-Schnittstelle sauber
funktioniert ohne das man was verdreht.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)