C USARTD0 als SPI?

Die Funktionen habe ich auch selbst geschrieben. Werde es später mal versuchen mit dem State Bit.
 
Also das WEL Bit frage ich ab. Vor dem schreiben, setze ich dieses auch..


CodeBox C
void df_write_start(df_t *DataFlash, spi_usart_t *FlashSPI)
{
   df_wait_is_busy(DataFlash,FlashSPI);
       
   Spi_USARTD0_Slave_Select_Low(FlashSPI);
   
   Spi_USARTD0_Rx_Tx(0x06);
   
   Spi_USARTD0_Slave_Select_High(FlashSPI);
}
 
Er schreibt einfach keine Daten. Habe die Flags gepollt. Rufe ich meine Funktion "df_start_write(..)" nicht auf, so ist das Bit WEL nicht gesetzt, rufe ich sie auf, wird es gesetzt, Das Funktioniert also schon mal,,
Kann also an den Flags nicht liegen..

Habe meine .c Datei mal mit hochgeladen. Vill. könntest du ja mal drüber schauen und dir fällt direkt etwa auf..
 

Anhänge

  • main.c
    6,7 KB · Aufrufe: 3
Schaue ich mir morgen mal an.

So etwa müßte es aussehen:


CodeBox C
while (rdsr() & WIP) ;      // write in progress?
do {
  wren();                   // write enable bit setzen
} while (!(rdsr() & WEL));  // write enable bit gesetzt?
 
Bekomme jetzt zwar Daten zurück, nur nicht die, die ich schreibe.
Anbei mal mein aktueller Stand.
 

Anhänge

  • main.c
    8,5 KB · Aufrufe: 4
Status und Jedec-ID lesen geht jetzt, nehme ich an. Aber nur mit PullUp an MISO?
Wenn ja, heißt das, der Chip ist zwar ok, aber irgendwo ist noch ein Wurm drin. Das muß ohne PU gehen.

Das Programm läßt sich so nicht kompilieren, da fehlt noch zu viel und ich bin kein Hellseher.

Wenn ich rausfinden will, ob (oder wie) ein Baustein funktioniert, schreibe ich dafür ein minimales Testprogramm, d.h. ich verwende z.B. keine pointer auf structs, die woanders deklariert sind und damit das ganze so unübersichtlich machen, daß ich vom wesentlichen abgelenkt werde.
Aber vielleicht hast Du ja den Überblick.

Die neue Version schaue ich mir morgen mal an, wenn ich Zeit habe.
 
Ja das lesen klappt. Und ohne PullUp klappt jetzt auch (warum auch immer es am Anfang nicht ging..)
Ich muss vom handling irgendwas falsch machen.. So das ich eben nichts lesen kann..
 
Ich habe es hin bekommen. Nun kann ich den Flash beschreiben und die Werte auch wieder auslesen.

Es war ein Initialisierung Problem. Habe vergessen der Struktur (*Pointer) die Adresse von der Struktur zu zuweisen. Leider hat der Compiler dies nicht bemerkt. Jetzt werde ich es sicherlich nicht mehr vergessen.
Danke für eure Mühen.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)