こんにちは、チーム
私は最初に、J18 ヘッダーを使用して SMBus 経由で RDDRONE-BMS772 と通信しようとしました。
ESP32 と RDDRONE-BMS 772 ボードを SMBUS ヘッダー経由で接続し、SDA、SCL、GND を接続しています。
私は以下のコードを使用しており、I2C ディスプレイでコードをテストし、以下のコードでスレーブ アドレスを見つけることができました。
CLI を使用して「bms set smbus-enable 1」コマンドで SMBus を有効にし、bms get smbus-enable を使用して検証しました。
UAVCAN をテストしたところ、正常に動作し、PixHawk を使用してデータを取得できました。
#include
#define SDA_PIN 6
#define SCL_PIN 7
void setup() {
Serial.begin(115200);
Serial.println("\nI2C Scanner starting...");
Wire.begin(SDA_PIN, SCL_PIN, 100000); // SDA, SCL, 100kHz
Serial.println("\nI2C Scanner starting...");
}
void loop() {
byte error, address;
int count = 0;
for (address = 1; address < 127; address++) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at 0x");
Serial.println(address, HEX);
count++;
}
}
if (count == 0) {
Serial.println("No I2C devices found.");
}
delay(2000);
} 何が間違っているのか教えてください。私の意図は、SMBus を使用して電圧、電流などのデータを取得することです。
こんにちは、 @abhishekBLDさん、
Arduino をこの HW 構成で動作させるには、 https://github.com/PowerCartel/PackProbe/tree/masterからこの SMBus PackProbe.ino ファイルをダウンロードし、次の変更を加えることができます。
Arduino Uno のデジタルピン 7 と 8 を使用できるようにするには、SCL_PIN を 0 に変更します。
deviceAddressを11に変更します。
次に、コンソール ブリッジの代わりにシリアル モニターで動作するようにしてみましょう。
コンソール/ブリッジをシリアルに変換するには、次の手順に従ってください: https://github.com/PowerCartel/PackProbe/blob/master/PackProbe/PackProbe.ino#L74-L77
これは、前述の HW で動作するはずです。
これが役に立つことを願います!
敬具
シス
こんにちは、 @abhishekBLDさん、
RDDRONE-BMS772 の BMS6.0 でも SMBus が動作していることがわかります。
私はmain · NXPHoverGames/RDDRONE-BMS772 · GitHub の RDDRONE-BMS772/Binary で nuttx.bin をプログラムしました。
しかし、バージョン 6.0 にはバグがあり、バージョン 7.2 では修正されていることに気付きました。
セル電圧はmV表記の完全な整数電圧(4000mVまたは3000mV)のみを表示しており、これは私のRDDRONE-BMS772の実際のセル電圧(例:4123mV または 3978mV)。
RDDRONE-BMS772用のBMS7.2を入手するには、以下の手順に従って.binをビルドして作成します。ただし、RDDRONE-BMS772 用に設定するだけです。
フォローしてください: GitHub - NXPHoverGames/MR-BMS771 。
バイナリを設定して作成する手順 ( GitHub - NXPHoverGames/MR-BMS771 ) では、必ず RDDRONE-BMS772 用に設定してください。次に例を示します。
tools/configure.sh -e rddrone-bms772:bms
こんにちは@cisvmierlo 、
私は最新の github リポジトリhttps://github.com/NXPHoverGames/RDDRONE-BMS772/tree/main?tab=readme-ov-fileからクローンした BMS バージョン 6.0 を使用しています。
上記のリポジトリから SMBUS 通信をテストしていただけますか?
私は RDDRONE-BMS772 を使用しているため、提供されたリンク (BMS771) ではなく上記のリンクを使用しています。7S-14S には BMS771 が使用されているようですが、両方に同じファームウェアが使用されているかどうか確認できますか?
bms smbus-enable 1 を設定する
bms保存
以前にも上記の 2 つのコマンドを実行しており、bms get-all を実行するとそれが確認できます。
また、導通もチェックしましたが、すべて正常です。
調査して解決策を提案してください。
こんにちは、 @abhishekBLDさん、
モバイルロボット向け小型オールインワンBMS「RDDRONE-BMS772」にご興味をお持ちいただきありがとうございます。
この問題に遭遇してしまったことをお詫び申し上げます。
RDDRONE-BMS772 で使用している SW バージョンは何ですか?
BMS のバージョンは、CLI で SW を起動したとき、または「reboot」(コマンド) を発行したときに確認CANます。
現在、最新バージョン (7.2) は、MR-BMS771 の git リポジトリにあります: https://github.com/NXPHoverGames/MR-BMS771 、このSWは、正しく設定されていればRDDRONE-BMS772でも使用できます。
私は次の RDDRONE-BMS SW バージョンで Arduino Uno を使用して SMBus をテストしました。
BMSバージョン: BMS7.2-11.0-RDDRONE-BMS772。
SDA ポート Dpin7 と SCL ポート Dpin8。
正しい SMBus コネクタ J18 を使用しており、コマンド「bms set smbus-enable 1」で SMBus を正しく有効にしていることがわかります。
「bms save」コマンドでパラメータも保存しましたか?そうしないと、電源の再投入またはリセットにより、SMBus 有効化パラメータが 0 にリセットされる可能性があります。
実際の設定は分かりませんが、配線を短くして、I2C速度をI2C低速モード(例えばボード間通信に I2C を使用する場合、クロック周波数は最大 25kHz になります。
BMS のバージョン番号を共有していただければ、それを使って SMBus もテストCANます。
敬具、
シス