9 years, 4 months ago.

RawSerial、使ってもいいですか?

すみません。RawSerialは使っても大丈夫ですか?

こじょう

Question relating to:

Team for GR-PEACH Producer Meeting

1 Answer

9 years, 4 months ago.

Xbeeを使ってみようと思っていたんですが、何故か動かなくていろいろ試してました。
で、片っ端からRawSerialでprintfだけするプログラムを動かしてみたところ、使えるところと使えないところがあるようにも見えます。

結果TxDRxD
USBTXUSBRXUSB
P2_14P2_15D1,D0
P8_13P8_11D7,D6
P8_14P8_15D9,D8
×P7_4P7_5XBee
×P5_6P5_7
P5_3P5_4
P5_0P5_1
×
P7_15
P2_5
P8_1
P2_6

※SerialでもRawSerialでも同じ。

なんか使い方間違っているんでしょうか...。

-- 2014.12.5追記
XbeeのピンアサインがTXとRXが逆の模様。(rev.427現在)

serial_api.cより

static const PinMap PinMap_UART_TX[] = {
    {P6_3 , P_SCIF2, 7},
    {P2_14, P_SCIF0, 6},
    {P5_0 , P_SCIF4, 5},
    {P5_3 , P_SCIF3, 5},
    {P5_6 , P_SCIF6, 5},
    {P2_5 , P_SCIF1, 6},
    {P8_14, P_SCIF4, 7},
    {P8_13, P_SCIF5, 5},
//    {P7_5 , P_SCIF7, 4},
    {P7_4 , P_SCIF7, 4},
    {NC   , NC    , 0}
};

static const PinMap PinMap_UART_RX[] = {
    {P6_2 , P_SCIF2, 7},
    {P2_15, P_SCIF0, 6},
    {P5_1 , P_SCIF4, 5},
    {P5_4 , P_SCIF3, 5},
    {P5_7 , P_SCIF6, 5},
    {P2_6 , P_SCIF1, 6},
    {P8_15, P_SCIF4, 7},
    {P8_11, P_SCIF5, 5},
//    {P7_4 , P_SCIF7, 4},
    {P7_5 , P_SCIF7, 4},
    {NC   , NC    , 0}
};

また、murataのType YDライブラリ(SNICInterface)を実行すると、RawSerial.attach()で止まるので、割り込み周りに問題がある可能性あり。

Serial_api.cを見てみると

static const PinMap PinMap_UART_TX[] = { {P6_3 , P_SCIF2, 7}, {P2_14, P_SCIF0, 6}, {P5_0 , P_SCIF4, 5}, {P5_3 , P_SCIF3, 5}, {P5_6 , P_SCIF6, 5}, {P2_5 , P_SCIF1, 6}, {P8_14, P_SCIF4, 7}, {P8_13, P_SCIF5, 5}, {P7_5 , P_SCIF7, 4}, {NC , NC , 0} };

static const PinMap PinMap_UART_RX[] = { {P6_2 , P_SCIF2, 7}, {P2_15, P_SCIF0, 6}, {P5_1 , P_SCIF4, 5}, {P5_4 , P_SCIF3, 5}, {P5_7 , P_SCIF6, 5}, {P2_6 , P_SCIF1, 6}, {P8_15, P_SCIF4, 7}, {P8_11, P_SCIF5, 5}, {P7_4 , P_SCIF7, 4}, {NC , NC , 0} };

でXbeeの部分はTXとRXが逆なのかも

posted by Kazuyuki Eguchi 04 Dec 2014

お。正解です。Serial_api.cを修正し、P7_4をTX, P7_5をRXにしたら動きました。(送信のみ確認。受信は未確認)

が、murata Type YDは動作しませんでした。RawSerial.attach()の実行で止まるので、割り込みまわりの問題だと思われます。

posted by Yuuichi Akagawa 04 Dec 2014