【パワーメーター2019】NucleoL432KC_SPI+I2C+HardFlowSerialのピン探し<ギリギリ入った>

Nucleo L432KCは、小型高性能だが、ピン数が30ピンと少ないので、SPI,I2C,HardFlowSerialを詰め込むにもピンに自由度は一切ありませんでした。
●L432KCのピンの決め方
DATASHEETをみて、デフォルトで指定されている表を見ながら
使うIFのピン同士でコンフリクトしないように配置します。
L432KCの場合、SPIとI2CとHardwareFlowSerialの組み合わせは
1通りしかありませんでした。

 

●上記を決めるためにはマニュアルは、https://www.st.com/resource/en/datasheet/stm32l432kc.pdf

ここで参照する表のあるページは、55,56ページです。
ピンにいろいろな機能を使えるようになっているのですが、同じ名前が何か所かのピンに書いてあるので、組み合わせがどうなっているのかは、データシートの表をみないとわからないので、簡単にはピンセットが決められなくて大変面倒です。STM32を使うには、Pinout and Pin descriptionを
よく見ないといけないということです。高機能でいろいろあると大変です。
Arduinoのように単純ではありませんが、Arduinoでは逆立ちしても
出来ないことが出来てしまうのでしょうがありません。
以前は、Defaultと書いてあったのですが、Alternate functionがデフォルト

のピン定義みたいです。ここで、使いたいIFのピン同士が干渉しないように決めます。

 

●ブレッドボードで確認
  切った張ったが多くなるので、ブレッドボードで、HardwareFlowSerialとI2Cのそれぞれの動作と組み合わせた動作をチェックしました。ハードウェアフロー制御については、詳細に検証しましたので、次の記事で報告します。
①シリアル通信は、2個のL432KC間で通信実験をします。Xbeeは、別途実験します。
➁I2CはQMC5833Lのライブラリーを使って、シリアル通信と組み合わせて動作チェックします。

③両者のピン同士が干渉しないかどうかを見るのが目的です。

テストプログラム 送信側CPU上

#include “mbed.h”
#include “QMC5883L.h”
QMC5883L qmc;
//I2C i2c(PB_7,PB_6);
DigitalOut myled(LED1);
Serial pc(USBTX,USBRX);
Serial xbee(PA_9,PA_10);//TX RX
int n=0;
char c;
int main() {
pc.baud(115200);
xbee.baud(115200);
xbee.set_flow_control(Serial :: RTSCTS,PA_12,PA_11);//rts、cts
qmc.init();
pc.printf(“SetOK\n\r”);
while(1) {
int mgx=qmc.getMagXvalue();
int mgy=qmc.getMagYvalue();
int mgz=qmc.getMagZvalue();
myled=1;
wait_ms(10);
myled=0;
pc.printf(“mgx=%d,mgy=%d,mgz=%d\n\r”,mgx,mgy,mgz);
xbee.printf(“%d,%d,%d\n\r”,mgx,mgy,mgz);/*Basic serial RTSCTS test
c=0x31;
pc.putc(c);
xbee.putc(c);
wait_us(100);
*/}
}

受信側プログラム 下CPU

#include “mbed.h”

DigitalOut myled(LED1);
Serial pc(USBTX,USBRX);
Serial xbee(PA_9,PA_10);//Tx RX
int n=0;
int main() {
pc.baud(115200);
xbee.baud(115200);
xbee.set_flow_control(Serial :: RTSCTS,PA_12,PA_11);//rts、cts
while(1) {
//n++;
//pc.printf(“n=%d\n\r”,n);
//xbee.printf(“n=%d\n\r”,n);
// wait_ms(10);
if (xbee.readable()){
pc.putc(xbee.getc());
}
}
}


●結果

●以後
  実際の基板で配線しなおして、SPIピンとの干渉を調べてm最後Xbeeとの速度とデータ落ち信頼性を試験します。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です