標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第487回]
●秋月のPICプログラマ対策
前回、MCLRを使わないモードで、さらに内蔵発振モードを設定したプログラムを秋月のAKI−PIC2プログラマボード(PICkit2互換)で書き込むとPICが破損してしまいます、ということを書きました(秋月のサイトにその警告が書いてあります)。
前回紹介いたしましたPIC18F2550のテストプログラムがまさにそのモードです。
以前、私自身がうっかりそれをやってしまって、PIC16F88を1個オシャカにしてしまいました([第396回])。
んでも、今になって考えてみますと、確かに内蔵発振モードは以前から使っておりましたが、MCLRを使わない設定となりますと、はて?そんな設定をして使ったことがあったかいなあ?とちょいとといいますか、はなはだ疑問を感じてしまいます。
ひょっとしますと、そのときは、ただPICを逆差ししてしまっただけだったかも、しれません。
事実、その後に逆指しをしてしまったことも書いておりますので([第396回])。
しかし、まあ、製造販売元が、やらないで、と警告しておりますことを敢えてやってみたって、それは何の得があることでもありませんから、ここは君子危うきに近寄らず、です。
それでは、どうしましょう?
ということなのですが、秋月のサイトの警告には、その下に対策として、
お手数ですが、基板上のICソケットではなく、5ピンの信号線を引き出して書き込みをしてください。
と書いてあります。
ほんと、お手数です。
お手数ですけれど、そうせよ、ということでありますから、そういたしました。
外部書込用の5ピンの引き出し線(コネクタは6ピン)は上の写真に見えているコネクタのpin1からpin5に出ています。
このタイプのコネクタは持っていません。
わざわざそれだけ買いに大須まで出かけていくのも面倒なことでありますから、直に引き出してしまいました。
本来ならば、ゼロプレッシャーソケットなどを使うべきところなのでしょうが、これも同様の理由で、それに今回はちょいとテストをしてみよう、というだけのことでもありますから、普通のICソケットを使ってしまいました。
28pinのナロウ(幅狭)ICソケットは丸ピンタイプしか持ち合わせておりませんが、丸ピンというのは抜き差しが固くて閉口いたしますから、ここも手持ちの20pinと8pinを使って28pinソケットの代用といたしました。
接続する5本のラインは、写真でもコネクタのところにシルク印刷されているのがなんとか見えます。
VPP、VDD、GND、PGD、PGCの5本です。
これを、28pinソケットのpin1(VPP)、pin20(VDD)、pin8とpin19(VSS=GND)、pin28(PGD)、pin27(PGC)に接続します。
VPPは+13Vの高圧ですから、配線を間違えると一発でPICが昇天してしまいます。ご注意ください。
PIC18F2550の端子図はこちら([第485回])にあります。
こちらが裏側の写真です。
さっそく試してみましたら、PIC18F2550を認識してくれません。
むむ。
言わんこっちゃ無い。
さては、誤配線か。
確認してみましたが、配線は合っています。
ということは、外部にソケットを用意する場合には、何か設定が必要なのか?
あらためて、AKI−PIC2プログラマボードの取説を読んでみましたら。
設定が、必要でした。
むむ。説明書はよく読みましょう。
外部のソケットを使う場合には、電源供給用のショートピン(さきほどの6pinコネクタのすぐ下にありました)を、T側ではなくて、B側にせよ、と書いてありました。
そのようにしましたところ、無事書き込みができました。
やれやれです。
●PIC18F2550テストプログラムの説明
テストプログラムリストは前回お見せしましたが、もう一度お見せいたします。
f2550test1.asmです。
;;;pic p18f2550 test program ;f2550test1 ;4/25 ; #include<p18f2550.inc> ; ;cpuclock=8MHz internal oscillator ; CONFIG FOSC=INTOSC_EC,WDT=OFF,LVP=OFF,MCLRE=OFF ; org 00 st0 goto start ; org 1a start movlw 7f;clock=8MHz movwf OSCCON movlw 0f movwf ADCON1;porta,b,e are digital movlw 0;porta-c are output movwf TRISA movwf TRISB movwf TRISC ; movlw 1 loop xorwf PORTA goto loop ; end
では順番に説明をしていきましょう。
●asmファイルの作成
PICのプログラムはアセンブラで作成します。
MPLABで新規ファイルを作成するのが普通のやり方ですが、asmファイルの中身はプレーンテキストですから、メモ帳(Notepad)などで作成してからMPLABで開いてアセンブルすることもできます。
MPLABでasmファイルを開くと、命令は上図のように青色太字で表示されます。
ただしMPLABで既存のasmファイルを開いて、それに修正を加える場合には、図のように文字が着色表示されますが、新規ファイルとして作成していく場合には、一旦拡張子をasmにしてファイルを保存しないことには、着色表示はされません。
この着色表示は、正しい命令の綴りを入力すると、すぐに青色太字に変わって表示してくれますから、綴りの間違いにすぐに気が付いてなかなか便利です。
MPLABは[第395回]でご紹介いたしました。入手方法などもご紹介しておりますので、そちらを参考にしてくださいませ。
MPLABのもともとの「正統的な」使い方としては、多分projectを作成するところから始めるのでしょうけれど、私はそういう面倒なことがいたって苦手ですから、projectは作成せずにいきなりasmファイルを作成するか、既存のasmファイルを変更することから入っています。
左上のNewFileアイコンかOpenFileアイコンをクリックするか、File→NewかFile→Openです。
作成を終わったらsaveFileアイコンをクリックして上書き保存するか、File→Save as…で、名前をつけて保存します。
このとき拡張子をasmにすることを忘れないようにします。
作成したasmファイルをアセンブルするには、Project→Quickbuildを選択するだけです。
エラーがなければPICプログラマで書き込むためのHEXファイルが作成されます。
Quickbuildの前に、Configure→Select DeviceでPICの名前を合わせておいてください。
上の図では、PIC18F2550のためのプログラムなのですが、画面下部にはPIC18F4550と表示されています。
この場合にはお仲間ですから、警告メッセージが出るだけで、アセンブルは正常に終了します。
しかしたとえばPIC18F2550のためのプログラムなのに、デバイスとしてPIC16F628などをセレクトした状態でアセンブルすると多分エラーがどっとでてしまいます。
●incファイル
プログラムの先頭には、そのプログラムを書き込むつもりのPICに合わせたincファイルを指定します。
#include<p18f2550.inc>
です。
Cなどでヘッダーファイルをインクルードするのと全く同じです。
incファイルはMPLABをインストールしたときにできるフォルダ(だと思いますが、もう記憶にありませんのであしからず)¥Microchip¥MPASM Suiteにあります。
拡張子はincですが、中身はプレーンテキストですからメモ帳(Notepad)などでも開けます。
ここにレジスタの設定が全て定義されていますから、どう書けばよいのかわからないときなどに、このファイルを開いて中を読んでみるのがよいと思います。
アセンブルしたときに表現のエラーだと思われるようなエラーが表示されたときは、このincファイルの該当するところを見ると正しい表記がみつかります。
参考までに、p18f2550.incのはじめの部分を見てみましょう。
LIST ;========================================================================== ; MPASM PIC18F2550 processor include ; ; (c) Copyright 1999-2007 Microchip Technology, All rights reserved ;========================================================================== NOLIST ;========================================================================== ; This header file defines configurations, registers, and other useful ; bits of information for the PIC18F2550 microcontroller. These names ; are taken to match the data sheets as closely as possible. ; ; Note that the processor must be selected before this file is included. ; The processor may be selected the following ways: ; ; 1. Command line switch: ; C:\MPASM MYFILE.ASM /PIC18F2550 ; 2. LIST directive in the source file ; LIST P=PIC18F2550 ; 3. Processor Type entry in the MPASM full-screen interface ; 4. Setting the processor in the MPLAB Project Dialog ;========================================================================== ;========================================================================== ; ; Verify Processor ; ;========================================================================== IFNDEF __18F2550 MESSG "Processor-header file mismatch. Verify selected processor." ENDIF
おお。うっかりしていました。
LIST P=PIC18F2550
と書くのを忘れておりました。
それを書かないと、Processor−header file mismatch.と表示されてしまいます。
でも、これは書かなくても特に支障はないようです。
最初にお見せしたf2550test1.asmをProject→Quickbuildとしてみますと、下のようにError:0で正しく終了してくれます。
f2550test1.asmのあるフォルダに、f2550test1.HEXファイルが作成されています。
もっともさきほどの、LIST P=PIC18F2550が無いために表示された、”mismatch”のメッセージは、Configure→Select Deviceでpic18F2550を選択してから、quickbuildすると、表示されなくなります。
私はMPLAB IDE v7.31とv8.40を使っていますが、このバージョンでは、Configureでデバイスを選択することが優先されるようですので、LIST P=PIC18F2550は省略しても支障はないでしょう。
参考までに、Configure→Select Deviceでpic18F2550を選択してから、もう一度quickbuildした結果を下に示します。
本日は時間がなくなってしまいました。この続きは次回にいたします。
2010.4.26upload
前へ
次へ
ホームページトップへ戻る