- Labornetzteil AliExpress         
Seite 1 von 9 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 89

Thema: MMC Karte mit Bascom

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183

    MMC Karte mit Bascom

    Anzeige

    Powerstation Test
    Hallo, habe ein AVR16/16-Board und möchte eine MMC-Karte mit Bascom ansprechen. Nur einfach lesen und schreiben (512Byte Sendungen). Die Karte ist schon angeschlossen mit 3,3 Volt usw.

    Ich möchte es ohne AVR-DOS durchführen, also ohne eine Lib.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Du brauchst aber dazu auf jeden Fall die entsptrechende Treiber-Library und Config-File für MMC. Diese sind in der BASCOM-AVR Installation enthalten oder Du kannst diese von http://members.aon.at/voegel/Downloads.htm herunterladen.
    Du kannst dann mit den Kommandos:
    DriveReadSector
    und
    DriveWriteSector
    mit Angabe der SRAM Speicheradresse und der MMC-Sektornummer 512 Bytes lesen und schreiben.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    Drivewritesector(adresse,1 )

    Ich bekomme die Meldung : Unknown statement

    Was ist hier falsch.

    Wo gibt es ein Beispiel, mit Anwendungen der Sectoren?

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Hier ein Beispiel, welches Sektoren von der MMC/SD Karte einliest und auf der Seriellen Schnittstelle ausgibt.

    Bei den Funktionen DriveReadSector und DriveWriteSector ist zu beachten, dass ein Adresspointer übergeben wird.
    Das gibt den Funktionen die Möglichkeiten, jeden Bereich im SRAM auf die Karte zu schreiben, bzw vor dort zu überschreiben, ohne dass dort eine Variable deklariert sein muss. Soll jedoch in eine Variable (Byte-Array mit 512 Bytes) geschrieben werden, muss man zuerst mit VarPtr die Adresse auslesen (siehe dazu das Beispiel)


    Code:
    $Regfile =  "M162def.dat"
    $Crystal = 8000000
    $HWStack = 32
    $SWStack = 32
    $FrameSize = 64
    $Baud = 9600
    
    Declare Sub Sramdump(byval pwsrampointer As Word , Byval Pwlength As Word)
    $Include "Config_MMC.bas"
    '$Include "Config_XRAMDrive0.bas" ' Zum Testen mit dem Simulator
    
    If gbDriveError <> 0 then
       Print "MMC/SD Initialisierung fehlgeschlagen"
       end
    Endif
    
    
    
    Dim bError as Byte
    Dim aBuffer(512) as Byte     ' SRAM-Bereich für den Transfer
    Dim wSRAMPointer as Word     ' Adress-Pointer für den Drive... Routine
    Dim lSectorNumber as Long    ' Variable für Sektor-Nummer
    
    
    ' Adresse des Buffers in die Variable
    
    wSRAMPointer =VarPtr(aBuffer(1))
    
    ' Die ersten 100 Sektoren ausgeben
    For lSectorNumber = 0 to 100
    
       bError = DriveReadSector( wSRAMPointer , lSectorNumber)
       ' Konnte der Sektor eingelesen werden?
       if bError > 0 then
          Print "Drive Fehler: " ; bError ; " bei Sektor " ; lSectorNumber
          exit for
       endif
    
       Print "Sektor " ; lSectorNumber
    
       ' Sektor ausgeben
       SRAMDump wSRAMPointer, 512
    
    next
    end
    
    
    
    
    
    Sub Sramdump(byval pwsrampointer As Word , Byval Pwlength As Word)
        ' Dump a Part of SRAM to Print-Output #1
        ' pwSRAMPointer: (Word) Variable which holds the address of SRAM to dump
        ' pwLength: (Word) Count of Bytes to be dumped (1-based)
        Local Lsdump As String * 16
        Local Lbyte1 As Byte , Lbyte2 As Byte
        Local Lword1 As Word , Lword2 As Word
        Local Llong1 As Long
    
        If Pwlength > 0 Then
          Decr Pwlength
          For Lword1 = 0 To Pwlength
             Lword2 = Lword1 Mod 8
             If Lword2 = 0 Then
                If Lword1 > 0 Then
                   Print  " " ;
                End If
             End If
             Lword2 = Lword1 Mod 16
             If Lword2 = 0 Then
                If Lword1 > 0 Then
                   Print  "  " ; Lsdump
                End If
                Llong1 = Lword1
                Print  Hex(llong1) ; "  " ;
                Lsdump = "                "
                Lbyte2 = 1
             End If
             Lbyte1 = Inp(pwsrampointer)
             Incr Pwsrampointer
             Print  Hex(lbyte1) ; " " ;
             If Lbyte1 > 31 Then
                Mid(lsdump , Lbyte2 , 1) = Lbyte1
             Else
                 Mid(lsdump , Lbyte2 , 1) = "."
             End If
             Incr Lbyte2
          Next
          Print  "   " ; Lsdump
        End If
        Incr Pwlength
    End Sub
    Für den Transfer vom SRAM auf die Karte ist die Funktion DriveWriteSector in gleicher Weise zu verwenden.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hallo ihr..
    das ist zwar ein uralter beitrag, aber er bezieht sich genau darauf was ich versuche (... ufff seit tagen).
    ich habe genau den o.g. quelltext genommen. dann habe ich eine kinston 128mb - SD-karte für 3,3 volt.

    als pegewandler von einem mega32 aus verwende ich 1kohm reihenwiderstände und z3,3 dioden gegen masse.

    im pc funzt die karte prima...

    doch mit dem Bascom proggi gibts schon ärger mmc-init. karte kann also nicht angesprochen werden.

    hat das hier schonmal jemand hingekriegt ?
    gibts noch tolle tips ?

    gruss kolisson

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von DIYLAB
    Registriert seit
    31.10.2004
    Ort
    Berlin
    Beiträge
    156
    Zitat Zitat von kolisson
    hat das hier schonmal jemand hingekriegt ?
    gibts noch tolle tips ?
    Moin,

    habe Heute das erste mal das komplette AVR-DOS ausprobiert und bin begeistert. Nach stundenlangem Probieren ohne Erfolg, lag es an einem dringend benötigtem Puffer-Elko direkt an der SD-Karte.
    Danach arbeitete alles hervorragend.

    MC ist ein M128 mit 5V, Levelshifter -> 74LS07 und ein einfacher LD-Spannungsregler 3,3V.

    Falls Du noch nicht weitergekommen bist - schreib mal!
    Vielleicht können wir Dein Problem zusammen lösen?

    Viele Grüße,
    Bruno

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hallo bruno. und vor allem danke für die antwort.
    dieses thema scheint ja hier nicht so gängig zu sein. ich habe am 4.2 gepostet und du warst der einzige der was dazu zu sagen hat (am 13.2.)

    nun ja .. mitlerweile bin ich mit dem problem klar geworden.
    das Bascom arbeitet nicht vernünftig mit dem mega 644 zusammen.
    mit mega 32 funzt das alles im prinzip .. hier ist nur der sram zu klein.
    du mit dem 128er bist da gut bedient.. ich find den halt von der bauform abstossend.

    im zuge der recherchen und fehlersuche habe ich (glaube ich) jetzt aber das mmc-protokoll verstanden und werde die nötigen routinen dann per inline-assembler machen.

    gruss

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    mit mega 32 funzt das alles im prinzip .. hier ist nur der sram zu klein.
    wieso sram zu klein, hast doch 2 kbyte und du brauchst doch nur 512byte für die datenübertragung ohne dos bei der mmc.

    mfg

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    ich wollte halt fat schreiben, damit ich das am pc auslesen kann.

    gruss

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    http://www.mikrocontroller.net/forum/4

    hier haben die das im AVR32, aber mit winavr-c.

    vielleicht kann mal einer das avr-dos von Bascom mal für den AVR32 ummodeln.

Seite 1 von 9 123 ... LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests