Forum: Mikrocontroller und Digitale Elektronik GLCD funktioniert an mega128 aber nicht an mega32


von Andre (Gast)


Lesenswert?

Hallo,

habe ein Projekt mit einem GLCD und HD61830 auf dem Testboard stecken.
Mit einem Atmega128 funktioniert es einwandfrei.

Nun habe ich anstatt dem Atmega128 einen Atmega32 dran und es 
funktioniert nichts mehr.

Im Programm habe ich lediglich das "#include<mega128.h>" auf 
"#include<mega32.h>" geändert, Ports sind gleich geblieben.

Frequenz, Spannungsversorgung usw. ist ebenfalls gleich.

Aber warum kann ich Programm und Hardware nicht wie für den mega128 
übernehmen?

von hp-freund (Gast)


Lesenswert?

Welche Ports?
Vielleicht das übliche JTAG Pin Problem?

von Andre (Gast)


Lesenswert?

habe als Dataport den PortC Bit0-Bit7 und als Controlport den PortB 
Bit0-Bit4 genutzt.
(Beitrag "HD61830 Ansteuerung" bis auf kleine Änderungen 
quasi dieser code)


JTAG ist an PortC, habe JTAGEN in den Fuses deaktiviert. Jetzt sieht man 
zumindest ein "Rauschen" auf dem Display.
Gibt es noch etwas anderes was an den Ports kollidieren könnte?
Bzw. muss ich JTAG anders abschalten?

von Patrick W. (pawi777)


Lesenswert?

Andre schrieb:
> Im Programm habe ich lediglich das "#include<mega128.h>" auf
> "#include<mega32.h>" geändert, Ports sind gleich geblieben.

Welche Entwicklungsumgebung verwendest du? Doch nicht etwa avr-gcc(Atmel 
studio und konsorten)? Falls doch: grober Fehler. Immer avr/io.h 
inkludieren und mit den Typ mit einem Compilerflag definieren. Falls du 
etwas anderes verwendest, ignoriert bitte alle diesen teil meines 
Beitrags.

Wenn JTAG in den fuses aus ist, dann reicht das völlig. Etwas anderes 
gibt es auf den verwendeten Ports nicht mehr, das stören könnte, es sei 
denn du hast es im Code explizit eingeschltet.

Gehen andere Teile des Codes? Alle Compilereinstellungen richtig? 
Hardware in Ordnung? Lass doch mal eine LED blinken.

Cheers

von Andre (Gast)


Lesenswert?

Ich nutze CodevisionAVR und habe stdio.h drin.
avr/io.h brauche ich da nicht, oder?

Etwas anderes nutze ich auf den Ports auch nicht. Kein I2C, kein SPI, 
oder sonst was. Nur IOs für das Display.

Ausser.... ISP was sich zwar nicht mit den Bits überschneidet aber auch 
auf PortB liegt. Werde gleich mal einen anderen Port versuchen.

LED Blinken funktioniert. Compiler und Hardware sollte auch ok sein.

von Andre (Gast)


Lesenswert?

okay, am ISP liegt wohl auch nicht. Habe den Port gewechselt und das 
selbe Problem.

Den mega128 programmiere ich über USB mit Bootloader, den mega32 über 
ISP.
Kann das was mit meinem Problem zutun haben?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

1
         ATmega128  ATmega32
2
3
Flash    128k       32k
4
EEPROM     4k        1k
5
SRAM       4k        2k


Passt der Speicherbedarf überhaupt zum m32?

: Bearbeitet durch User
von Patrick W. (pawi777)


Lesenswert?

Magnus M. schrieb:
> Passt der Speicherbedarf überhaupt zum m32?

das wäre dan der nächste grosse punkt. Avr-size mal laufen lassen kann 
aufschlussreich sein. Aber man kann es auch grob abschätzen, 
problematisch wird es ja nur bei grossen arrays wie fonts und frame 
buffern.

CodeVisionAVR kenne ich nicht, da kann ich nichts dazu sagen. Ich hätte 
erwartet, dass die die libraries die selben sind. Aber das kann genau so 
gut ganz anders sein, gerade bei den hardwareabhängigen.

Andre schrieb:
> Den mega128 programmiere ich über USB mit Bootloader, den mega32 über
> ISP.
> Kann das was mit meinem Problem zutun haben?

eigentlich nicht, nein

: Bearbeitet durch User
von Andre (Gast)


Lesenswert?

Ahh :)

Beim überprüfen der Größe (beim compilieren mit Codevision) ist mir 
aufgefallen, dass der Gesamt-verfügbare Speicher noch für den mega128 
angezeigt wird.

Mann muss in Codevision also nicht nur den passenden header für den mc 
zufügen sondern auch in den compiler Einstellungen den richtigen mc 
auswählen.

Danke für eure Hilfe! Nun funktioniert es :)

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.