YAMAHAの電動車椅子ユニットのNiMHバッテリー.新品で5万円ぐらいする.300回で劣化.日常使いするモノにしてはコスパ悪いもんです.
問題とは?
バッテリパックの内部基板がこれです.右上のchipがEEPROMで、型名M24C04です.4kBit I2C.
EEPROMの中に充放電回数などが記憶されていて、寿命判定で充電しなくさせるとか、リフレッシュさせるとか、そうゆう操作を充電器にやらせる判断材料になっています.このせいで、自力でNiMHだけを新品に交換しても寿命を延ばせないんです.
バッテリー交換業者はEEPROMをリセットする手順を知っているのでしょうから業者がNiMH交換するなら問題ないのだと想像します.
netを徘徊してもこのEEPROM reset手順の情報は見当たりません.
そこでEEPROMをハックしてみるかというのがこの投稿の目的です.
(読者が真似して失敗してもわたしは責任取りませんので)
ーーーー
M24C04の仕様
4kbit
clock <400kHz
プラン1:
最も簡単なやりかたはこれだけど、STM32内のI2Cが反応してACKを返してバスが衝突するんじゃないかなと思う.
追記:STM32のI2Cは謂わばmaster(clkを出す人)なのでこれ無理なんだわ
かったるいけど堅実なやり方はこれかと.めんどうだけど.
SCL,SDAの観測
123の判断材料としてSCL,SDAの波形を知りたい.
↓こんな感じでSCL,SDAを直接観測します.
SCL→STOP 5uSec
SCL→START 10uSec
これはsoftで処理するにはtiming的に厳しい.(hardwareでなら無問題)
なぜかというと、5uSec間隔でGPIO割り込みが発生するのは短すぎてCPUが取りこぼすだろうから.プラン2は実現が難しそうかなぁ.
追記:プラン2をpollingのみでやる(割り込み無し)ので上手くできそうな感じがする.HAL driverでGPIOアクセスすると遅いのですが、LL libraryを使うとGPIOアクセスが結構速くなります.
あでゅ~
これはすごい
返信削除五年くらい前にどこかのブログでみたのですがYAMAHAかどうかは覚えていない
バッテリーのリコールがあって 年月でバッテリー使えなくなる
自転車屋にいくと バッテリーのフアームを書き換えてくれて バッテリーが復活する
知らない金持ちは バッテリーを新品買うというもの
わかる自転車屋にいくと直してくれる
バッテリーは回数制限あるから豆に充電しないほうがよいとはきいたことある
これからプラン1Aを行います!
削除STM32をプログラミング中!