Hallo,
den 74VHC08 kannst du genau wie den 4050 mit 3,3V betreiben, aber 5V auf die Eingänge legen. Der 4050 hat halt 6 Buffer, der 7408 4 UND-Gatter. Für unsere Anwendung egal. Hinten kommen dann immer max 3,3V raus.
Ja richtig, 512 mitzählen in einen zusammenhängenden Speicherbereich, z.B. String oder byte-array. Zum Schreiben die mit VARPTR ermittelte erste Adresse übergeben.
Anfangs konnte ich nur die 256MB Medion Karte lesen und schreiben. Mittlerweile funktionieren aber alle SD/MMC, egal wie groß. Von 16MB bis 1GB hab ich schon probiert, auch die RS MMC geht.
Lesegeschwindigkeit ist bei allen gleich, maximal etwa 80KB/sec. Für mich absolut ausreichend.
Zum Testen benutze ich dieses Programm:
Code:
$regfile = "M128def.dat"
$crystal = 16000000

$baud1 = 115200
Open "Com2:" As Binary As #1                               
Config Clock = Soft
Enable Interrupts
Config Date = Dmy , Separator = .
Dim Mmc_error As Byte
Dim In_buffer As String * 512
Dim In_ptr As Word , Sect_no As Word                        ' Address-Pointer for read
Dim In_sect As Long
Dim I As Integer
Print #1 , "Wait for Drive"
$Include "Config_MMC.bas"

If Gbdriveerror = 0 Then
   Mmc_error = Driveinit()
   If Mmc_error = 0 Then
      'Wait 1
      Print #1 , "Driveinit Ok. "
      In_ptr = Varptr(in_buffer)
      Sect_no = 10000
      Print #1 , "start read of " ; Sect_no ; " sectors"
      Print #1 , "syssec=" ; Syssec()
      For In_sect = 1 To Sect_no
         Mmc_error = Drivereadsector(in_ptr , In_sect)
         If Mmc_error = 0 Then
            'Print #1 , "ReadSector(" ; In_sect ; ") ok."    'Zum Inhalt drucken, Kommentare entfernen !!!!!!!!!!
            'Print #1 , In_buffer ;                          'Dann wird es aber langsamer, 115200 baud beim übertragen
            'Print #1 , ""
         Else
            Print #1 , "Error during ReadSector(" ; In_sect ; ") : " ; Mmc_error
         End If
      Next In_sect
      Print #1 , "syssec=" ; Syssec()
      Decr In_sect
      Print #1 , "read " ; In_sect ; " sectors done"
   Else
      Print #1 , "Error during Driveinit(): " ; Mmc_error
   End If
End If
End
Gruß

Rolf