SyntaxHigh

Saturday, April 11, 2015

AT86RF233 を Arduino で動かす

ATZB-A-233-XPRO-ND と Arduino Pro Mini の結線

Digikey から http://www.digikey.jp/product-detail/ja/0/ATZB-A-233-XPRO-ND が届いた。

情報は公式のここから。

まず、AT86RF233 は 3.3 V で動くので CP2102 につないだ Arduino Pro mini を用意する。

Arduino と RF233 の間で必要な線は

  1. SPI SS (Slave Select)
  2. SPI MOSI
  3. SPI MISO
  4. SPI SCK
  5. 3.3V
  6. Digital Ground

デザインには、SPIのコネクタのピンナンバーが書いていないので、User Guide を見る。

image

以下の Arduino Uno のSchematic を参考に。

image
ここで、注意が、Arduino の SS をRF233の SPI_SS_A に繋いではいけない。Chibi Arduino では、Chip Select がPortC の3番 (A3)、SPI の Slave Select が PortB の3番(D10)になっているが、実際にSPIを送る前にLOWに落としているのは A3 の方。

つまり、

  Arduino Pro Mini ATZB-A-233-XPRO-ND
SCK D13 18
MISO D12 17
MOSI D11 16
SS A3 (D10) 15
VCC   20
GND   19

ということらしい。

Hello World

まずは、何か情報を取ってくる。 まずはSPIの初期化をして、0x1C (PART_NUM) のデータを取ってくる。

chb_drvr_init() の chb_spi_init() のみを実行するように、chb_radio_init()をコメントアウト(rf233部分が実装されていないため)

void chb_drvr_init()
{
    // config SPI for at86rf230 access
    chb_spi_init();

    // configure IOs
    CHB_SLPTR_DDIR |= (_BV(CHB_SLPTR_PIN));
    CHB_SLPTR_DISABLE();

    // config radio
    //chb_radio_init();
}

次のすけとで、0x0Bが返ってくれば成功。image

chibiInit();

Serial.begin(9600);
uint8_t part_num = chibiRegRead(0x1c);
Serial.println(part_num,HEX);

image

よっしゃ~!

GIT Repository

git@bitbucket.org:matoge/kasacopter.git