dspic SPI write fråga
Postat: 16 juli 2007, 10:31:52
Hallå!
Jag håller på med en liten kodsnutt till en dspic 30F6012A och har en fråga angående SPI hanteringen.
Det är nämligen så att jag kopplat flera enheter till SPI interfacet (clk, sdo, sdi) och använder vanliga IO pinnar som "enable" signaler. Jag vill alltså välja enhet med enable signalen och därefter skriva så att enbart den valda enheten läser in data. När jag slutat skicka data skall enable signalen bli disabled igen.
Problemet är att jag inte lyckas få det att fungera. Jag använder mig av SPI2STAT registret (använder mig av spi2 enheten) och kollar på "SPITBF" biten och väntar på att den ändrar värde från 1 till 0 innan jag disablar signalen..
Men det verkar som att denna bit enbart hanterar bufferten, alltså om det finns platts att skriva mer data i bufferten och verkar inte ha något att göra med när all data skickats färdigt. Det betyder att jag får en väldigt kort enable-puls så att första klockcykeln läses in.
Har jag förstått det hela rätt? finns det isf något sätt att kolla när all data är färdigklockad så att jag själv kan hantera mina enable signaler på ett korrekt sätt?
jag hittar nämligen inga fler bitar att titta på i status och controll registrena för SPI enheten.
// Daniel
Jag håller på med en liten kodsnutt till en dspic 30F6012A och har en fråga angående SPI hanteringen.
Det är nämligen så att jag kopplat flera enheter till SPI interfacet (clk, sdo, sdi) och använder vanliga IO pinnar som "enable" signaler. Jag vill alltså välja enhet med enable signalen och därefter skriva så att enbart den valda enheten läser in data. När jag slutat skicka data skall enable signalen bli disabled igen.
Problemet är att jag inte lyckas få det att fungera. Jag använder mig av SPI2STAT registret (använder mig av spi2 enheten) och kollar på "SPITBF" biten och väntar på att den ändrar värde från 1 till 0 innan jag disablar signalen..
Men det verkar som att denna bit enbart hanterar bufferten, alltså om det finns platts att skriva mer data i bufferten och verkar inte ha något att göra med när all data skickats färdigt. Det betyder att jag får en väldigt kort enable-puls så att första klockcykeln läses in.
Har jag förstått det hela rätt? finns det isf något sätt att kolla när all data är färdigklockad så att jag själv kan hantera mina enable signaler på ett korrekt sätt?
jag hittar nämligen inga fler bitar att titta på i status och controll registrena för SPI enheten.
// Daniel