Difference between revisions of "Radio driver"

From TinyOS Wiki
Jump to: navigation, search
(New page: == Problem description == * DMA version of the radio driver (which is the default) does not work, * SPI version is getting RX fifo underflows for messages larger than 10 bytes plus header...)
 
 
Line 4: Line 4:
 
* using 1.2.6 version of HalPXA27xSpiPioM.nc resolves the problem, but in this version, CPU spins on slow SPI read/writes which is bad
 
* using 1.2.6 version of HalPXA27xSpiPioM.nc resolves the problem, but in this version, CPU spins on slow SPI read/writes which is bad
  
== Problem fixed ==
+
== Project status ==
 +
* problem '''fixed''' (SPI part)
 
* the problem was in HalPXA27xSpiPioM.nc file: in the SSP.interruptSSP(), original code gets the length of the fifo (uiFifoLevel) from the SSSR register. but data sheet says that SSSR_FRL actually contains fifolength-1. so we have to take SSSR_RFL+1
 
* the problem was in HalPXA27xSpiPioM.nc file: in the SSP.interruptSSP(), original code gets the length of the fifo (uiFifoLevel) from the SSSR register. but data sheet says that SSSR_FRL actually contains fifolength-1. so we have to take SSSR_RFL+1
 
* DMA still does not work - maybe for the same reason?
 
* DMA still does not work - maybe for the same reason?

Latest revision as of 09:10, 15 April 2008

Problem description

  • DMA version of the radio driver (which is the default) does not work,
  • SPI version is getting RX fifo underflows for messages larger than 10 bytes plus header,
  • using 1.2.6 version of HalPXA27xSpiPioM.nc resolves the problem, but in this version, CPU spins on slow SPI read/writes which is bad

Project status

  • problem fixed (SPI part)
  • the problem was in HalPXA27xSpiPioM.nc file: in the SSP.interruptSSP(), original code gets the length of the fifo (uiFifoLevel) from the SSSR register. but data sheet says that SSSR_FRL actually contains fifolength-1. so we have to take SSSR_RFL+1
  • DMA still does not work - maybe for the same reason?