Another short time hack. This one is for test the behavior of the spi module. Probably an Oscilloscope is required to check the wave.
Another short time hack of mine. To check Mr. J's problem, I needed a way to control SPI in a short time. This is an aid for testing SPI module with an Oscilloscope.
You can specify, frequency, bits, mode and number of loops to let the spi write or read.
For FRDM-KL25Z MOSI: PTD2 MISO: PTD3 SCLK:PTD1
Please set "local echo on" in your terminal program.
某JさんのSPIトラブルの様子を確認するのに、作った簡単なSPIテストプログラムです。 オシロスコープでSPIの挙動を見るためのユティリティです。
FRDM-KL25Zの場合、MOSI(PTD2), MISO(PTD3), SCLK(PTD1) で使っています。
ターミナルプログラムのローカルエコーを有効にしてご使用ください。
SPIモジュールの設定(周波数、ビット、モード、そして読み書きのループ回数を設定できます。)
Revision 3:ec7a94b41102, committed 2016-06-01
- Comitter:
- Rhyme
- Date:
- Wed Jun 01 07:42:55 2016 +0000
- Parent:
- 2:3d2009b507f5
- Commit message:
- MSS supported platforms added. Tested with FRDM-K64F with mbed lib 119
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MSS.h Wed Jun 01 07:42:55 2016 +0000 @@ -0,0 +1,230 @@ +#ifndef _MSS_H_ +#define _MSS_H_ + +#if defined (TARGET_KL25Z) +/* I2C */ +#define PIN_SCL PTE1 +#define PIN_SDA PTE0 +/* SPI */ +#define PIN_SCK PTD1 +#define PIN_MISO PTD3 +#define PIN_MOSI PTD2 +#define PIN_CS0 PTD0 +/* Interrupt */ +#define PIN_INT0 PTD5 +#define PIN_INT1 PTA13 +#define PIN_INT2 PTC9 /* This pin does not support interrupt */ +#define PIN_INT3 PTC8 /* This pin does not support interrupt */ +#define PIN_INT4 PTA5 +#define PIN_INT5 PTA4 +/* Analog Input */ +#define PIN_AN0 PTB0 +#define PIN_AN1 PTB1 +#define PIN_AN2 PTB2 +#define PIN_AN3 PTB3 +#define PIN_AN4 PTC2 +#define PIN_AN5 PTC1 +#define BOARD_NAME "FRDM-KL25Z" + +#elif defined (TARGET_KL46Z) +/* I2C */ +#define PIN_SCL PTE1 +#define PIN_SDA PTE0 +/* SPI */ +#define PIN_SCK PTD5 +#define PIN_MISO PTD7 +#define PIN_MOSI PTD6 +#define PIN_CS0 PTD4 +/* Interrupt */ +#define PIN_INT0 PTD2 +#define PIN_INT1 PTA13 +#define PIN_INT2 PTC9 /* This pin does not support interrupt */ +#define PIN_INT3 PTC8 /* This pin does not support interrupt */ +#define PIN_INT4 PTA5 +#define PIN_INT5 PTA4 +/* Analog Input */ +#define PIN_AN0 PTB0 +#define PIN_AN1 PTB1 +#define PIN_AN2 PTB2 +#define PIN_AN3 PTB3 +#define PIN_AN4 PTC2 +#define PIN_AN5 PTC1 +#define BOARD_NAME "FRDM-KL46Z" + +#elif defined (TARGET_K64F) +/* I2C */ +#define PIN_SCL PTE24 +#define PIN_SDA PTE25 +/* SPI */ +#define PIN_SCK PTD1 +#define PIN_MISO PTD3 +#define PIN_MOSI PTD2 +#define PIN_CS0 PTD0 +/* Interrupt */ +#define PIN_INT0 PTC4 +#define PIN_INT1 PTA0 +#define PIN_INT2 PTC3 +#define PIN_INT3 PTC2 +#define PIN_INT4 PTA2 +#define PIN_INT5 PTB23 +/* Analog Input */ +#define PIN_AN0 PTB2 +#define PIN_AN1 PTB3 +#define PIN_AN2 PTB10 +#define PIN_AN3 PTB11 +#define PIN_AN4 PTC11 +#define PIN_AN5 PTC10 +#define BOARD_NAME "FRDM-K64Z" + +/** + * NOTE: On FRDM-K22F + * Both I2C and UART are assigned to + * the same pins PTE1/PTE0. + * So MSS does not work as is. + */ +#elif defined (TARGET_K22F) +/* I2C */ +#define PIN_SCL PTE1 +#define PIN_SDA PTE0 +/* SPI */ +#define PIN_SCK PTD5 +#define PIN_MISO PTD7 +#define PIN_MOSI PTD6 +#define PIN_CS0 PTD4 +/* Interrupt */ +#define PIN_INT0 PTA1 +#define PIN_INT1 PTB19 +#define PIN_INT2 PTC6 +#define PIN_INT3 PTC3 +#define PIN_INT4 PTB18 +#define PIN_INT5 PTA4 +/* Analog Input */ +#define PIN_AN0 PTB0 +#define PIN_AN1 PTB1 +#define PIN_AN2 PTC1 +#define PIN_AN3 PTC2 +#define PIN_AN4 PTB3 +#define PIN_AN5 PTB2 +#define BOARD_NAME "FRDM-K22F" + +#elif defined (TARGET_KL05Z) +/* I2C */ +#define PIN_SCL PTB3 +#define PIN_SDA PTB4 +/* SPI */ +#define PIN_SCK PTB0 +#define PIN_MISO PTA6 +#define PIN_MOSI PTA7 +#define PIN_CS0 PTA5 +/* Interrupt */ +#define PIN_INT0 PTB11 +#define PIN_INT1 PTB10 +#define PIN_INT2 PTB7 +#define PIN_INT3 PTB6 +#define PIN_INT4 PTA12 +#define PIN_INT5 PTA10 +/* Analog Input */ +#define PIN_AN0 PTB8 +#define PIN_AN1 PTB9 +#define PIN_AN2 PTA8 +#define PIN_AN3 PTA0 +#define PIN_AN4 PTA9 +#define PIN_AN5 PTB13 +#define BOARD_NAME "FRDM-KL05Z" + +#elif defined (TARGET_F411RE) +/* I2C */ +#define PIN_SCL PB_8 +#define PIN_SDA PB_9 +/* SPI */ +#define PIN_SCK PA_5 +#define PIN_MISO PA_6 +#define PIN_MOSI PA_7 +#define PIN_CS0 PB_6 +/* Interrupt */ +#define PIN_INT0 PC_7 +#define PIN_INT1 PA_9 +#define PIN_INT2 PA_8 +#define PIN_INT3 PB_10 +#define PIN_INT4 PB_4 +#define PIN_INT5 PB_5 +/* Analog In */ +#define PIN_AN0 PA_0 +#define PIN_AN1 PA_1 +#define PIN_AN2 PA_4 +#define PIN_AN3 PB_0 +#define PIN_AN4 PC_1 +#define PIN_AN5 PC_0 +#define BOARD_NAME "NUCLEO-F411RE" + +#elif defined (TARGET_LPC812) +/* I2C */ +#define PIN_SCL P0_11 +#define PIN_SDA P0_10 +/* SPI */ +#define PIN_SCK P0_12 +#define PIN_MISO P0_15 +#define PIN_MOSI P0_14 +#define PIN_CS0 P0_13 +/* Interrupt */ +#define PIN_INT0 P0_16 +#define PIN_INT1 P0_17 +#define PIN_INT2 P0_7 +#define PIN_INT3 XP_4 +#define PIN_INT4 XP_5 +#define PIN_INT5 P0_9 +/* Analog In */ +#define PIN_AN0 A0 +#define PIN_AN1 A1 +#define PIN_AN2 A2 +#define PIN_AN3 A3 +#define PIN_AN4 A4 +#define PIN_AN5 A5 +/* MSS on board LEDs */ +#define LED_D1 P0_12 +#define LED_D2 P0_15 +#define LED_D3 P0_14 +#define LED_D4 P0_13 +#define LED_D5 P0_8 +#define LED_D6 P0_6 +#define LED_D7 P0_4 +#define LED_D8 P0_0 +#define BOARD_NAME "NXP_LPC800MAX" + +#else + #error TARGET NOT DEFINED +/* I2C */ +#define PIN_SCL D15 +#define PIN_SDA D14 +/* SPI */ +#define PIN_SCK D13 +#define PIN_MISO D12 +#define PIN_MOSI D11 +#define PIN_CS0 D10 +/* Interrupt */ +#define PIN_INT0 D9 +#define PIN_INT1 D8 +#define PIN_INT2 D7 +#define PIN_INT3 D6 +#define PIN_INT4 D5 +#define PIN_INT5 D4 +/* Analog In */ +#define PIN_AN0 A0 +#define PIN_AN1 A1 +#define PIN_AN2 A2 +#define PIN_AN3 A3 +#define PIN_AN4 A4 +#define PIN_AN5 A5 +/* MSS on board LEDs */ +#define LED_D1 D13 +#define LED_D2 D12 +#define LED_D3 D11 +#define LED_D4 D10 +#define LED_D5 D3 +#define LED_D6 D2 +#define LED_D7 D1 +#define LED_D8 D0 + +#endif + +#endif /* _MSS_H_ */ \ No newline at end of file
--- a/main.cpp Mon May 16 06:28:42 2016 +0000 +++ b/main.cpp Wed Jun 01 07:42:55 2016 +0000 @@ -4,21 +4,24 @@ #include "mbed.h" #include <string.h> #include <stdio.h> +#include "MSS.h" +#if 0 #define PIN_MOSI PTD2 #define PIN_MISO PTD3 #define PIN_SCLK PTD1 #define PIN_CS_TSC PTA13 #define PIN_TSC_INTR PTC9 #define PIN_MSS_CS PTD0 +#endif int freq = 1000000 ; int bits = 8 ; int mode = 0 ; int loop = 10 ; -SPI mySpi(PIN_MOSI, PIN_MISO, PIN_SCLK) ; -DigitalOut cs(PIN_MSS_CS, 1) ; +SPI mySpi(PIN_MOSI, PIN_MISO, PIN_SCK) ; +DigitalOut cs(PIN_INT0, 1) ; typedef void (*func_ptr)(void) ;
--- a/mbed.bld Mon May 16 06:28:42 2016 +0000 +++ b/mbed.bld Wed Jun 01 07:42:55 2016 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/7c328cabac7e \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/aae6fcc7d9bb \ No newline at end of file