Hallo,
ich versuche verzweifelt, die SPI-Schnittstelle meines LPC4353 (LPC435x)
zum Laufen zu bringen - wohlgemerkt: die "echte SPI-Schnittstelle",
nicht per SSP!
Als Basis nutze ich z.Zt. die CMSISv2p10_LPC43xx von NXP.
dort existiert aber leider keine Definition bzw. keine Funktionen zum
SPI ansich (also keine lpc43xx_spi.c oder lpc43xx_spi.h :-( )
Also habe ich eine ähnliche Lib vom lpc18xx genommen und teilweise auf
den 43xx angepasst (Anhang lpc43xx_spi.c / lpc43xx_spi.h). Anpassen
musste ich ebenfalls die CGU-Implementierung, da dort der SPI-teil ganz
und gar gefehlt hat, obwohl die passenden Adressen/Register im
Datenblatt beschrieben sind - habs im Code mit dem Hinweis auf
UM10503.pdf vermerkt...
(Anhang: lpc43xx_cgu.c / lpc43xx_cgu.h)
Vielleicht könnt ihr etwas damit anfangen, wenn meine Frage noch geklärt
sein wird...
Mein Problem ist nun die Taktversorgung in der Initialisierung, da ich
einfach nicht aus dem Datenblatt (UM10503.pdf) schlau werde und auch
sonst wenig zur "echten" SPI gefunden habe.
(aus lpc43xx_spi.c - SPI_Init)
1 | CGU_EntityConnect(CGU_CLKSRC_XTAL_OSC, CGU_BASE_SPI);
|
2 | CGU_ConfigPWR(CGU_PERIPHERAL_SPI, ENABLE);
|
reicht das schon? oder müsste ich noch etwas anderes machen/die
Reihenfolge tauschen?