Forum: Mikrocontroller und Digitale Elektronik Atmega128 AVR-DOS und Port F problematisch?


von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Hallo alle zusammen,

ich habe folgendes Phänomen und finde keine Erklärung dafür.

An einem Atemga128L habe ich am Port F eine SD-Card angeschlossen, über
74HC4050 als Pegelwandler. Die SD-Card-Schaltung funktioniert aber nicht 
am
Port F, ändere ich es auf einen anderen Port z.B. Port D klappt es.

Ich habe AVCC mit VCC verbunden und AREF offen gelassen, liegt hier 
evtl.
mein Problem.

Arbeiten tue ich mit Bascom und wenn ich den Port F auf Augang schalte 
und
die Pull-UP´s einschalte habe ich an allen Ausgängen 5V anliegen. Nutze
ich den Port aber mit AVR-DOS und der MMC_CONFIG.BAS (Soft-SPI) habe ich
keine Signale auf den Ausgängen nur F0 hat 5V.

Ändere ich jetzt die MMC_CONFIG.BAS auf Port D um und verbinde meine 
SD-Card
mit selbigem klappt es sofort.

Kann es damit zu tun haben das der Port F die ADC`s darstellt?

Die Fuses sind korrekt, JTAG disabled und 128 Modus aktiviert. Ich nutze
5 Volt als Spannungsversorgung und 8 MHz interne Frequenz für den MC 
sowie
3,3V für den 74HC4050 und SD-Card.

Bin dankbar für jeden Tipp der es mir erklärt.

Gruß
Thomas H.

von Jörg X. (Gast)


Lesenswert?

Auf PORTF ist das JTAG-Interface... (das ist standartmäßig an, genauso 
wie der "atmega103 compatibility-mode", dem bist du aber bestimmt schon 
'begegnet').

hth. Jörg

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Jörg X.

Wie ich ja schrieb ist JTAG disabled und der 128er Modus aktiviert ;)

Darauf achte ich immer zuerst.

von Magnus Müller (Gast)


Lesenswert?

> Arbeiten tue ich mit Bascom und wenn ich den Port F auf Augang schalte
> und
> die Pull-UP´s einschalte habe ich an allen Ausgängen 5V anliegen. Nutze
> ich den Port aber mit AVR-DOS und der MMC_CONFIG.BAS (Soft-SPI) habe ich
> keine Signale auf den Ausgängen nur F0 hat 5V.

Die internen PullUPs wirken sich nur auf die Pins aus, welche als 
Eingänge konfiguriert sind!

Setze mal DDRF als Ausgang, und füttere PORTF mit 0xFF. Jetzt sollten an 
den Pins PF0 bis PF7 ca. 5V zu messen sein.

Nun wiederholst du den Versuch, allerdings setzt du nun PORTF auf 0x00. 
Nun sollten an den Pins PF0 bis PF7 ca. 0V zu messen sein.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@ Magnus Müller

Funktioniert wunderbar, nur wenn  ich jetzt wieder die SD-Card über 
AVR-DOS anbinde klappt es nicht mehr.

AVR-DOS schaltet pinweise und nicht den ganzen Port, kann es daran 
liegen?

von Magnus Müller (Gast)


Lesenswert?

Poste doch bitte mal deine auf PORTF umgeschriebene "MMC_CONFIG.BAS" als 
Anhang. Ich schätze mal, dass der Hund dort begraben liegt.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@ Magnus Müller

Hier der Teil mit den Änderungen auf Port F

   ' Chip Select Pin  => Pin 1 of MMC/SD
   Config Pinf.0 = Output
   Mmc_cs Alias Portf.0
   Set Mmc_cs

   ' MOSI - Pin  => Pin 2 of MMC/SD
   Config Pinf.1 = Output
   Set Pinf.1
   Mmc_portmosi Alias Portf
   Bmmc_mosi Alias 1

   ' MISO - Pin  => Pin 7 of MMC/SD
   Config Pinf.3 = Input
   Mmc_portmiso Alias Pinf
   Bmmc_miso Alias 3

   ' SCK - Pin  => Pin 5 of MMC/SD
   Config Pinf.2 = Output
   Set Pinf.2
   Mmc_portsck Alias Portf
   Bmmc_sck Alias 2

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.