2020年9月3日木曜日

LEV40-8 CMUの信号を覗いてみた その2

助っ人を召喚しました。

USB-CAN デバッガアダプタ。

適当に安いのを選んだためか、中国語しか対応していません。( ゚Д゚)
なんとか使えているので良しとするか・・・。


繋いだらCMUの動作に変化が見られました!

接続前
0.000036600,0,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.000298600,1,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.000560600,2,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.000822800,3,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001084800,4,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001346800,5,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001608800,6,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK
0.001871000,7,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,NAK

接続後
0.018130200,0,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,ACK
0.018432600,1,DATA,0x612,0x8,0x0F 0x2D 0x0E 0xA6 0x0F 0x2E 0x0F 0x30,0x3924,ACK
0.018739000,2,DATA,0x613,0x8,0x0F 0x31 0x0F 0x2E 0x0F 0x30 0x0F 0x33,0x684E,ACK
0.019043200,3,DATA,0x614,0x8,0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF,0x2D67,ACK
0.058140800,4,DATA,0x611,0x8,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF,0x7DD4,ACK
0.058443200,5,DATA,0x612,0x8,0x0F 0x2D 0x0E 0xA7 0x0F 0x30 0x0F 0x30,0x0061,ACK
0.058745600,6,DATA,0x613,0x8,0x0F 0x31 0x0F 0x30 0x0F 0x30 0x0F 0x33,0x0DF9,ACK
0.059049800,7,DATA,0x614,0x8,0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF,0x2D67,ACK

ロジアナ上でも変化が! 連続して送信し続けていたのが、間欠送信となりました。


CANバスの仕組みとして、データを受信したノードがCRCを計算して問題なければACKを返す仕組みがあり、送信側はACKが無いので同じデータを送り続けていたようです。

では送られてきたデータを読み取ってみましょう。
0x611,0x00 0x30 0x4F 0x4F 0x4F 0x4F 0x4F 0xFF
バランス実行無し、29℃、29℃、29℃、29℃、29℃
0x612,0x0F 0x2D 0x0E 0xA6 0x0F 0x2E 0x0F 0x30
S1:3.885mV、S2:3.750mV、S3:3.886mV、S4:3.888mV
0x613,0x0F 0x31 0x0F 0x2E 0x0F 0x30 0x0F 0x33
S5:3.889mV、S6:3.886mV、S7:3.880mV、S8:3.891mV 
0x614,0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
未使用

0x611については諸説あるのであれですが、612~614の電圧はあっているように見えます。

最後にバランスコマンドのテストを・・・

あれ? マニュアル通りに設定しているのにちゃんと送れない。
ロジアナで確認すると拡張IDでRTR形式で送信している。なぜだ( ゚Д゚)

原因判明 なんとIDタイプとRTRの指定を中国語のまま保存する仕様になっており、文字化けで誤動作していました。該当の文字をコピペしてなんとか設定完了。

0x611のバランス情報が0xFDとなり2セル以外バランスしていることが分かります。
0.149405400,16,DATA,0x3C3,0x8,0x0F 0x10 0x01 0x04 0x03 0x00 0x00 0x00,0x67F1,ACK
0.184412000,18,DATA,0x611,0x8,0xFD 0x30 0x51 0x51 0x51 0x51 0x51 0xFF,0x10FC,ACK
0.184710400,19,DATA,0x612,0x8,0x0F 0x2B 0x0E 0xA3 0x0F 0x2D 0x0F 0x2D,0x20B0,ACK
0.185008800,20,DATA,0x613,0x8,0x0F 0x2E 0x0F 0x2D 0x0F 0x2D 0x0F 0x31,0x28B6,ACK

左がバランスなし、右がバランスありです。セル2が低いので他7セルを抵抗で消費しています。

動画はこちら。バランスコマンドは1回送ればいいのではなく、コマンドの都度数ミリ秒実行されるようです。
停止⇒連続⇒停止⇒連続⇒頻度小⇒頻度中と変化させてみました。



2020年8月29日土曜日

LEV40-8 CMUの信号を覗いてみた

 ある程度環境も整ってきたので、LEV40-8 CMU基板について調べてみました。

よく見るとCANコネクタ側とBMS側がUM1402Wとフォトカプラで分離された構造になっています。

間違いも多々あると思うのでざっくりでずか、回路はこんな感じ。
外部から12Vを入れてやる必要があるみたいです。(電源IC自体は5.5~30V入力ですが、他の回路でも使われているので注意。)
ではCANバスを覗いてみましょう。
速度は500Kbpsのようです。
う~ん、同じデータしか流れてこない。バッテリに対してなにかコマンドが必要なのかもしれません。
DATA,0x671,0x8,0x00 0x30 0x4F 0x4F 0x4E 0x4E 0x4E 0xFF,0x2143,NAK



ということで、
困った時の海外頼み(^^♪
Mag ID 6X1はバランスステータスと温度センサ1~5らしい。
Mag ID 6X2と6X3でセル電圧みたいなのですが、いまだ出し方分からず((+_+))
 ※MsgID 0x3C3 を送信することで電圧を返してくれるようです。また、目標セル電圧とバランス開始指示でCMUは指定電圧目指してバランス動作するようです。
ACKが返っていないだけでした。受信ノードを追加すれば、正常な通信になります。

 ・DIY ELECTRIC CAR Using the Mitsubishi CMU / BMS on LEV40 packs




 Arduinoで組まれたオープンソース。非常に参考になります。

現在サポートしているのは、
- Tesla Model S/X
- Tesla battery modules used in other OEM cars
- Mitsubishi Outlander LEV40
- VW E-Golf and GTE (no balancing currently)
- BMW I3

2020年8月27日木曜日

ロジックアナライザ LA5016 購入してみた

 マイコンとかやってると色々細かな部分が気になってくる。
そんなときに助けてくれるのがロジックアナライザ(^^♪

こんな感じに接続して、
こんな感じにモニタ出来ます。
更にエンコード機能も付いていて、信号だけでなく通信のモニタも出来るようです。
果たして使いこなせるのであろうか・・・(/・ω・)/

追記
・このままだと内部を見せろやってコメントが付きそうなので、対策 ^^;

2020年8月23日日曜日

【Arduino】 AVRISP_mkIIが来たので環境を整えてみた

・TL866IIPlusしかもっていないので、ROM書きが面倒。
 1.Arduino IDE ⇒ Arduino UNO
 2.TL866IIPlus ICSP UNO読込み ⇒ TL866IIPlus ICSP LCDスクリーン書込み

AVRISP mkIIがあればそのままArduino IDEからROM書きできるみたいなので購入してみました。
もちろん、パチモンですけどね。(*´ω`*)

早速Arduino IDEから書込みを試みましたが、USBデバイスを認識してくれません。
初期不良の可能性もあるので、本来の環境であるAtmelStudio7で確認。
ドライバがいくつかあるのですが、
 
左のMicrochipToolsの方で正常に認識し、読み書き正常。
色々調べていくとArduino IDEとAtmelStudio7ではドライバが異なるようで、それを補うためのlibusb-win32というツールがあるようなのですが、Windows10 64bit環境の署名問題で現状ではうまく動かないようです。

そこで、AtmelStudio7でArduino IDEライブラリを使う方法を調べてみました。

最初試したのは、AtmelStudio7のArduinoスケッチ読込み機能なんですが、U8g2ライブラリをインポートしてもコンパイル時にヘッダファイルが無いの一点張り。エディタでは正常に認識しているのに何だろう。

次に試したは、拡張ツールである「Arduino IDE for Atmel Studio7」
こちらは、U8g2ライブラリを認識してコンパイルしてくれます。素晴らしい!!(≧▽≦)
せっかくAtmel Studio7環境に移行したので、JTAGICE mkIIにしてデバックできるようにしたいな。

2020年8月15日土曜日

【Arduino】 スマートBMS用 LCDスクリーンディスプレイ を使って開発してみよう

スマートBMS用に組まれたボードですが、
Arduino環境での開発が出来そうだったので試してみました。

マイコンはATmega328P。
ICSP端子も付いているのでAVRISP mkIIがあればそのままArduino IDEからROM書き可能。

LCDパネルは、JLX19296G-380
マニュアルを確認すると、LCDコントローラはST75256。
・よかった。u8g2ライブラリでサポートされている



・設定はSPI接続で、
その他ポートまわりを調べた結果がこちら、普通に使えそう。

テストプログラムを書いてみた。

自分はTL866IIPlusしかもっていないので、
 ・Arduino IDE ⇒ Arduino UNO
 ・TL866IIPlus ICSP UNO読込み ⇒ TL866IIPlus ICSP LCDスクリーン書込み

と面倒なので、素直にAVRISP mkIIを買おう。

2020年8月13日木曜日

【故障修理】 BenQ EL2870U その3 ケーブル交換

 過去のあらすじ

メイン基板⇒液晶コントローラケーブルにてコネクタ破損あり

7/30発注から2週間、
小型の封筒で頼りないですが、プチプチパワーで無事届きました。(*´ω`*)

コネクタ端子面の確認、問題なし。
純正とは異なり、片面しか黒テープが貼られていません。

同じように取り付けて完了。

んで、特殊コネクタ部分ですが、簡単に分解可能です。
51pin、0.5mm間隔、30cmのフラットケーブルがあれば修理可能ですね。


2020年8月10日月曜日

楽天モバイル Rakuten UN-LIMIT eSIM 2つの問題について調べてみた

 前回の設定である程度快適に使えるようになったのですが、


問題点が2つあります。

  1. モバイル通信設定の電話番号欄が空白。

  2. キャリア設定アップデートが定期的に表示される。

調べてみると、
 1.楽天モバイルエリアでデータ通信すると直るらしい。
 2.現状では仕様??

いざ楽天モバイルエリアへ出発だ~! (≧▽≦)

楽天エリアであることの確認、

iphoneの電波測定モードからバント3を掴んでいることを確認します。

上手く切替らない場合は、モバイル通信設定のネットワーク選択を自動を解除し、下記のRakutenのどちらかを選択します。今回は上が楽天 バンド3、下がau バンド18でした。

折角エリアにきたので速度確認。
基地局の見通しとか確認できなかったのでベストでないと思いますが残念な結果。
本題の電話番号表示ですが、自分の場合は普通に通信するだけではダメでした。
バント3を選択した状態で電源Off/Onで表示されるようになりました。
これで問題点1は解決です。

不思議と問題点2も楽天回線では発生しなくなりましたが、
パートナーエリアに移動したら出るようになりました。((+_+))