Forum: Mikrocontroller und Digitale Elektronik CH32V303 und SPI-Initialisierung


von Mehmet K. (mkmk)


Lesenswert?

Servus allerseits

Seit geraumer Zeit versuche ich mich von STM32 zu lösen und auf die 
RISC-V chips von WCH umzuschwenken.
2 kleinere Projekte (beide mit CH32V006) konnte ich ohne Schluckauf 
abschliessen.
Nun arbeite ich an einem etwas grösserem Projekt und setze hier den 
CH32V303 ein.
Wieder keinerlei Probleme. Und vielleicht ist es der Reiz des Neuen: es 
macht echt Spass mit diesen MCUs zu arbeiten.

Bis ich gestern das Gerät einfach so eingeschaltet habe; also nicht wie 
gewohnt mit der IDE und dem angeschlossenen Debugger.
Resultat: tote Hose. Kein Mucks.
Ein Hard-Reset: und alles lief wie es soll.
Spannung aus. Spannung an: tote Hose.
Ein Hard-Reset: und alles lief wie es soll.

Die Quelle des Übels war die Intitalisierung von SPI2, an dem der 
DataFlash angeschlossen ist: die JedeID-Abfrage endedete in einem 
Endlos-Loop.
1
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
2
    DelayCycles(20);        // zwingend notwendig
3
                            // die Zahl 20 ist willkürlich gewählt
4
    SPI_I2S_DeInit(SPI2);   // zwingend notwendig

Kann sein, dass sich dieses Problem bei einer kleineren 
Clock-Geschwindigkeit als 144MHz nicht bemerkbar macht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.