SPI Card Reader

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • ja, das hab ich natürlich schon.

      Ich benutze ein Arduino UNO Bord.
      SPI Pins: 10 = CS, 11 = MOSI, 12 = MISO, 13 = SCK (PB2 - PB5)

      Dieses Beispiel habe ich etwas angepasst:

      BASCOM Source Code

      1. $regfile = "m328pdef.dat"
      2. $crystal = 16000000
      3. $hwstack = 128
      4. $swstack = 128
      5. $framesize = 128
      6. baud = 4800
      7. Open "Com1:" for Binary As #1 ' use #1 for fs_interpreter
      8. Config Clock = Soft
      9. Enable Interrupts
      10. Config Date = Mdy , Separator = .
      11. Dim Btemp1 As Byte
      12. Print #1 , "Wait for Drive"
      13. ' Include here you driver for Compactflash/HardDisk or other
      14. $include "Config_MMC.bas" ' Does drive init too
      15. '$Include "Config_HardDisk_M128.bas"
      16. If Gbdriveerror = 0 Then
      17. ' Include AVR-DOS Configuration and library
      18. $include "Config_AVR-DOS.BAS"
      19. Print #1 , "Init File System ... ";
      20. Btemp1 = Initfilesystem(1) ' Partition 1
      21. ' use 0 for drive without Master boot record
      22. If Btemp1 <> 0 Then
      23. Print #1 , "Error: " ; Btemp1 ; " at Init file system"
      24. Else
      25. Print #1 , " OK"
      26. Print #1 , "Filesystem: " ; Gbfilesystem
      27. Print #1 , "FAT Start Sector: " ; Glfatfirstsector
      28. Print #1 , "Root Start Sector: " ; Glrootfirstsector
      29. Print #1 , "Data First Sector: " ; Gldatafirstsector
      30. Print #1 , "Max. Cluster Nummber: " ; Glmaxclusternumber
      31. Print #1 , "Sectors per Cluster: " ; Gbsectorspercluster
      32. Print #1 , "Root Entries: " ; Gwrootentries
      33. Print #1 , "Sectors per FAT: " ; Glsectorsperfat
      34. Print #1 , "Number of FATs: " ; Gbnumberoffats
      35. End If
      36. Else
      37. Print #1 , "Error during Drive Init: " ; Gbdriveerror
      38. End If
      39. ' If you want to test with File-System Interpreter uncomment next line
      40. '$include "FS_Interpreter.bas"
      Display All

      Es kommt zu folgender Fehlermeldung:
      Error : 22 Line : 126 Out of SRAM space [ABFILEHANDLES] , in File : Config_AVR-DOS.BAS

    • @MichaelS mit deinem cardreader dürfte der hw-Aufbau einfach sein, arbeitet ja alles mit 5V. Also, Beispiel aussuchen, an deinen Kontroller anpassen und probieren.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Schau mal in code-explorer (linkes Fenster im editor), was da für die stacks an Werten angegeben sind. Erhöhe den hwstack um 32 und trage diese Werte im Programm ein.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Schau mal hier AVR-DOS mit Atmega 328p
      Dein Programm (wenn das obige alles ist) ist ja nicht komplett, es fehlt mindestens ein 'end', es ist zum probieren nicht so recht geeignet.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • MichaelS wrote:

      Es kommt zu folgender Fehlermeldung:
      Error : 22 Line : 126 Out of SRAM space [ABFILEHANDLES] , in File : Config_AVR-DOS.BAS
      Der Speicher (RAM) reicht nicht, Du brauchst ein anderes - simpleres - Beispiel.
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.
    • tschoeatsch wrote:

      Schau mal hier AVR-DOS mit Atmega 328p
      Dein Programm (wenn das obige alles ist) ist ja nicht komplett, es fehlt mindestens ein 'end', es ist zum probieren nicht so recht geeignet.

      R2D2 Bastler wrote:

      Ist Pin 10 nicht der SS Pin, den man auf Ausgang und high legen soll? Falls ja, dann für CS einen anderen Pin nehmen.

      Danke R2D2 Bastler und tschoeatsch!
      Mit dem ATMEGA 328p Code und einem anderem CS Pin funktioniert alles. a_22_9ac28a82
      Muss das ganze jetzt aber erstmal aufarbeiten.
      Poste morgen dann mal ein funktionierendes Beispiel.
    • Hallo BASCOM Community!
      Gestern so auf die schnelle dachte ich der von tschoeatsch vorgeschlagene Code funktioniert mit dem UNO und dem SD Shield.
      Dem ist leider nicht so. ;(

      - Dateiverzeichnis anzeigen funktioniert. Das Directory wird korrekt angezeigt. :)
      - "In Datei text33.txt schreiben" funktioniert nur bedingt. Die Datei wird angelegt, es werden aber keine Daten gespeichert. ;(
      - "Nach Datei text33.txt suchen" funktioniert. Klar, die Datei wurde ja auch angelegt. Leider bleibt sie aber leer. ;(

      Ist jetzt kein "Beinbruch", zumal ich mich bedingt durch die Größe der Library eh von der SD-Karte verabschiedet habe.
      Die Lib ist halt zu groß für den UNO, und der Mega ist zu groß für mein Gehäuse.
      Da ich für mein Projekt eh einen ESP8226 benötige, werde ich diesen zum loggen der Daten benutzen.

      Aber aus Prinzip wäre es schon schön den Kartenleser fehlerfrei zum laufen zu bekommen. ^^
    • MichaelS wrote:

      - "In Datei text33.txt schreiben" funktioniert nur bedingt. Die Datei wird angelegt, es werden aber keine Daten gespeichert.
      - "Nach Datei text33.txt suchen" funktioniert. Klar, die Datei wurde ja auch angelegt. Leider bleibt sie aber leer.
      Datei anlegen und schreiben sind verschiedene Dinge.
      Nach dem Anlegen musst du die Datei öffnen und den Text anhängen (append) und dann wieder schließen.
    • Michael wrote:

      Datei anlegen und schreiben sind verschiedene Dinge.
      Nach dem Anlegen musst du die Datei öffnen und den Text anhängen (append) und dann wieder schließen.
      Würde den Code ja gerne posten, er ist aber zu lang.
      im Beitrag von tschoeatsch ist aber der Download-Link.
    • Hast Du die Kommentare auf Amazon gelesen?
      Hast Du den Reader mit den dort vorgeschlagenen STABILEN 5V versorgt? Ist die Versorgung des Uno auch stabil?
      Was für Karten benutzt Du? AVR-DOS kann nur SD und SDHC, keine SDXC! Im Zweifel mal eine andere Karte bzw. die eines anderen Herstellers nehmen.
      Ist Deine Kabelverbindung gut? Die Steckkabel haben manchmal Probleme.
      Hast Du die Fuses geprüft, nicht dass auf einem Pin noch was anderes mitläuft?
    • Mechanic wrote:

      Hast Du die Kommentare auf Amazon gelesen?
      Hast Du den Reader mit den dort vorgeschlagenen STABILEN 5V versorgt? Ist die Versorgung des Uno auch stabil?
      Was für Karten benutzt Du? AVR-DOS kann nur SD und SDHC, keine SDXC! Im Zweifel mal eine andere Karte bzw. die eines anderen Herstellers nehmen.
      Ist Deine Kabelverbindung gut? Die Steckkabel haben manchmal Probleme.
      Hast Du die Fuses geprüft, nicht dass auf einem Pin noch was anderes mitläuft?
      Ich benutze SDHC Karten. Schaltung, Spannung usw. ist alles in Ordnung. Mit der SD-Lib der Arduino-IDE klappt alles prima.

      tschoeatsch wrote:

      @MichaelS schau mal hier, ein kleines mega2560 board ebay.de/itm/MEGA-2560-ATMEGA25…m:mduavTwKeKmFMsKTbjINlBg
      Sieht echt interessant aus.

      Nun gut, ich würde den Kartenleser gerne mal mit dem Arduino Mega und AVRDOS testen.
      Welchen Beispielcode und welche config Dateien sollte ich benutzen?