KL25Zのピン配置図には載ってないが、SPIライブラリにはコードのあるSPI_1のピンで使ってみました。
ピン配置図:http://mbed.org/handbook/mbed-FRDM-KL25Z
mbed / libraries / mbed / vendor / Freescale / capi / spi_api.c
SPI | SPI_0 | SPI_0 | SPI_1 |
mosi | PTD2 | PTC6 | PTE1 |
miso | PTD3 | PTC7 | PTE3 |
sclk | PTD1 | PTC5 | PTE2 |
ssel | PTD0 | PTC4 | PTE4 |
mbed用のMPL115A1ライブラリは既にありました。
http://mbed.org/users/mk/code/MPL115A1/
MPL115A1のデータシート
http://www.freescale.com/files/sensors/doc/data_sheet/MPL115A1.pdf
http://www.freescale.com/files/sensors/doc/app_note/AN3785.pdf
レジスタ値だけを読み出すテストプログラム。
#include "mbed.h" #include "mbed_debug.h" #if defined(TARGET_KL25Z) SPI spi(PTE1,PTE3,PTE2); // SPI_1 DigitalOut cs(PTE4); #endif int main() { cs = 1; debug(" Read Coefficient(a0,b1,b2,c12)\n"); cs = 0; for(int addr = 0x04; addr <= 0x0b; addr++) { spi.write((addr<<1)|0x80); uint8_t data = spi.write(0x00); debug("%02x: %02x\n", addr, data); } spi.write(0x00); cs = 1; while(1) { debug("Start Conversion\n"); cs = 0; spi.write(0x12<<1); spi.write(0x00); cs = 1; wait_ms(3); //3ms delay debug("Read Results(Padc,Tadc)\n"); cs = 0; for(int addr = 0x00; addr <= 0x03; addr++) { spi.write((addr<<1)|0x80); uint8_t data = spi.write(0x00); debug("%02x: %02x\n", addr, data); } spi.write(0x00); cs = 1; wait_ms(5*1000); } }
(2013/3/31)
---
0 件のコメント:
コメントを投稿