06. PICマイコンに挑戦「.asm/HEXファイルをダウンロードして書き込む方法」? 2009/11/14
1.HEXファイルをダウンロードして書き込む方法は?
☆イントロ
プログラム済みのPICマイコンを使ったL/Cメーターキットを組立て、半田付け=完成 となって、ちょっともの足りない感じがしてましたので、部品集めをしてプログラムをWebからダウンロードしてPICマイコンに書き込みする「周波数カウンタ」を作ることにしました。
☆どうする?
CQ出版本「PICを使った簡易測定器の実験」を購入しました。
付録のプリント基板に電源と周波数カウンタを実装したところ
これは、①周波数カウンタ、②電圧&電流計、③コンデンサ容量計、をPICマイコンで作る物で、プリント基板が添付されています。
この本は、ハードについてはかなり初歩的な説明がされています。プログラムについても簡単な説明がなされています。
しかし、元ハード人間にとって最も困難な「プログラムをWebからダウンロードしてPICに書き込みする」事については、全く説明されていません。(今や常識なのですね)
「本書で紹介したプログラムは筆者のホームページからダウンロードできます。このプログラムをPICに書き込んで使ってください。」と書かれているだけです。
☆さて、困った。どうしょうかな!
ホームページに、PICマイコンに書き込みしてくれるサービスをしていましたので、メールで依頼して、PICマイコン込みで2個で750円を振り込み手続きしました。
部品はPICマイコン、LCDユニット等の一部の部品以外は、ほとんど手持ちが有りましたのでPICマイコン等を通信販売依頼しました。
通販の部品が来たので半田付けをしました。部品点数は18点ほどなのですくに終わりました。ただし、LCDとの接続はプリント基板が14P一列ですが、LCDユニットは7P二列しか無かったので、変換接続しなければなりません。
プリント基板とLCDユニットの1番ピン(+5V)と2番ピン(GND)が逆になっています。ホームページに注意書きが有ったので助かりました。
プリント基板は1番がGND、2番が+5Vです。LCDのマニュアルをよくよく確認してください。LCDユニットとの接続は後にします。
LCDは上一列(14P) LCDユニット裏側、2列(7P×2)
なお、この周波数カウンタをディスクリート部品(C-MOS
IC等)で作ると20~30点にはなると思います。かなり昔に作ったことが有ります。
あとは書き込みされたPICマイコンが到着するのを<spanlang=en-us>(寝て?)待つだけです。
☆しかし、このまま待っていられないのがアマチュアです。
何とかホームページからプログラムをダウンロードしてPICマイコンの書き込みが出来ないか、奮闘しました。(汗)
これからが元ハード技術者の奮闘記です。(こんなのは常識と笑わないでください。恥を書き?ます)
まず、Webで探しましたが、常識となっている為か詳細に書いたものが見あたりません。
ほとんどが「HEXファイル(ヘキサファイル)
をダウンロードして書き込む」となっています。何をどの様に操作するのかが解らないのです。
昔々N88-BASICで遊んでいましたが、このPICマイコン関係技術はハードとソフトの中間の感じです。
とりあえずPICマイコンに書き込みするには、PICライターが必要です。
これは何年か前(2年前?)に(株)アドウィンの「キットで遊ぼう、電子回路、PIC入門C言語編」(本と簡単な部品)とそこで説明している「PICライターキット」(PICライター器、USBケーブル、USBドライバー(CD)、書き込みソフト(CD)、)を購入したのが有りました。
これは購入した時に少しやりましたが書いてある通りに動かないので、すぐにダウンしてました。
(動かない理由は、今解ったのですが・(後述)) 注)PICマイコンを直接書き込むPICライター部分ををPICライター器と表記した。
購入した入門書と付録(回路部品キット) PICライターキット
☆やるしかない
説明書(本)では、最初にC言語のプログラム開発ソフトをインストールするようになってますが、今回はプログラム開発はしませんので、USBドライバーと書き込みソフトを説明書(本)にしたがって付属のCDからダウンロードしました。
「PICライター」をパソコンのUSBに接続します。USBドライバーを説明にしたがってインストールしました。特に問題なくできました。
次に書き込みソフトをインストールして、起動したらエラーが出ました。「COM1」・・・何とかと出てます。COMポートの設定が必要です。
ここは説明書に従って設定、確認できました。
再度、起動しました。無事に下記の画面となって、左側に「com3」と中央付近に「K128 board
cnnected」と表示されてパソコンがPICライター器を認識した事になります。
書き込みソフト画面 PICライター器
なお、この「キットで遊ぼう、電子回路、PIC入門C言語編」(本と簡単な部品)は、USBドライバー、書き込みソフトについては、説明のミスプリントは少なかったのですが、プログラム作成の部分は説明不足、小表題と内容が違う、記述のミス等々大変多くて正誤表がホームページに出ていますが、説明不足、小見出しの間違え等については、そのままです。(途中でダウンしたのは、これが原因だった?。今は3版が出ているようです)
本の内容について、 2009/11/19追記
質問も含めて、(株)アドウィン社とメールでやりとりしました。
メールでの対応は、非常に丁寧で満足いくものでした。結局、本は第3版を無償で送って頂きました。ミスプリントはほとんど修正されていました。
ただし、説明の構成やタイトル、説明不足と思われる点は、第一版と変わっていませんでした。
「PICライター」に関しては、ここまでは比較的順調でしたが!。
☆次からが問題です。
まず、周波数カウンタの筆者のホームページからHEXファイル(ヘキサファイル)をダウンロードします。
ホームページの
■プログラムのダウンロード
◎簡易周波数カウンタ
・ソースファイル
・HEXファイル(クロック20MHzバージョン)
の・HEXファイル(クロック20MHzバーション)をクリックしました。(いつものように左クリック)
ところが、中身の2834 3FFF 3FFF ・・・と16進一覧表が画面に表示されてしまいます。
いろいろ、いろいろ、やりました。いろいろやっていたら、下記の画面のように「ファイルのダウンロード」画面が出ました。(いつものように左クリック)で、前回まではこれが出ずに、いきなり16進の表が出ていたのです。
真ん中に「ファイルのダウンロード」が出た
その後は、何回やっても、次の日もチャンと出ます。これでやると当然HEXファイルでダウンロード、保存できますのでそのまま書き込みソフトに取り込んで書き込みできるはずです。
その後、実は恥ずかしながら小さく書きます。
上記で(いつものように左クリック)と書いてありますが、周波数カウンタの筆者に「ダウンロード出来ない」と問い合わせをしました。
「右クリックでファイルの保存を」と親切に回答を頂ました。
これが正式なダウンロード、保存なのですね。知りませんでした。(いつものように左クリック)で「ファイルのダウンロード」が出ていましたので、その他の方法は知りませんでした。ごめん。いずれにしても、ダウンロードして保存できました。(汗)
☆いよいよ完成に向かって
書き込みソフトを起動します。
書き込みソフトの画面 PICマイコンをセットしたところ
PICマイコンをPICライター器のソケットにセットします。
レバーの方が1番で、18ピンと書いてあるところに差し込んでレバーを倒します。(8ピン~40ピンまで有る)
書き込みソフトのLoad→yesをクリックすると、HEXファイルを求めて来るので、先ほどダウンロードしたファイルを設定し開きます。
書き込みソフト画面に16進数文字の羅列が表示されます。(上の写真)
ここで、説明書に書き込みソフトの不備で4カ所ほど設定を修正する、となっていたので設定変更しました。
Programをクリックするとyes/noが出ますのでyesをクリックすると書き込みを開始します。
Program、yesをクリックしました。スケールが動いて書き込んでいるようですが、最後にエラー画面が出て失敗です。
4カ所の設定を修正した部分が元に戻っています。再設定です。
再度、Program、yesをクリックしました。時間スケールが動いて、Programming
completeと表示が出て、PICマイコンにデータが正常に書き込まれました。
エラーが出たら、不備の4カ所の設定、com3(時々comxとなって認識して無いときが有り、書き込みプログラムを再起動する) は表示されてるか、他に設定するところが無いか、設定等に違いがないか等を確認してください。
画面のHEX表示を消して(いろいろやって)、Readをクリックして書き込んだ内容を読み出したつもり。
書き込んだ内容が表示されました。これで確認できたのかな?。この確認部分は説明書には有りません。
なお、説明書のプログラムの不備で4カ所の設定を修正するところは、PICマイコンを変えたりクリックしたりすると元に戻ってしまうので、その都度、書き込み前に確認して修正する必要が有りました。
ここまでで何時間か経過しています。KKHで何とか出来ましたが!!。(経験、感、暇)
☆最後の追い込みです。
LCDユニットとの接続をしました。1番と2番を入れ替えて、後は番号通りに接続しますLCDの方だけに脱着できるメスコネクターをつけました。
書き込んだ「PICマイコン」をソケットに入れました。(方向とピン番号確認)5VのDC電源を加えました。
電流は17mAぐらいですがLCDに何も表示が出ません。
コントラスト調整の半固定ボリュームを右に回したら文字が出てきました。
右に一杯にしました。電源を入れる前に右に一杯に回しておいた方が良いと思います。
オーディオ発信器から約100kHzを入れて発信器のレベルを調節したら左写真のように表示されました。
DIPスイッチを設定すると指示どおりに動作しました。
PICマイコンは正常に動いているようです。
あっけなく周波数カウンタが完成しました。 max 32MHz
入力レベルは内部のコンデンサー(信号が通る C1と C2(0.1μF))の値を大きくしないと、500Hz以下の周波数では感度が悪くなります。
高周波だけ測定するのならこのままで良いですが、100Hz付近まで測るのならC2=0.1μFに並列に10μFを付ければ良いと思います。
最小入力電圧は、高周波(約50kHz以上)では10mVrms、低周波(100Hz)では150mVrms
左写真はオーディオ発信器から約100kHzを入れて測定。 右写真はクリスタル発信器をブレッドボードに組んで入力しました。240Hz高く表示してますが、1/8のプリスケーラーを入れてるので精度が悪くなって真値は不明です。
☆終わりました。
ここまでやると、今度はプログラミングが出来るようになりたいと思ってきました。
とりあえず、周波数表示の後ろが空いていますので、ここにコールサインを出す。とか?。
元ハード技術者の奮闘記ですが、「HEXファイル(ヘキサファイル)をダウンロードして書き込む」の全体のまとめをしておきます
2.
1.PICライターキットを購入する。(PICライター器、USBケーブル、USBドライバー(CD)、書き込みソフト(CD))
USBドライバーと書き込みソフトのインストールは別途 済ませておくこと。(方法は取説による)
2.ホームページ等から公開されている必要なHEXファイルを右クリックしてダウンロード、保存する。
ダウンロードしたファイルのアイコンはデスクトップに出しておく。
3.PICライター器をパソコンに接続し、書き込みソフトを立ち上げる。
前のファイルが表示された場合は、File→Clearで消しておく。
この画面でPICマイコン型番(品名)をセットする。(右側ソケット画下)
4.PICライター器にPICマイコンをセットする。位置、方向確認。
パソコン画面でPICマイコン型番(品名)を確認する。com等を確認。
5.書き込みソフトのLoadをクリックすると、HEXファイルを要求してくるので、デスクトップに有るHEXファイルをクリックして開くをクリック。
画面のPICマイコン型番(品名)を確認する(違ってるとマイコンがNGに!)
6.書き込みソフト画面に取り込まれたHEXファイルの内容(16進)が表示される。
7.Programをクリックし、yes onを聞いてくるのでyesをクリックすると書き込みが始まる。(時間スケールが動く)
Programming
completeと表示が出て。PICマイコンに書き込まれた。
以上で書き込み終了。
※たったこれだけです。解ってしまえば、至って簡単です。これでたぶん"常識"になったと思います。
詳細説明
1.「PICライターキット」(PICライター器、USBケーブル、USBドライバー、書き込みソフト)を購入します。
これはWebにいろいろ販売されています。7k~8k~数10k円ぐらいです。また組立てキットも有ります。
書き込み対象のPICマイコンの品名(型番)を良く確認しておく必要が有ります。
16F84A(18ピン)、16F88(18ピン)がよく使われていますが、8ピンから40ピンまで対応するものが良いと思います。
2.PICライター器をパソコンのUSB端子に差し込みます。USBドライバーを説明書に従ってインストールします。
3.書き込みソフトを説明書に従ってインストールします。
4.書き込みソフトを起動しCOMポートの設定を行います。(違ってるとエラーが出ます)
①パソコンのデバイスマネージャーでcomポートを確認し番号(com3等)をメモする。
②書き込みソフト画面の左上のFile→Port 画面に数字(com3だったら3)を設定する。書き込みソフト画面の左側にcom3と・・・board cnnected等の文字が出ればパソコンがPICライターを認識した事になります。
5.書き込みソフト画面にPICマイコンの型番を設定するところが有るので16F88等の設定をします。
6.書き込みするPICマイコンの位置や方向を確認してPICマイコンをPICライター器の書き込みソケットにセットします。(位置、方向要注意)
7.必要なホームページからHEXファイルをダウンロードします。
この時はzipファイルが多いようですが、そのファイル内に解凍した場合はコピーして、デスクトップに貼り付けておくと開く時に見やすいと思います。
通常は、そのホームページのHEXファイルを右クリックして「ファイルの保存」をクリックしてダウンロードします。
8.書き込みソフトのLoad→yesをクリックすると、HEXファイルを求めて来るので、先ほどダウンロードしたファイルを設定し開きます。
書き込みソフト画面に16進数文字の羅列が表示されます。
7.Programをクリックするとyes/noが出ますのでyesをクリックすると書き込みを開始します。
9.時間スケールが動いて、Programming completeと表示が出ればPICマイコンにデータが正常に書き込まれた事になります。
10.エラーが出たら、com3(時々comxとなって認識して無いときが有り、書き込みプログラムを再起動する)は表示されてるか、他に設定するところが無いか、設定等に違いがないか等を確認してください。
その他の書き込み画面の操作 (いろいろやって調べましたが違ってるかも?)
・Blank→Eease Check ◎Erase Cip→OK でPICマイコンに書き込んだデーターが消える。要注意
・画面上のFile→Clear no で画面データが消える。要注意
・Read→ でPICマイコンに書き込んだデーターを画面に書き出して表示する。
・Velfy→PICマイコンに書き込んだHEXデータを読み出して画面のHEXデータを比較する。合っていれば画面は変わらない。
・その他に、操作中にSave をするか聞いてくる画面が出ますが、KKH?(経験、感、暇)でやると意図しない書き込みをしてしまう事が有りますので注意が必要です。(全て0を書き込んだり)
・ここに書いた、com3、board cnnected、PICマイコン番号(16F88等)、Load、Program、yes/no、Programming complete等々は「PICライター」のメーカーや型式によって違います。
☆おわりに
私が電気に興味を持ったのが小学3、4年生ごろだったと思います。
学校でベルを作る授業が有り、エナメル線を巻いて作りましたが誰も音が出ません。次の日だったと思いますが、突然私の作ったベルがけたたましく鳴り響きました。クラスで一番最初に鳴ったのです。
みんなの羨望の眼の中で得意でした。なぜ鳴ったのかは解りません。
それから1年位後だったと思いますが、今度はモーターを作る授業が有り、これもエナメル線を一生懸命に巻いてやりましたが、簡単には回りません。エナメル線が焦げる臭いや油の臭いをかぎながら、みんな一生懸命にやりました。
1日か2日過ぎたと思います。これも私の作ったモーターが一番初めに回り出しました。みんなはまだ回っていません。
これで「僕は電気の天才だ」と思い込んでしまったのです。そして、一生の仕事==趣味となってしまったのです。
今思うと終戦後の1~2年で食べる物も無い時に、木の葉っぱやサツマイモのつるを食べてた時に、こんな授業をしていたのです。もう技術立国を考えていたのでしょうか。先人に感謝感謝です。
その後、小学6年だったと思いますが真空管(ST管、0-V-1)でラジオを作り(ここまでは疎開先の田舎で)、高校(東京)で無線部に、学校が秋葉原に近かったので授業が終わると「アキハ」の探索の毎日でした。
後はST管、GT管、MT管、最新式のMT管で送信機、受信機を作ってJA1CPA開局(東京タワー、民間TV放送局開局多数、当時の皇太子のご成婚、新幹線やオリンピックも?だったかな?。ちょうど50年前)。
そしてソニーからゲルマニュウムのトランジスターが秋葉原に登場し、9R59の低周波部を半田付けして作って、指先ほどの部品で、ガンガンと音が出るのに驚嘆してました。
そして、ゲルマニュウムトランジスターからシリコンへ、さらに周波数も高く、パワーも大きくなってきました。FT-101を使っていた頃に、一番最初にトリオからオールトランジスタのトランシーバー、TS-120が出て、これからはトランジスターの時代とばかり、FT-101を下取りしてもらって買ったのを覚えています。
ロジックでは、TTL、SN、C-MOSと・・・。この後にマイコンが登場しマシン語の時代に、TK-80?(15万円もしたと思います。月給よりかなり高かったと思います?)を買ってマシン語ショコショコと、そしてこんなのは人間のやることでは無いと、この世界から足を洗ってハードに専念?。
ところがN88-BASICが登場して、またソフトの世界に(この辺は完全に趣味だけでした)ログ管理やサテライトをやってました。
そしてDOS-V機と共にソフト、ハードの完全分離。そしてまたPICマイコンでその中間をやろうと・・・出来るかな~。 でした。
この中で一番苦労(記憶に残っている)したのは、一番最初にラジオを作った時ではないかと思います。天才に気がついた?時より、鈍才に気がついた時?が記憶に残ってます。初めて音が出た時を今でも鮮明に覚えています。長文になるようなので、いずれ文字にしておきたいと思います。
3.「電圧/電流計」を作りました。(PICを使った簡易測定器の実験)
バー表示は電流に比例して長く。
部品点数(13点)も少なく 、一部を除いて手持ちの部品が有りましたので、半田付けしました。
だだし、基準電圧を作る「シャント・レギュレーター」(TL431)が無かったので」暫定的にダイオードをシリーズにつないで近似の電圧を作りましたので、表示された電圧/電流は正確では有りません。
PICマイコンの書き込みも順調にできました。
・トラブル
①電源を入れてもLCDに何も表示が出ない。(3~5秒通電を2回)
通常は1秒後ぐらいに文字か何か出る。プログラムが入っていない場合は薄くバーが出た。 2009/11/19
②チェック、チェックしたらLCDの1、2を入れ替えるのを忘れていた!!。LCDに±逆の電圧がかかった。
③LCDの裏の黒いIC部分を触ったら、かなり熱くなっていた。
④1、2を入れ替えて、電源を入れた。
⑤LCDの下部に黒いバーが表示されたが、文字、数字は出ない。LCDは大丈夫だったかな?。
⑥チェック、基板のLCD端子6番が未半田だった。半田付けした。
⑦電源を入れたら、0V、2mAと表示が出た。(基準電圧が暫定なので、0mAにはならないのかな?)
⑧12Vを加え負荷に100Ωをつないだら、写真の表示となった。
⑨半田付けを確実(誤配線、未半田、ブリッジ、半田付け不良、等が無く)に行えば100%動く。
⑩最初の周波数カウンタは、ノーミスだったのですが、2台目の「電圧/電流計」はミスが結構ありました。
なお、LCDの⑦~⑩番端子は使っていませんので接続の必要は有りませんでした。(一列二列変換時に要注意)
・仕様
電圧:0~25V(min100mV)
電流:0~2A(min1mA)
以前に自作した定電圧電源に内蔵できそうです。
・改造出来るかな
電圧は1/11倍、電流は11倍にオペアンプでアナログ的に減衰、増幅しているので、電圧は1/11倍しないで、そのまま加える。電流はさらに11倍すれば、電圧は10mV、電流は0.1mAから測れることになるかな?。
ただし、電圧は入力インピーダンスを高くし過電圧保護が必要か?。電流は精度は悪くなるかな?。表示はそのままなので電圧は1/10して読み。電流は10倍して読むことになります。
・シャント・レギュレーター(TL431)の入手待ち。
☆プログラムの一部変更について
プログラムが公開されていますので、一部変更して使いたいのですが。
ソースファイルを変更してHEXファイルにアッセンブルしたいのですが、開発と同じアッセンブラを使わないと出来ないみたいですね?。
このHEXファイルをPIC C liteで無理矢理やったら、Errorのオンパレード。アッセンブラの変換ソフトなんか無いのでしょうか?。
元のHEXファイルはmikroC、私が使い始めたのがPIC C lite。またバージョンによってもいろいろ違ったり、と。
KKHで、やってみます!!。 これって、間違っても けむり が出ないのがいいですね。hihi
・シャント・レギュレーター(TL431)ガ来ましたので取り付けて通電しましたが。
この本のタイトルは、簡易測定器となってます。
測定電圧、電流がゼロですが、LCDの電流が2mAを指してます。これは11倍しているオペアンプにオフセット電圧が有るためで、入力側は0Vですが、出力側に4~5mV出ています。手持ちに10個ほど有りましたので交換しましたが、どれも4~5mVでした。
測定に使ったマルチメーターの誤差も有りますが、オペアンプのカタログではmax3mVとなってました。
この本にも出ていますが、気になる場合は高精度オペアンプのNJM2119を使う必要が有ります。ソケットにすれば交換可能です。
これから箱に入れます。 NM2119入手中。
・オフセット電圧による電流の指示誤差について
電流がゼロで2mAの表示が出ていますが、全体で約30mA少なく指示します。
LCD指示値(mA) 実測値(mA)
2 28
13 42
40 69
60 90
93 124
1050 1029
これは、たぶんオフセット電圧による誤差ではないかと思います。別途検討します。
なお、電圧については指示との差はほとんど有りません。
・オフセット電圧の指示誤差の検討、その2、結論を出しました。
高精度オペアンプNJM2119に入れ替えました。残念。電圧/電流が共にゼロなのですが表示は1V/9mAと出ました。
オフセット電圧は12.5mVとなってます。カタログではmax450μVですが、どうやても変わりません。
オペアンプを元のLM2904(LM358)にもどし、オペアンプ出力に1kΩを繋ぎインピーダンスを下げたら、0mAと指示しました。
これでLCD指示と実際の電流差は約6mAとなりました。そこで測定する出力部分に4.7kΩを繋ぎ常に電流を流しておくようにしました。
これ以上抵抗値を小さくすると、LCD表示がゼロより多く1mAと出てしまいます。これで測定して見ました。
LCD指示値(mA) 実測値(mA) 誤差(%)
0 0 0
1 1.4 28.6
6 7.0 14.3
13 14.0 7.1
26 27.9 6.8
124 127.6 2.8
1080 1090.0 0.9
最後はアナログ的に、この程度で良しとしましょう。(定電流ダイオードを使って、もっと追い込めば精度は上がると思いますが)
ケースに入れました。
電源装置に付けました。2009/12/12
4.周波数カウンタをケースに入れました。(PICを使った簡易測定器の実験)
max 32MHz
5.L/Cメーター(キット)を作りました。(キット購入品)
6.LCメーターを作りました。 一番使いやすい ! ! ! !
(CQ誌2009年11月号、簡易微少LCメーターの製作)
いろいろ問題が有りましたので、少し詳しく書きます。
①CQ誌に掲載されていた回路図
②半田付けするには、回路図を裏から見る必要があります。
回路図を鏡に写して写真でパチリ。
特許ものです? hihi
③半田付け終了しました。
部品面(後でコンデンサーの一部をタンタルに変更してます) 半田面
④HEXファイルをCQ出版のホームページからダウンロードして書き込んで通電しました。
表示が変です。左写真は1000PF測定中。右写真は103(0.01)を測定中。
配線が蛇の目基板でワイヤー配線なので、どこか違っているのか?。2日間悩みましたが、ソフト関係か。
⑤CQ誌の記事はPIC16F628Aですが、VK3のサイトの原案はPIC16F628です。また、サイトをいろいろ検索したらPIC16F648Aで動いたと出ていました。
そこで、PIC16F628, PIC16F648Aを入手してやりましたが、結果は同じでした。
どうも、書き込み器が怪しい!!。
⑥HEXファイル(ヘキサファイル)をアスキー表と首っ引きで、シコシコと比較しました。
左はダウンロードした表に文字を当てはめたもの。
右はそのファイルを書き込み器に取り込んだもの。同じはずです。
詳細に比較したところが、左の表の真ん中から右半分が、右ではカットされています。単語が途中から切れています。
上の右写真のCaliingはCaliとingの2つの単語がくっついたものでした。
メインファイルも比較しましたが、抜き取りなので違いは解りません。
これは書き込み器の書き込みソフトのバグではないかと疑いました。
もちろんPICマイコンの型番は合っています。
⑦書き込み器のバージョンはv141204です。いろいろ探したらv150807が見つかりました。このバージョンは本来はPICマイコンの型番を追加するもののようです。
試しにダウンロードして、書き込み器にLoadして見たら、チャンとOver Range Calibrat 等、書き込む前と同じで、正しく書き込まれたようです。
バージョンアップについて 2010/4/4追加
このPICライターのバージョンアップについて、このPICライターを購入した、アドウインに聞きましたが、バグ修正等を含めて、対応しないとの事でした。
不満の場合は,返品してほしいとのことでした。 (これは困った!!)
⑧早速、書き込んで通電!!。出ました!!。 16F628/16F628A/16F648A 全て動きました。
10PF測定中 コイル測定中
⑨ケースに入れて完成です。いろいろ測ってみました。
スイッチはC、端子オープンでゼロセットスイッチを押してキャリブレする。 この線で0.4PF
捩って1.2PF 1PFのセラミックコンデンサー
スイッチはL、端子ショートでゼロスイッチを押してキャリブレする。 1ターンで0.01μH
線のクロス部分をオープンにしてコイルを大きくすると0.02μH 100μHマイクロインダクタ
絶対値は不明ですが、良く追従しています。微少LCが測れるので非常に有効です。
良くできています。 これはおもしろい!!。これは使えます。 操作も超簡単です。
☆操作 (ゼロセットスイッチ:LCD表示部の左下のオレンジ色ボタン)
・コンデンサー(C)測定
①LCスイッチを C にする。 ②電源スイッチを入れる。 ③端子はオープンのままゼロセットスイッチを押す。
④表示が C=0.0pF となる。 ⑤端子に測定コンデンサーを繋ぐ。⑥測定範囲:0~0.1μF
・インダクタンス(L測定)
①LCスイッチを L にする。 ②端子をショートする。 ③電源スイッチを入れる。 ④ゼロセットスイッチを押す。
④表示が L=0.00μH となる。 ⑤端子のショートを外し測定インダクタンスを繋ぐ。⑥測定範囲:0~10mH
その後、書き込み器を純正の PICkit2 にしました。
☆☆☆勢揃い
左上:CQ誌2009年11月号簡易微少LCメーター(電池動作)
右上:L/Cメーターキット組立品(電池動作)
左下:周波数カウンタ(電池動作)
右下:電圧/電流計
電池(006P)はマジックテープで付けてます。
7.蛇の目基板で周波数カウンタを作り、半分の大きさにしました。 de JA1CPA/中村 2009/12/7
目次に戻る
本「PICを使った簡易測定器の実験」付属の基板に比べて、半分の大きさで出来ました。
LCD表示器の裏側に部品基板が有ります。
下側に電源部(78L05+コンデンサー等)が有りますが、右側に移動すれはもう少し幅を狭くできます。
半田面
部品面(半田面とは上下反対です)
上下幅を狭くして、LCD液晶モニターより狭くしました。(半田面)
注)これは配線確認はしていません。
(部品面)
8.Cメーターをケースに入れて完成しました。(PICを使った簡易測定器の実験) 2009/12/12
目次に戻る
1000pFによる較正と端子オープンでキャリブレを1回すれば、EEPROMにメモリーされるので、
次からは電源を入れて直ちに測定できます。
他のLCメーターは、電源を入れて必ずキャリブレをする必要が有ります。 使い勝手は一番です。
・銘板について
写真用の比較的薄い光沢紙を使ってます。
穴は「消しゴムはんこ専用彫刻刀」の丸刀小を使ってます。非常に良く切れます。(安いので)
貼り付けは両面テープで付けてます。
・電源について
PICマイコンの電源は5Vです。消費電流は全体で10~20mAです。
小型にするために006P(9V)を使い78L05で5Vにしています。
・ケースについて
PB-2透明(タカチ)、SK-16透明(秋月)は同じ大きさです(109×79×32)。(Cメーター、LCメーター、L/Cメーター(キット))
112-TM(秋月)は蝶番式角穴付きです。(116×83×39)(周波数カウンタ)
SW-N100G(タカチ)(98×64×35)(電圧/電流計)
9.
10.アセンブリ言語で書かれたソースファイルをHEXファイルにアセンブルする方法は?
××.asmファイルを××.hexファイルにするには? de JA1CPA/中村 2010/2/6 目次に戻る
「はじめてのPICアセンブラ入門」光永法明+後田敏共著CQ出版 に比較的簡単な方法が出てました。
普通はMPLAB IDE(エムピーラボ・アイデーイー)をインストールして立ち上げてプロジェクトの設定、PICマイコンの選択、ソースプログラムの作成又は入手、それをHEXファイルにアセンブル(変換)して、PICマイコンに書き込むことになります。
ここで私のような初心者にとって難解なのが、プロジェクトの設定に関連した各種操作です。
どこかのステップで操作を間違えると、当然ですがアセンブル(変換)できません。
上記の書籍の226Pに簡単にできる方法が記述されていました。詳細はその書籍によりますが、簡単に書くと次の通りです。
1.MPLAB IDEをインストールしたときに一緒にインストールされている MPASMWINが有るはずです。これを立ち上げます。
2.初期画面が立ち上がると、Source File Name:にアセンブルしたいソースファイル(××.asmとasmの拡張子が着いたファイル)を指定します。
3.Assembleボタンをクリックします。
4.MPASMの小さい画面とエラー画面が出ます。OK、OKを押して、この画面を一端消します。
5.次にもう一度、Source File Name に先ほど指定したファイルが有るのを確認して、Assemble をクリックします。
6.再度、MPASM画面が出て、「100%」と表示が出ます。OKを押して終了します。
7.ソースファイルと同じファイル名のhexファイルが出来ています。
要は、ファイルを指定してAssebleをクリックするだけです。
写真で説明
1.アセンブルするファイル(
.asm)を新規ホルダー(英数名)に入れて
デスクトップにだしておく。
2.MPASMWINを立ち上げる。(MPASMWIN V5.34)
3.何故かDOS画面も出る。
4.画面にチエックを入れるところが有りますが、デホルトのままにしました。ルするファイルを指定します。
6.左下の Assemble をクリックします。
1.このようなエラー画面がでます。「DOSにアクセス出来ない」
でしょうか?。
2.OKをクリックして消します。その下の画面もクリックして消します。
1.もう一度 MPASMWIN を立ち上げます。
2.先ほどのアセンブルしたいファイルが Source Mame に入って
いることを確認して Assemble をクリックします。
3.左写真のようにミドリバーに100%、Error : 0 とでれば OK を
クリックして終了します。
4.ファイルの内容に間違えが有るとエラーとなります。
1.新規ホルダー(英数名)を開くと、いろいろなファイルと共にHEXファイル
が有ります。(下から3番目)
2.PICライターで書き込む時は、このファイルを指定して書き込みます。
このレベルメーターは 「でんきざっか製作所 URL http://park.geocities.jp/denki_zakka/index.html 」
に出ていたものをコピーしたものです。(製作及び掲載に対して快く承諾して頂きました)
☆イントロ
PICマイコンで表示する電圧計や電流計はいろいろでていますが、ログアンプ出力をdBm表示するものは、あまり多くでていません。
特に16文字×2行のLCD表示器(SC1602BS*)を使ったもはあまり見かけません。
そんな中で、「でんきざっか製作所」http://park.geocities.jp/denki_zakka/index.html に目的の製作例が出ていましたので、その必要な部分を切り出して作らせて頂きました。 回路及び詳細については「でんきざっか製作所」のホームページを参照ください。
☆写真
入力ゼロで-91.7dBmを表示しています。
入力に対する直線性も出ています。
これにログアンプ(AD8307)出力を加えるのですが、
チョット、レベル合わせが必要です。
PICマイコンは、PIC16F873A
ソースファイルは、アセンブリ言語です。
おわり
JA1CPA