- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 3 von 3

Thema: SD Karte an Atmega32 mit der Bibliothek von Roland Riegel

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.09.2009
    Ort
    Geilenkirchen
    Beiträge
    419

    SD Karte an Atmega32 mit der Bibliothek von Roland Riegel

    Anzeige

    Praxistest und DIY Projekte
    Hallo!
    Ich bin dabei einen kleinen Datenlogger zu bauen, der seine Daten auf eine SD Karte speichern soll, dabei möchte ich die Bibliothek von Roland Riegel verwenden.
    Aber es klappt leider nicht
    Ich verwende eine SD Karte von San Disk und habe die Karte so beschaltet, wie Ulrich Radig:
    http://www.ulrichradig.de/home/index.php/avr/mmc-sd

    Mein Code sieht so aus:

    Code:
    #include <avr/io.h>
    
    
    #include "sd_raw.h"
    #include "sd_raw_config.h"
    #include "sd_raw.c"
    
    
    #ifndef F_CPU
    
    
    #define F_CPU 16000000UL
    #endif
    #include <util/delay.h>
    
    
    #define LED_red 3
    #define LED_green 2
    
    
    int main(void)
    {
    	int init = 0;
    	int avaiable = 0;
    	 DDRB = (1 << DDB3) | (1 << DDB2);
    	
    	
    	while (1)	
    	{
    		
    	
    	init = sd_raw_init();
    	
    	
    	if (init == 1)
    	{
    		PORTB |= (1<<LED_green);
    	}
    	else
    	{
    		PORTB |= (1<<LED_red);
    	}
    	_delay_ms(1000);
    	}		
    		
    }
    Leider geht immer nur die Rote LED an

    In den anderen Dateien habe ich nichts geändert, außer den Chip select Pin, der ist bei mir an PB0.

    Für Hilfe währe ich sehr Dankbar.

    Gruß
    Olaf

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Ich benutz eine für CodeVision umgewandelte Form dieser Bibliothek, auch ich hatte damit Probleme.
    1. Ging meine Bibliothek nur für Karten mit maximal 1GB, weil bis dahin die Cluster nur 512Byte haben. Bei größeren Karten sind die Cluster 1kByte groß.
    2. Der Define Wert Superfloppy ( #define superfloppy 0 ) war bei mir ursprünglich 1, dann ging die Fat nicht.
    3. Der ATMEGA hat zu wenig Raum für den Puffer.
    DU brauchst einen Empfangspuffer der mindestens einen kompletten Cluster aufnehmen kann, sonst gehen Dir Daten verloren.

    Der Grund dafür ist, das das Schreiben auf die SD Karte sehr lange dauert. Da aber auch in dieser Zeit Daten reinkommen, kann und wird es passieren, das dieser Empfangspuffer, der beim ATMEGA32 maximal so um die 300Byte haben kann, überläuft. Bei 38400 Bit/s wars bei mir auf jeden Fall so.

    Ich hab da jetzt einen ATMEGA 644 drin, der ist Pinkompatibel zu ATMEGA32 hat aber mehr Speicher.
    Somit konnte der Empfangspuffer auf 514Byte aufgemotzt werden und die Datenverluste waren weg.

    Wenn Du magst schick ich Dir den kompletten Quellcode zu, der ist aber Leider für CodeVision AVR.
    Schick mir einfach ein PN mit Deiner E-Mail Adresse.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.09.2009
    Ort
    Geilenkirchen
    Beiträge
    419
    Hallo!
    Vielen Dank für deine Antwort.
    Das mit Superfloppy probiere ich gleich mal aus.
    Karten, die größer als ein GB sind sollten ja wenigstens erkannt werden
    Und den Datenverlust kann ich erstmal vernachlässigen, dann vielleicht später wirklich auf einen atmega 644 umsteigen.

    EDIT: Floppy umändern brachte nichts, ich hoffe, dass ich aus deinem Code schlau werde

    Gruß
    Olaf

Ähnliche Themen

  1. Wie ist das Buch: ATmega8 Bascom von Roland Walter????????
    Von alex1313 im Forum Buchempfehlungen
    Antworten: 4
    Letzter Beitrag: 04.08.2009, 21:44
  2. SD-Karte oder CF-Karte?
    Von Johannes G. im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 22.08.2006, 13:28
  3. DOS - Bibliothek
    Von hacker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 14.04.2006, 02:54
  4. AVR ISP Programmer und Roland Walter Board Hilfe!!!!
    Von Snoopy1972 im Forum AVR Hardwarethemen
    Antworten: 14
    Letzter Beitrag: 04.02.2006, 11:35
  5. Roland Walters Testboard - Kondensator ersetzbar?
    Von catchme im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 01.03.2005, 21:44

Berechtigungen

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

12V Akku bauen