diff --git a/examples/w25q64_test.c b/examples/w25q64_test.c index 5d0245e..5a16d95 100644 --- a/examples/w25q64_test.c +++ b/examples/w25q64_test.c @@ -1,26 +1,15 @@ -// -// SPI シリアルフラッシュメモリ W25Q64 操作検証プログラム -// W25Q64のメモリ領域構造 -// 総バイト数 8388608 -// メモリ空間 24ビットアドレス指定 0x00000 - 0x7FFFFF -// ブロック数 128 (64KB/ブロック) -// セクタ数 2048 ( 4KB/セクタ) -// 総セクタ数 2048 - #include #include #include #include #include "w25q64.h" -//#define SPI_CHANNEL 0 // /dev/spidev0.0 -#define SPI_CHANNEL 1 // /dev/spidev0.1 +#define SPI_CHANNEL 0 // /dev/spidevX.0 +//#define SPI_CHANNEL 1 // /dev/spidevX.0 + +#define SPI_PORT 0 +//#define SPI_PORT 1 -// -// 書込みデータのダンプリスト -// dt(in) : データ格納先頭アドレス -// n(in) : 表示データ数 -// void dump(uint8_t *dt, uint32_t n) { uint32_t sz; char buf[64]; @@ -64,22 +53,21 @@ void dump(uint8_t *dt, uint32_t n) { } void main() { - uint8_t buf[256]; // 取得データ - uint8_t wdata[16]; // 書込みデータ + uint8_t buf[256]; + uint8_t wdata[16]; uint8_t i; - uint16_t n; // 取得データ数 + uint16_t n; - // SPI channel 0 を 2MHz で開始。 // Start SPI channel 0 with 2MHz - if (wiringPiSPISetup(SPI_CHANNEL, 2000000) < 0) { + + //if (wiringPiSPISetup(SPI_CHANNEL, 2000000) < 0) { + if (wiringPiSPISetupMode(SPI_CHANNEL, SPI_PORT, 2000000, 0) < 0) { printf("SPISetup failed:\n"); } - // フラッシュメモリ利用開始 // Start Flush Memory W25Q64_begin(SPI_CHANNEL); - // JEDEC IDの取得テスト // JEDEC ID Get W25Q64_readManufacturer(buf); printf("JEDEC ID : "); @@ -88,7 +76,6 @@ void main() { } printf("\n"); - // Unique IDの取得テスト // Unique ID Get W25Q64_readUniqieID(buf); printf("Unique ID : "); @@ -97,21 +84,18 @@ void main() { } printf("\n"); - // データの読み込み(アドレス0から256バイト取得) // Read 256 byte data from Address=0 memset(buf,0,256); n = W25Q64_read(0, buf, 256); printf("Read Data: n=%d\n",n); dump(buf,256); - // 高速データの読み込み(アドレス0から256バイト取得) // First read 256 byte data from Address=0 memset(buf,0,256); n = W25Q64_fastread(0, buf, 256); printf("Fast Read Data: n=%d\n",n); dump(buf,256); - // セクタ単位の削除 // Erase data by Sector n = W25Q64_eraseSector(0,true); printf("Erase Sector(0): n=%d\n",n); @@ -119,7 +103,6 @@ void main() { n = W25Q64_read (0, buf, 256); dump(buf,256); - // データ書き込みテスト // Write data to Sector=0 Address=10 for (i=0; i < 26;i++) { wdata[i]='A'+i; // A-Z @@ -127,14 +110,12 @@ void main() { n = W25Q64_pageWrite(0, 10, wdata, 26); printf("page_write(0,10,d,26): n=%d\n",n); - // データの読み込み(アドレス0から256バイト取得) // Read 256 byte data from Address=0 memset(buf,0,256); n = W25Q64_read(0, buf, 256); printf("Read Data: n=%d\n",n); dump(buf,256); - // データ書き込みテスト // Write data to Sector=0 Address=0 for (i=0; i < 10;i++) { wdata[i]='0'+i; // 0-9 @@ -142,19 +123,16 @@ void main() { n = W25Q64_pageWrite(0, 0, wdata, 10); printf("page_write(0,0,d,10): n=%d\n",n); - // 高速データの読み込み(アドレス0から256バイト取得) // First read 256 byte data from Address=0 memset(buf,0,256); n = W25Q64_fastread(0,buf, 256); printf("Fast Read Data: n=%d\n",n); dump(buf,256); - // ステータスレジスタ1の取得 // Get fron Status Register1 buf[0] = W25Q64_readStatusReg1(); printf("Status Register-1: %x\n",buf[0]); - // ステータスレジスタ2の取得 // Get fron Status Register2 buf[0] = W25Q64_readStatusReg2(); printf("Status Register-2: %x\n",buf[0]);