-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: Speichern auf SD Karte oder USB Stift?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    360

    Speichern auf SD Karte oder USB Stift?

    Anzeige

    Ich Suche eine Möglichkeit Variablen dauerhaft abzuspeichern. Kann ich mit Bascom jede SD Karte verwenden oder ist das in der Grösse limitiert? Der Datenspeicher muss extern nicht auslesbar sein in meinem Fall. Ein USB Stift würde auch in Frage kommen falls das einfacher zu handhaben ist.

    Habe bisher nur immer im Eeprom Daten abgelegt aber brauche jetzt etwas mehr Platz. Hat jemand für mich einen Beispielcode wie ich Daten in einer SD Karte ablege und anschliessend wieder einlese? Wie ich die SD Karte an den Atmel anschliesse würde mich auch noch interessieren.

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    USB einfacher zu handhaben? Weiß ich nicht. Ich weiß nur, dass wenn du einen USB-Stick benutzt brauchst du einen USB-Controller sonst klappt das nicht. Zum beschreiben einer SD-Karte solltest du dich hier mal umschauen:
    -> http://members.aon.at/voegel/index.html
    Wenn du die Daten am PC auslesen willst, also eine Karte mit FAT32 beschreiben willst brauchst du mind. einen Mega128 sonst klappt das von der RAM-Größe her nicht. Es gibt auch eine Möglichkeit AVR-DOS auf einen Mega32 zu quetschen nur dafür musst du 1. das AVR-DOS verstehen und 2. brauchst du zum Auslesen am PC dann spezielle Programme die die Sektoren der SD-Karte lesen können (soweit ich weiß).
    Das nächste Problem ist wenn du eine SD-Karte nimmst mit AVR-DOS brauchst du eine Bascom-Lizenz da das AVR-DOS riesig groß ist.
    Aber sobald du das alles hast musst du nur 4 Pins vom Controller an die Karte anschließen (mit geeignetem Pegelwandler natürlich, am besten ein IC kein Spannungsteiler das funktioniert nicht super gut) und dann kannst du via Print-Befehl die Daten auf die Karte schreiben.

    Wenn du noch weitere Fragen zur SD-Karte hast, frag ruhig hab mir letztens erst selber einen SD-Karten Temperaturlogger gebaut

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    360
    Danke für deine Hilfe. Am PC muss ich keine gespeichrte Daten uaswerten. Die SD Karte bleibt dauerhaft am Mega128. Brauch ich bestimmte Ports frei am mega128? Ist nämlich schon ziemlich voll alles Ich möchte einfach vom internen Eeprom des mega128 wegkommen, da es mir nicht gefällt, dass die Speicherungen begrenzt sind und der Speicher dann mal defekt wird.

    Nachdem ich jetzt gesehen habe, dass ich bei der SD Karte 4 Datenleitungen benötige überlege ich ob es wohl nicht doch ne andere Möglichkeit (z.B. I2C) zum speichern gibt. Sind die Speicherzyklen da auch begrenzt bei den I2C Eeproms?

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Bei einer SD-Karte und einem USB-Stick sind die Zyklen auch begrenzt. Und bestimmte Ports....jein. Du kannst das entweder mit Hardware UART machen was Programmierarbeit spart oder mit Software-UART was mehr Programmierarbeit ist.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Hallo, Kampi, sorry, wenn ich mich hier mal kurz einklinke, jedoch gehört
    das möglicherweise zum Thema. Deine Realisierung eines Temperaturloggers auf SD-Card ist genau das, was ich suche. das
    Projekt möchte ich auch mit einem ATmega lösen. Vielen Dank und viele Grüsse. Micha

  6. #6
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Kein Problem
    Wobei brauchst du den Hilfe bzw. hast du schon einen Realisierungsansatz?

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Wenns nur um Variablen geht und eh nicht von aussen gelesen werden muss: Einfach nen I2C-EEPROM hinhängen, z.B. von Reichelt irgend nen "ST 24C".
    Vorteil an SD-Karten / I2C-EEPROM (gesockelt!) ist halt der, dass man die am Ende der Lebensdauer einfach austauschen kann. Wobei die aber eigentlich eh "ewig" halten.

    Ich hab nen Fahrtenschreiber, der mir pro Sekunde 10x 55 Byte auf die Karte wirft und das seit nem guten halben Jahr; und so zeigt die Karte bisher keine Ausfallerscheinungen.

    Für AVR-DOS braucht man am PC kein anderes Programm ausser dem Explorer. Das ist ja der Sinn, dass ein auf FAT basierendes DOS verwendet wird.
    Wenn die Hardware aber da ist, würd ich bei ner Karte dann schon FAT(32) verwenden. Das Sektorenweise auslesen/schreiben spart zwar Ressourcen und Zeit am AVR, aber wenn man dann doch mal die Daten am PC anschauen will, wirds eklig.
    Mit FAT: Einfach als CSV abspeichern, in Excel aufmachen und auswerten.

    Kurz: Wenn du nur wenige Daten hast und dir ein ST24C von der Grösse her reicht: Einfachste Möglichkeit.
    #ifndef MfG
    #define MfG

  8. #8
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Alternativ kannst du es auch so machen das du eine zusätzliche Variable machst die einen Zeiger für die Speicherzelle darstellt. Dann stellst du den Zeiger auf 0 und speicherst die Variable dort. Dann zählst du diese Variable um eins hoch sodass de Variable dann in Zelle 1 gespeichert wird. Und das machst du dann bis zum Ende des EEPROMs (z.B. bei 255 Zellen machst du das 255 mal). Und jedesmal wenn du den Zeiger um Eins addierst und nachdem du die neue Zelle beschrieben hast löscht du die vorherige. Sobald du am Ende vom EEPROM angekommen bist fängst du wieder bei 0 an.
    Das Auslesen machst du dann so indem zu eine Zelle ließt und schaust ob der Inhalt 255 (leere Zelle) ist. Wenn ja springst du eine Zelle weiter und wiederholst das. Wenn nicht ließt du die Zelle aus.
    So hast du, wenn du das Beispiel mit 255 Zellen nimmst, eine Lebensdauer von 255x100.000 Zyklen und das dürfte denk ich mal dicke ausreichen, vorallem da die meisten EEPROMs mehr als 255 Zellen haben

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.556
    Hallo ich habe einen FDI USB Host für Sticks, klappt ganz gut und wird
    per RS232 vom AVR bedient. Ist aber recht teuer. SD Karten lassen
    sich recht einfach beschreiben/lesen wenn auf PC Auswertung verzichtet
    wird. Das dürfte günstiger werden. Wenn dann die Daten doch am PC
    gebraucht werden, auslesen und per RS 232 zum PC schieben das klappt
    auch ohne DOS.

    Gruß Richard

  10. #10
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Der "komplizierte" Teil zum beschreiben einer SD-Karte um sie am PC auswerten zu können ist ja nur das AVR-DOS. Aber wenn man damit nichts großartiges machen will ist das beschreiben der Karten auch ziemlich einfach.....vorrausgesetzt man hat einen passenden Controller dafür

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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