Darkside(リンクエラー修正しました)

<< 前のページ

2018年9月21日(金) 21:17

膨れる配線

 PICKit を使うと、基板から抜かなくてもPICのプログラムを書き込めるかもしれない。
 しかし、ここで気付いた。書き込みには常識的に、外部リセットが必要だ。つまり、基板上でMCLRを有効にしておかねばならず、MCLRを入力ピンとして使えなくなるのではないか?
 MCC上でMCLRを無効にできなかったのは、オンボード書き込みをしない、という選択肢がどこかに存在し、それを選んでおかねばならないのかもしれない。

 PICのI/Oピンは至高の貴重品なので、たとえ書き込みをオフボードで行わなければならなくてもMCLRを入力ピンに使いたい場合は多い。

 いっぽう TWE LITE は、元からオンボード書き込み前提である。DIPであっても、ライターとの接続端子は独立で用意されており、DIPソケットに差し込まなくても書き込みができる。
 送信機を分解することなく書き込みできるよう、必要な5本の信号線を引き出す。
 筐体パーツに穴を開け、コネクターを取り付けたい。

 その後MCCをいじっていると、Notification に説明が表示されていた。
 Low-voltage Programming を Disable にすればMSLRを無効にできる。これで解決

 PICソケットは、当初予定通りに接着できた。
 これで、送信機を分解せずにPICを抜き差し可能である。MSLRは、入力ピンのままで行ける。

 TWE LITE の書き込み用コネクターは、中央手前に設置することになる。

 後から取り付けるパーツの位置を、頻繁に確認する。改造に使用するパーツや配線が干渉したら、一巻の終わりだ。作業は、慎重に進めねばならない。
 配線が、どんどん邪魔になる。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月20日(木) 21:27

PIC16F1827

 さて、PIC16F88 であと20年戦えそうな気分になってしまったが、現実的に考えると上位互換品が存在するはずだ。
 PIC16F88 だって、PIC16F84A から乗り換えた。どうせなら、より新しいPICを使った方が長く戦える。将来バトルタンクを更にバージョンアップさせたくなった場合でも、使用PICが新しいほど入手性が良いと推定できる。
 また、PIC16F88 の8MHz 動作には、難点もある。それは、クロックの精度が低いこと。ラジコン互換のサーボパルスを生成するとか、コイルガンの通電タイミングを図るとか、ある程度の精度が欲しい場面は多い。そんな場合に外付けのクロックを使用すると、I/Oピンを2本消費してしまう。

 マイコンにとって、I/Oピンは超絶貴重な資源である。使用したいI/O数を単一のPICで賄えるか否か、は回路作成の面倒さを決定的に左右する。

 調べると、PIC16F1827 が有力後継のようだ。実売では、PIC16F88 より安い。それでいて性能は上なのだから、さっさと乗り換えるべきだろう。最初は設定の違いでトラブルになるだろうが、明らかに今の内に移行すべきだ。
・内部クロックが32MHzまで可能になったうえに、精度1%に高まっている。これだけでも、時計以外の大半の用途が内部クロックで可能となる。
・10ビットADCが5チャンネルから12チャンネルに増えているので、現在作業中の用途でも追加のアナログボタンを読む余地が生じる。
・ブラウンアウトリセットの電圧が、2.5Vと1.9Vの選択式になった。今回の自分と同様のハマりが続出したのだろう。


 あと、電源1.8〜2.5Vでクロック16MHzまで。電源2.5〜5.5Vでクロック32MHzが可能な模様。
 エネループ2本直結16MHzでADCが使えるならば、16MHzでもいい。直結可能だと、それだけ回路は単純で済むしコストも下がる。

 更に朗報として、遂にMCC対応しているPICだった。

 ただし、MCLRが無効化できない。選択肢としては出て来るが、設定できない。設定画面も分かり難く、MCC無しでも設定できる能力がないと役立て難いかもしれない。
 それでもMCCに対応しているというのは主流感があり、選ぶに値するPICだろう。

 一方で、秋月のPICプログラマーV4が対応していない。
 PicKit4で書き込むためのボードを作る必要がありそうだ。
 

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月19日(水) 21:45

遂に解決

 3.3Vに昇圧したが、動かない。PICのピンから、何の信号も出力されない。

 基板はかなり単純であり、紛れる余地がない。それでも何かミスしたかもしれないので、TWE LITE 試験基板の空き地にPICソケットを取り付け、秋月DC-DCで3.3Vを供給してやる。
 更に、XC8の設定が間違っているかもしれないので、アセンブラでLチカのプログラムを組んで書き込む。

 だが、それでもLチカに失敗。PICは完全に沈黙したままだ。
 さすがにここまで来ると、原因の可能性は絞られる。PICを3.3V動作させた実績はあるが、たいてい5Vでしか使わないため、何か忘れている可能性が高い。動作電圧の差により発生するトラブル、に絞ってネット検索する。

 その結果、犯人がブラウンアウト・リセットであると判明した。
 BODEN_ON になっていると、電源電圧が4V以下になるとリセットが掛かる。よって、3.3V電源では最初から動作しない。
 話は単純だった。BODEN_OFF にすれば、3.3VですんなりLチカが動作した。立ち上がりの速い電源なら、問題は無い。
 もちろん、液晶ディスプレイへの表示も成功した。

 RA4から読み込んだエネループ2本の変換値は792と表示され、これは2.552Vに相当する。テスター測定結果と、しっかり合致している。

 更に、MCLRのプルアップ抵抗も除去し、MCLRを使用しない設定にする。
 MCLRを使わなければ、プルアップなしでもPICは動作する。最大限にピンを開放し、XC8でも16本のI/Oが使えるようになった。

 配線が邪魔になりつつあるので、固定できるものは固定しておきたい。
 動作確認できたので、PIC基板部分をオートウエルドで接着する。

 設定1つのせいで、何日か遠回りしてしまった。とは言え、I2Cレベル変換と3.3V電源は、いずれにしろ必要だった。実際には、それほど遠回りしてしまった訳ではない。
 それにこれでPIC+C言語のノウハウも溜まり、PIC16F88 の有用性が更に高まった。特に、8MHzで処理が間に合う場合には。

・小さくて扱い易い18ピンDIPという形状。
・それでいて8MHzならI/Oピンを16本も使える。
・ソフトウェアI2Cでマスターになるのが簡単(I/Oピン2本だけで液晶表示)。
・C言語でも案外大規模なソフトが組めて実用になる。
・消費電力が小さく、3.3Vでも5Vでも動作する。
・I/Oピンは20mAまで直接ドライブ可能(dsPICは4mAまで)。

 8MHzなら、外付け回路が事実上必要ない。パスコンだけだ。基板の準備が楽で、18ピンしかないのに液晶表示したうえでI/Oピンが14本使える。10ビットA/D変換も5系統使える。
 小規模処理のエースである。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月18日(火) 21:26

PICの仕様

 バトルタンクに戻る。

 状況を確認するため、I2C変換基板の出口、液晶ディスプレイ側で信号線をチェックしてみる。オシロで見ると、5Vプルアップ状態から全く変化しない。最悪でもクロック波形は出現するはずなのに、何も出ない。電源リップルが良く分かるだけだ。

 基板を幾ら調べても、おかしなところはない。各所の電圧は想定通り。配線も単純で、紛れる余地はない。調べても調べても、どこも間違っていない。何もおかしなことは起きていない。
 PICが動作しない、というただ1点を除いては。

 そこで、PIC16F88 の仕様を再確認する。そして、気付いた。
 PIC16F88 は確かに2V動作可能であり、エネループ2本の2.4Vで動作可能だ。しかし、2V動作できるのはクロック4MHz以下の場合に限られる。
 8MHzで動作させるためには、電源電圧は3V以上を要する。

 ならば、4MHzに落とすか?
 それで処理は間に合うのだろうか?

 少し悩んだが、すぐに悩む必要は無くなった。なぜなら、A/D コンバーターを動作させるのに2.5V必要という制限もあったから。
 バッテリー電圧をモニターするため、A/D を使いたい。そうなると、2.4V動作という選択肢は無くなってしまう。3.3V動作に変更するしかない。

 諦めて、秋月の昇圧型DC-DCコンバーターを追加。
 話はそれだけでは済まない。A/D に使う RA4 周りも回路変更だ。

 元の構想。
 エネループ2本直結で動作させ、A/Dコンバーターの基準電圧も電源とする。そして A/D ではシャントダイオード 2.048V を測定する。普通は基準電圧を安定させ、A/D 入力を変数にする。そうではなく逆に、A/D 入力を安定させ、基準電圧を逆算するという手法だ。

 それを普通に、電源3.3V安定化=A/D 基準電圧とし、エネループ2本の電圧を A/D で測定するように修正。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2018年9月9日(日) 22:40

行き詰った

 いきなり、行き詰った。

 秋月のI2Cレベル変換基板を挿入したが、液晶画面は全くの無反応。
 各所の電圧は、すべて想定通りに供給されている。
 配線ミスをチェックした結果、液晶のリセット端子を接続し忘れるという大ドジを発見。解消させたが、症状に変化無し。

 この液晶ディスプレイはコントラストもソフト的に設定するようになっているため、何も表示されないとなったら本当に何も表示されない。うっすらと■が浮き上がるようなことも無い。
 動いている分には良いが、いざ動かないとなったら手掛かりが無い。

 PIC16F88 とのコンビで動作確認済みなだけに、ここで動かないのは想定外であり突然の壁だ。だが、原因を究明しないと、今後この液晶ディスプレイを使えなくなる。この薄さコンパクトさは魅力なのだ。

 ところで5Vの赤い配線は、秋月の耐熱ワイヤーである。撚り線で、細くて、耐熱被覆。3拍子揃っている。
 だが、惜しいことに太い。ヒロセテクニカルのものは、ワイヤーストリッパーを使うときに芯線0.4ミリが適合する。だが、秋月のは0.5ミリだ。両者の差は明白で、もう剛性がまるで違う。ヒロセの配線に慣れると、秋月のは全く使う気になれない。配線は膨大な量になるため、ちょっとした差が馬鹿にできない。

 残念ながら、これでも秋月で売っている一番細い奴だ。もっと細いのが必要だ。
 ただし、当然ながら大きめの電流が必要な配線もあって、そういう場合には秋月の出番もある。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4