趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
とりあえずス口コソ試作版が完成したので、ほぼ同じ回路で作り直したところ、なんと、まったく動かない(動作開始後すぐにハングする)。。。。
どう見直しても、回路には問題がない。それにもかかわらず、動かない。。。。
年末より原因を調査していて、年明けてようやく原因が見つかった。
原因は、
「PICマイコンのバグ」
バグというと、不具合のように聞こえるが、まぁ確かに不具合といえば不具合なのだが、PICというマイコンは不具合のあることが前提で出荷されていて、不具合はErrataとして回避方法が公開されている。
今回遭遇した不具合はA/D変換の不具合で、回避方法は8MHz以下で動作させること、となっている。しかしこのス口コソは、一部掛け算のロジックを使っていて、32MHzじゃないと満足に動作しなかったりする。
さて、困った。。。
ここで気になるのが、10月に買ったマイコンだと問題が起きなくて、12月に買ったマイコンだと問題が起きたということ。12月に買ったマイコンのほうが古いのかも?と思って調べてみた。
PICのマイコンには、7桁のなぞの文字が印刷されている。これは缶詰の刻印とおなじで、製造時期をあらわしている。10月に買ったものには 105083H 、12月に買ったものは 1052QE5 と書いてある。これを意訳すると、 2010年第50週に製造開始したリビジョンのロット83H、2010年52週に製造開始したリビジョンのロットQE5、だとわかる。つまり、12月に買ったほうが新しくて、新しいほうが対策されているはずなのに動かないというなぞの現象が起きていることになる。
ということで、16F1938のErrataをよ~く読んでみた。
PIC16F1938にはSilicon Revision A1、A2という2種類が存在して、A1にはADC Conversion may not Complete というバグがあることがわかった。で、A2では解決しているのだが、A2の記述が追記されたのが2010年12月。。。。つまりあれだ、10月に買ったリビジョンは、まだADC Conversion may not Completeの対策もなにもやっていないということで、問題がありながらも(俺は気にしなかった)なんとなく動いていた。12月に買ったリビジョンはADC Conversion may not Completeの暫定対策として8MHzより高速ではA/D変換するとPICがハングするように(中途半端に動作しないように?)なっているようだ。
なんだこりゃ~
つまり、リビジョンA2が市場に出てくるのを待つか、1050NNN以前の古いリビジョンのものを探すしか方法はなさそうだ。。。。。
まぁ、要するに、PIC16F1827やPIC16F1938とか、超高性能、高機能なのに100円ちょっとで売っているのは、それ相応の理由があるってこと。今、16F88や16F648を使っている人は、まだこの新しいシリーズに手を出してはならない。。。。まだ早い!
PICは製品が安定するまでに数年かかるので、それまでは枯れた旧製品を使って開発しましょう。新製品は安くて高性能だけど、手を出すと今回の俺のように痛い目にあう。
後日追記:今、秋月で売っているのは修正済みバージョン。非常に安定している。もう16F88や16F648を新規で使うことはないだろう。。。
どう見直しても、回路には問題がない。それにもかかわらず、動かない。。。。
年末より原因を調査していて、年明けてようやく原因が見つかった。
原因は、
「PICマイコンのバグ」
バグというと、不具合のように聞こえるが、まぁ確かに不具合といえば不具合なのだが、PICというマイコンは不具合のあることが前提で出荷されていて、不具合はErrataとして回避方法が公開されている。
今回遭遇した不具合はA/D変換の不具合で、回避方法は8MHz以下で動作させること、となっている。しかしこのス口コソは、一部掛け算のロジックを使っていて、32MHzじゃないと満足に動作しなかったりする。
さて、困った。。。
ここで気になるのが、10月に買ったマイコンだと問題が起きなくて、12月に買ったマイコンだと問題が起きたということ。12月に買ったマイコンのほうが古いのかも?と思って調べてみた。
PICのマイコンには、7桁のなぞの文字が印刷されている。これは缶詰の刻印とおなじで、製造時期をあらわしている。10月に買ったものには 105083H 、12月に買ったものは 1052QE5 と書いてある。これを意訳すると、 2010年第50週に製造開始したリビジョンのロット83H、2010年52週に製造開始したリビジョンのロットQE5、だとわかる。つまり、12月に買ったほうが新しくて、新しいほうが対策されているはずなのに動かないというなぞの現象が起きていることになる。
ということで、16F1938のErrataをよ~く読んでみた。
PIC16F1938にはSilicon Revision A1、A2という2種類が存在して、A1にはADC Conversion may not Complete というバグがあることがわかった。で、A2では解決しているのだが、A2の記述が追記されたのが2010年12月。。。。つまりあれだ、10月に買ったリビジョンは、まだADC Conversion may not Completeの対策もなにもやっていないということで、問題がありながらも(俺は気にしなかった)なんとなく動いていた。12月に買ったリビジョンはADC Conversion may not Completeの暫定対策として8MHzより高速ではA/D変換するとPICがハングするように(中途半端に動作しないように?)なっているようだ。
なんだこりゃ~
つまり、リビジョンA2が市場に出てくるのを待つか、1050NNN以前の古いリビジョンのものを探すしか方法はなさそうだ。。。。。
まぁ、要するに、PIC16F1827やPIC16F1938とか、超高性能、高機能なのに100円ちょっとで売っているのは、それ相応の理由があるってこと。今、16F88や16F648を使っている人は、まだこの新しいシリーズに手を出してはならない。。。。まだ早い!
PICは製品が安定するまでに数年かかるので、それまでは枯れた旧製品を使って開発しましょう。新製品は安くて高性能だけど、手を出すと今回の俺のように痛い目にあう。
後日追記:今、秋月で売っているのは修正済みバージョン。非常に安定している。もう16F88や16F648を新規で使うことはないだろう。。。
PR
ことしも残すところあと3日。信心深い俺は、ちょっと早めの初詣。場所はもちろん王禅寺。
朝8時入りだったが、この寒さにもかかわらず、かなりバス停ってます。なんとか列に割り込んで、釣り開始。
で、結果は、というと、3時間で20匹ちょっと。まったく釣れないということは無いが、よく釣れるほどでもない。まぁ、ぽつぽつといった感じ。
今日のヒットルアーは、自作超軽量スプーン(バベゼロ相当)のネイビーラメ。赤金やオレ金とかは、一投目はよく釣れるのだが、あとが続かない。そういった派手系と、カニミソや黒、ネイビーといったスレ系のスプーンを織り交ぜながら、なんとか20匹。人が多いので、鱒のプレッシャーは相当なもの。同じものをずっと投げていても、無駄だった。
あと、重いスプーンを沖に投げてもイマイチ。軽量スプーンの岸際もイマイチ。岸から5mくらいのかけ上がりの底にたまっているように感じた。
今日俺は使わなかったが、隣の人はホタルちゃんを使っていた。それなりのペースで上げていたので、使う人が増えた今でもそれなりに調子のいいルアーなのだと思う。
朝8時入りだったが、この寒さにもかかわらず、かなりバス停ってます。なんとか列に割り込んで、釣り開始。
で、結果は、というと、3時間で20匹ちょっと。まったく釣れないということは無いが、よく釣れるほどでもない。まぁ、ぽつぽつといった感じ。
今日のヒットルアーは、自作超軽量スプーン(バベゼロ相当)のネイビーラメ。赤金やオレ金とかは、一投目はよく釣れるのだが、あとが続かない。そういった派手系と、カニミソや黒、ネイビーといったスレ系のスプーンを織り交ぜながら、なんとか20匹。人が多いので、鱒のプレッシャーは相当なもの。同じものをずっと投げていても、無駄だった。
あと、重いスプーンを沖に投げてもイマイチ。軽量スプーンの岸際もイマイチ。岸から5mくらいのかけ上がりの底にたまっているように感じた。
今日俺は使わなかったが、隣の人はホタルちゃんを使っていた。それなりのペースで上げていたので、使う人が増えた今でもそれなりに調子のいいルアーなのだと思う。
今年もクリスマス中止が発令されているようだ。このような状況下で街に繰り出すのは不謹慎と思い、ス口コソの次の開発を進めることにした。
で、今はパワーFCをエンジンルーム内のECUボックスの上にマジックテープで仮止めしているだけなのだが、本当なら、このECUボックスの中に収めたいと思う。そのためには、純正ECUを撤去しなければならないのだが、そこで避けては通れないのが、ВЕАΝのシミュレーションだろう。ということで、ВЕАΝの解析を試みた。やり方は、いつものキーボードプロトコルの解析と同じ。でも、今回は、スーパーなアナライザを使用した。それが、秋月で12,500円もしたこいつ。。。。

いままではWin95マシンのパラレルポートを使用した、超プアーなロジアナだったが、これなら使い勝手は抜群?
さっそくキャプってみた。

とれてる、とれてる。。。MPX1とMPX2は同じなんだ。。。
リング型のネットワークと書いてあったが、トークンリングとは違って、バスの両端をくっつけただけなのかもしれない。
しかし、すごい回線使用率である。Ethernetと同じCSMA方式なのに、大丈夫なのか??パワーFCを割り込ませているから、純正ECUが悲鳴をあげているのか??
さて、このロジアナにはCANとかLINをアナライズする機能はあるのだが、このВЕАΝのようなトヨタ独自のクソプロトコルは解析できない。
仕方ないので、自分でフィルター作って表計算ソフトに読み込ませることにした。

うむ~、わからん。このMES-IDが何者かわからんことには。。。。
なんとか法則性を見つけないと。。。。
気分はゲームデーターの改造かな?
(テクポリとかで、よくやってた、あれ)
で、今はパワーFCをエンジンルーム内のECUボックスの上にマジックテープで仮止めしているだけなのだが、本当なら、このECUボックスの中に収めたいと思う。そのためには、純正ECUを撤去しなければならないのだが、そこで避けては通れないのが、ВЕАΝのシミュレーションだろう。ということで、ВЕАΝの解析を試みた。やり方は、いつものキーボードプロトコルの解析と同じ。でも、今回は、スーパーなアナライザを使用した。それが、秋月で12,500円もしたこいつ。。。。
いままではWin95マシンのパラレルポートを使用した、超プアーなロジアナだったが、これなら使い勝手は抜群?
さっそくキャプってみた。
とれてる、とれてる。。。MPX1とMPX2は同じなんだ。。。
リング型のネットワークと書いてあったが、トークンリングとは違って、バスの両端をくっつけただけなのかもしれない。
しかし、すごい回線使用率である。Ethernetと同じCSMA方式なのに、大丈夫なのか??パワーFCを割り込ませているから、純正ECUが悲鳴をあげているのか??
さて、このロジアナにはCANとかLINをアナライズする機能はあるのだが、このВЕАΝのようなトヨタ独自のクソプロトコルは解析できない。
仕方ないので、自分でフィルター作って表計算ソフトに読み込ませることにした。
うむ~、わからん。このMES-IDが何者かわからんことには。。。。
なんとか法則性を見つけないと。。。。
気分はゲームデーターの改造かな?
(テクポリとかで、よくやってた、あれ)
②電気負荷が働かない
100のパワーFCにはELSとELS3という信号があって、それぞれテール、電動ファンに対応する。テールは意味不明なので電動ファンでアイドルアップを試みた。しかし、110の電動ファンの信号はオン・オフではなくパルスだったりする。仕方ないのでLPFを付けてごまかしたけどELS3が点滅してアイドルアップしない。ぜんぜんだめなのでELS3は切り離した。ちゃんとマイコン制御しなきゃだめか。
③ISCVの調整不具合でアイドリングが高い
ISCVについては可変抵抗で感度を調整できるようにしてあるのだが、感度を異常に低くしないとアイドリングが落ちない。ただ、感度を異常に低くすると、A/Cオン時にちゃんとアイドルアップしない。と、モニタリングして気づいたのだが、パワーFCはISCVを1~125段階の30より小さくすることなない模様。30というと、そこそこスロットルが開いている状態。しかし、110のスロットルは全閉時でも最低限アイドリングできるだけスロットルが開くように設計されている。つまり、アイドリング時の最低スロットル開度は「最低限スロットルが開く量+ISCV30の開度」になってしまう。これだからアイドリングが1200を超えてしまう。ということで、ISCVのオフセット値を調整できるようにする必要がありそうだ。たとえばISCVが1~30は無視するように、とか。
100のパワーFCにはELSとELS3という信号があって、それぞれテール、電動ファンに対応する。テールは意味不明なので電動ファンでアイドルアップを試みた。しかし、110の電動ファンの信号はオン・オフではなくパルスだったりする。仕方ないのでLPFを付けてごまかしたけどELS3が点滅してアイドルアップしない。ぜんぜんだめなのでELS3は切り離した。ちゃんとマイコン制御しなきゃだめか。
③ISCVの調整不具合でアイドリングが高い
ISCVについては可変抵抗で感度を調整できるようにしてあるのだが、感度を異常に低くしないとアイドリングが落ちない。ただ、感度を異常に低くすると、A/Cオン時にちゃんとアイドルアップしない。と、モニタリングして気づいたのだが、パワーFCはISCVを1~125段階の30より小さくすることなない模様。30というと、そこそこスロットルが開いている状態。しかし、110のスロットルは全閉時でも最低限アイドリングできるだけスロットルが開くように設計されている。つまり、アイドリング時の最低スロットル開度は「最低限スロットルが開く量+ISCV30の開度」になってしまう。これだからアイドリングが1200を超えてしまう。ということで、ISCVのオフセット値を調整できるようにする必要がありそうだ。たとえばISCVが1~30は無視するように、とか。
