- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 4 von 4

Thema: SD/MMC Karte an ATMega8 will nicht initialisieren

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.05.2006
    Ort
    @ Home
    Alter
    36
    Beiträge
    270

    SD/MMC Karte an ATMega8 will nicht initialisieren

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!

    Ich versuche hier verzweifelt ne SD Karte zu initialisieren. Mehr will ich grad granicht, bzw. zu mehr bin ich noch nicht gekommen.

    Auf der Seite von Ulrich Radig ist ja auch das PDF mit den Timings. Genau das habe ich jetzt mal nachprogrammiert, aber es geht ums verrecken nicht.
    Auch das Datenblatt das ebenfalls auf der Seite von Ulrich Radig zu finden ist, hat mir nicht sonderlich weitergeholfen, außer dass ich jetzt weiss, dass es nur 6Bit Befehle sind.

    Hier aber erstmal mein Code:


    Code:
       $crystal = 8000000
       $baud = 9600
       $regfile = "M8def.dat"
    
    
    Dim Dout As Byte
    Dim Din As Byte
    Dim I As Byte
    
    Config Pinb.2 = Output
    Config Pinb.3 = Output
    Config Pinb.5 = Output
    
    Config Pinb.4 = Input
    
    Mmc_cs Alias Portb.2
    Set Mmc_cs
    
    Sck Alias Portb.5
    Mosi Alias Portb.3
    Miso Alias Pinb.4
    
    Set Sck
    Set Mosi
    Set Miso                                                    'Pull Up
    
    
    Do
    Gosub Mmc_init
    
    Wait 1
    
    Print Bin(din)
    Loop
    
    
    
    Mmc_init:
    
    For I = 1 To 10
    
    Dout = &HFF
    Shiftout Mosi , Sck , Dout , 1 , 8 , 16
    
    Next
    
    
    Reset Mmc_cs
    
    Dout = &H00
    Shiftout Mosi , Sck , Dout , 1 , 6 , 16
    
    Dout = &H00
    Shiftout Mosi , Sck , Dout , 1 , 8 , 16
    Shiftout Mosi , Sck , Dout , 1 , 8 , 16
    
    Dout = &H95
    Shiftout Mosi , Sck , Dout , 1 , 8 , 16
    
    
    Shiftin Miso , Sck , Din , 1 , 8 , 16
    
    
    Set Mmc_cs
    
    Return
    Ich sende also erst 80 Pulse, dann geht CS auf Low, anschließend CMD0 und so weiter.
    Von der Karte kommt aber kein Fatz zurück. Die bleibt einfach stumm.

    Elektrisch ist alles OK, kann auch mit dem Oszi wunderbar CS, Dout, und CLK anschauen.
    Karte ist auch OK, da sie in meiner Digicam tut.

    MfG

    Schoko

    P.S.: Hier die Timings von der SD-Karte: http://www.ulrichradig.de/site/atmel...CSDTimming.pdf
    Warum bekommen Vegetarier immer eine Extrawurst?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Willst du es unbedingt selber neu erfinden oder kannst du auch die CONFIG_MMC.bas und die MMC.LBX benutzen, in denen alles schon vordefiniert ist?
    Klappt bei mir prima.

    Gruß

    Rolf

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.01.2007
    Ort
    Wolfsburg
    Alter
    44
    Beiträge
    23
    der cmd0 ist falsch...der ist &H40. müsstest mal im datenblatt schauen. da steht das bei jedem befehl bit 7 auf eins sein muss. damit signalisierst du der karte einen befehl...

    kannst die cmds am einfachsten berechnen indem du cmd +&H40 rechnest...

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.01.2007
    Ort
    Wolfsburg
    Alter
    44
    Beiträge
    23
    hats funktioniert???

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress