PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.7.11 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆PIC18F2550 今までの説明はPIC18F4550を使って行なってきましたが、PIC18F4550は40pinのICでサイズが大きすぎます。ピン数が多いだけにI/Oポートも十分あるのですが、USBインターフェースとしての用途に限定すれば、そんなに沢山のI/Oは必要ありません。 そこでこれからはPIC18F2550を使って説明をしていくことにしました。 |
[第60回]
●秋月のPICプログラマ対策
前回、MCLRを使わないモードで、さらに内蔵発振モードを設定したプログラムを秋月のAKI−PIC2プログラマボード(PICkit2互換)で書き込むとPICが破損してしまいます、ということを書きました(秋月のサイトにその警告が書いてあります)。
前回紹介いたしましたPIC18F2550のテストプログラムがまさにそのモードです。
以前、私自身がうっかりそれをやってしまって、PIC16F88を1個オシャカにしてしまいました([第4回])。
んでも、今になって考えてみますと、確かに内蔵発振モードは以前から使っておりましたが、MCLRを使わない設定となりますと、はて?そんな設定をして使ったことがあったかいなあ?とちょいとといいますか、はなはだ疑問を感じてしまいます。
ひょっとしますと、そのときは、ただPICを逆差ししてしまっただけだったかも、しれません。
事実、その後に逆指しをしてしまったことも書いておりますので([第4回])。
しかし、まあ、製造販売元が、やらないで、と警告しておりますことを敢えてやってみたって、それは何の得があることでもありませんから、ここは君子危うきに近寄らず、です。
それでは、どうしましょう?
ということなのですが、秋月のサイトの警告には、その下に対策として、
お手数ですが、基板上の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の端子図はこちら([第58回])にあります。
こちらが裏側の写真です。
さっそく試してみましたら、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 |
です。
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 |
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した結果を下に示します。
本日は時間がなくなってしまいました。この続きは次回にいたします。
CPUをつくろう!第487回(2010.4.26upload)を再編集
PICでUSBを![第60回]
2011.7.11upload
前へ
次へ
目次へ戻る
ホームページトップへ戻る