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
Lesezeichen