PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!

[目次]
「TTLでCPUをつくろう!」第393回〜第523回(2009/12/5〜2010/6/13)を再編集(別テーマの回は除外してあります)

☆プロローグ
[第1回]●いよいよ近況報告の開始です
[第2回]●I/Oを接続するためには、アドレスデコード回路が必要●82C55の回路です●MYCPU80に接続してテスト中の写真です●知ってしまいました
[第3回]●MPLAB●MPLABをXPにセットアップしたのですが…●MPLABが起動しませんっ
[第4回]●PICプログラマ●さっそくやってしまいました…●ああ、買って間も無いPICプログラマが…
[第5回]●PICプログラマをなんとかしませんと…●パラレルポートを使うが一番●AN589●PICライターの回路図
[第6回]●Windows98とアセンブラ●Cでポートに出力、ってどうする?
[第7回]●何かシカケがあるのでは?
[第8回]●パラレルポート(続きです)●FreeなDOS●ハードディスク版のFreeDOS●FreeDOSのサイトです
[第9回]●フロッピーディスク1枚に収まるFreeDOS●rawrite.exe
[第10回]●前回の補足です●イノベーションのジレンマ
(以上2011.7.8upload)

[第11回]●PICプログラマ復活!
[第12回]●PICプログラマ復活(その直後のお話です)
[第13回]●PICプログラマ(真相判明…)

☆PIC18F4550
[第14回]●さてお話は戻って、PICのUSBなのですが●まずはPICライターの説明から●しかしお話には順序というものがありますので●PIC18F4550は相当に難しそう●右も左もCばっかりじゃございませんかぁ●サンプルプログラムがさっぱり、わかりませぬ
[第15回]●PIC18F4550のData Sheet
[第16回]●PIC18F4550のData Sheet(続き)●メモリアクセスが複雑…
[第17回]●PIC18F4550のデータメモリアクセス
[第18回]●PIC18F4550のメモリアクセスについて説明するつもりでしたが…●C or アセンブラ ? in PIC●そもそもCとは一体なにものぞ?●Cは高級言語です●機械語は?●高級言語とは?●それではPICのプログラムをCで書くということは…●PICにはアセンブラがあるじゃありませんか●アセンブラは難しいか?●PICのサンプルプログラムです●アセンブラならパルス幅が計算できるのです●MPLABのバグ?●なんとPICプログラマでもバグが?●PIC16F88のPORTBについて
[第19回]●PIC16F88テストプログラム(その2)●PIC16F88テストプログラム(その3)
[第20回]●PIC18F4550のメモリアクセスについて(まずはアクセスバンクの説明です)
[第21回]●PICアセンブラは賢いアセンブラでした●機械語を確認してみました
[第22回]●間接アドレッシング
[第23回]●PICの間接アドレッシングと直接アドレッシング
[第24回]●プログラムミスがありました
[第25回]●プログラムを直して再実行してみました●PIC16F88の間接アドレッシング
[第26回]●PIC18F4550の間接アドレッシング●LFSR命令●POSTINC0…奇妙だけれども便利な「レジスタ」
[第27回]●POSTINC0…奇妙だけれども便利な「レジスタ」(前回からの続きです)

☆USB(HIDクラス)
[第28回]●USBのお話です●まずは今までの経過から少しずつ…
[第29回]●Hot Newsです! USB通信に成功しました!●最初は仮想COMポート(CDCクラス)でスタートしたのですが…●で、HIDクラス、に方針を変更してしまいました●参考までに、プログラムの送信部分のリストです
[第30回]●HIDの送信速度について●どうしたらHIDの送信速度が測定できるでしょうか?●オシロで観測してみました
(以上2011.7.9upload)

[第31回]●HIDについての疑問点●USB.ORG
[第32回]●HIDのデータ転送方式●フレーム、トランザクション、パケット?●トークンパケット●アドレス●パイプ(エンドポイント)●データパケット●ハンドシェイクパケット
[第33回]●パイプとエンドポイント
[第34回]●パイプとエンドポイント(前回の続きです)
[第35回]●パイプとフレームとトランザクション(どのような関係なのか?)
[第36回]●インタラプト転送の「速度」●やっぱりHIDは64バイト/フレームでした●HID以外のクラスでも同じでした
[第37回]●ReadFile成功●HIDの送信速度は?
[第38回]●HID送信速度の怪●HIDの意外な振舞い

☆C++でUSB(HID)アクセスプログラムを作成
[第39回]●前回のHID送受信結果についての疑問●HIDサンプルプログラム●まずはHIDデバイスを検出します●コンパイルをクリアするまでがひと苦労です
[第40回]●インクルードファイルについてなど●Borland C++コンパイラについて●WinDDK●かくしてWin98DDKを捜して放浪の旅へ
[第41回]●これまでの説明を整理してみました
[第42回]●HIDプログラムのお話の続きです●OMF?COFF?●COFF2OMF●IMPLIB
[第43回]●「外部シンボル …が未解決」●C++とCの違いが関係しているらしい●extern ”C”
[第44回]●コンパイルはOK…しかし●欠落エクスポート???
[第45回]●欠落エクスポート…の結末
[第46回]●HIDテストプログラム(HIDデバイスの検出)●XPではUSBマウスを検出できません…
[第47回]●まだ不足しているファイルがありました●WindowsXPではUSBマウスが「邪魔」になります●USBマウス対策です
[第48回]●HIDテストプログラム(HIDデバイス検出)のまとめ●HIDテストプログラム(HIDデバイス検出)のソースリストです●MSDNのHIDclass関数情報●HIDclass識別子取得●HIDデバイス情報セット取得●個別デバイス情報の構造体の取得●デバイスインターフェイスの詳細情報の取得●ファイルハンドルの取得●VenderIDとProductIDの取得
[第49回]●XPでもUSBマウスが検出できました●デバイスインターフェイスの詳細情報の取得
[第50回]●VenderIDとVendorID●デバイスみつけた!
(以上2011.7.10upload)

[第51回]●パワーオンでHIDデバイスが認識できません●HID送受信プログラムが実用レベルになりました
[第52回]●HID送信テスト●HID送信プログラムリストです●文字列を連続で送信してみました●変更したHID送信プログラムリストです
[第53回]●WriteFile()関数
[第54回]●WriteFile()関数の続きです(HIDの怪を追求)●PIC18F4550回路図

☆PIC18F4550のUSB送受信の仕組み
[第55回]●WriteFile()の続きです●PIC18F4550のUSB送受信の仕組み●USB Serial Interface Engine(SIE)●USBRAM●Buffer Ownership●Buffer Descriptors(BD)●BDnSTAT●エンドポイントバッファが最大64個の意味

☆USBデバッグツール
[第56回]●USBデバッグツール●Snoopy.Pro
[第57回]●Snoopy.proで確かめてみました●BD BYTE COUNT

☆PIC18F2550
[第58回]●PIC18F2550
[第59回]●もっとも簡単なPIC18F2550テスト回路●テスト回路の写真です●もっとも簡単なPIC18F2550テストプログラムです●出力波形の写真です
[第60回]●秋月のPICプログラマ対策●PIC18F2550テストプログラムの説明●asmファイルの作成●incファイル
(以上2011.7.11upload)

[第61回]●CONFIGの表記●PIC16F88について、MPLABのバグではありませんでした
[第62回]●CONFIGの続きです●FOSC●WDT●LVP●MCLRE
[第63回]●簡単なPIC18F2550テストプログラムです

☆USB(HID)送信プログラム
[第64回]●HID送信プログラムが出来ました
[第65回]●HID送信プログラムリストです
[第66回]●HID送信プログラムを変更いたしました●変更したHID送信プログラムリストです
[第67回]●HID送信プログラム(バイナリファイル読み込み)
[第68回]●HID送信プログラムの送信速度●PIC18F2550からZ80にデータを渡しているところをオシロスコープでモニタしました

☆PIC18F2550の回路図
[第69回]●PIC18F2550の回路図です●RS232C回路●RS232Cコネクタ

☆HIDの送信速度について
[第70回]●HIDの送信速度

☆PIC18F2550では大きすぎる…
[第71回]●28pinは大きすぎる…

☆PIC18F14K50
[第72回]●PIC18F14K50
[第73回]●8ビットパラレルデータ伝送
[第74回]●8ビットパラレルデータ伝送(TK80モニタプログラム)●8ビットパラレルデータ伝送(PIC18F2550プログラム)●4ビットパラレルデータ伝送(TK80モニタプログラム)●4ビットパラレルデータ伝送(PIC18F2550プログラム)
[第75回]●USBのためのCPUクロック●PIC18F2550のUSBのためのクロックの設定(DataSheetから)●PIC18F2550のテストプログラム
[第76回]●PIC18F2550テスト回路図です●CPUクロックを変更してテストしてみました(32MHz)●CPUクロックを変更してテストしてみました(24MHz)●CPUクロックを変更してテストしてみました(16MHz)
[第77回]●PIC18F14K50のシステムクロック●PIC18F14K50のUSBのためのクロックの設定●PIC18F14K50の内蔵発振モード
[第78回]●PIC18F14K50のテストプログラム●PIC18F14K50のテスト回路図です●ジャノ目基板に組み付けました●RC0からの出力波形です
[第79回]●PIC18F14K50をクロック32MHzで動かしてみました●RC0からの出力波形です
[第80回]●SLRCONレジスタ?●プログラムTEST3の出力波形です
(以上2011.7.12upload)

[第81回]●PIC18F14K50をクロック48MHzで動かしてみました●USBテスト用にPIC18F14K50をジャノ目基板に組み付けました●RC0からの出力波形です
[第82回]●いよいよ「PIC18F14K50でUSBを認識できません」というお話です
[第83回]●PIC18F2550のUSBテスト回路です●PIC18F2550のテストプログラムです●UEPnレジスタ●UCFGレジスタ
[第84回]●USBコネクタの端子接続図●PIC18F14K50のUSBテスト回路です●PIC18F14K50のテストプログラムです(実は動きません)
[第85回]●本当にPIC18F14K50は動くのか?●PIC18F14K50用HIDブートローダ
[第86回]●PIC18F14K50用HIDブートローダのソースを読んだのですけれど…●PIC18 Disassembler
[第87回]●PIC18 Disassembler(full version)を購入
[第88回]●PIC18F14K50用HIDブートローダの解析
[第89回]●火事場の馬鹿力?
[第90回]●SFR(Special Function Registers)●ACCESS BANK
[第91回]●PIC18F14K50メモリマップ●PIC18F14K50のFSR(Special Function Registers)
[第92回]●PIC18F14K50用「動作する」USBプログラム
[第93回]●PIC18F14K50用「動作する」USBプログラム(その2)●FSRとINDFを使ったプログラム
[第94回]●PIC18F命令の’a’パラメータ
(以上2011.7.13upload)

ホームページトップへ戻る