FrontPage
AVRにまつわるエトセトラ†
当Wikiでは主にATtiny2313という品種をネタとして扱います。
HIDaspx†
AVRで何かを作るには、まずAVRライター(書き込み器)を用意しなければなりません。
- HIDaspxは、ATtiny2313を使用した最も廉価なUSB接続AVR書き込み器です。
- MINTIAケースに入れるのがマイブームです。
- では、HIDaspxを作るための書き込み器はどうするかって?
- まずはHIDaspxの項目をお読みください。
マイコン汎用書き込み器 hid_blaster pic18blaster arm_blaster について†
最近では、AVRチップのほかにPIC18やARMも使用しています。 下のチップのどれかを使って、3種類のどのマイコンにもファームウェアを書き込めるようになりました。(どれでもライター)*1
- これからAVR,PIC,ARMマイコンの書き込み器を用意したい方向けには、写真一番右の基板(STBEE_MINI)がお勧めです。価格も手ごろ(2000円未満)なうえ、出荷時にブートローダーが書き込まれていますので他に用意するものはパソコンと書き込みツールだけで始められます。
- すでにAVRライターかPICkit2のようなPICライターをお持ちであれば、hid_blasterかpic18blasterを制作することで、上記3品種のマイコンに自由に書き込みできるようになります。*2
制作物一覧†
AVRマイコンを使用した制作物一覧です。†
制作テーマ | 内容 |
AVR_Monit | USBに繋がっているATtiny2313を制御するファームです。 AVR側の任意のメモリーやI/Oポートを読み書きできます。 |
AVR_term | ATtiny2313で作るUSBtoシリアル変換器です |
W32_term | Windowsで動作する簡易シリアルターミナルソフトです。(Cソース付き) |
HIDmon88 | HIDasp側のメモリーを読み書きするツールです。 汎用IOのようにポートをホストPC側から触って遊んだり、レジスタの名称や機能を学習するのにも便利です。 |
HIDtester | HIDmonを改造してA/D変換を行ってみました。 |
bootmon | bootloadHIDとhidmonの機能の詰め合わせセットです。ATmega88でのプロトタイピングにとても便利。製作中ターゲットに対して、USB経由でのファームの書き換えや、ポートの設定、読み取りまでインタラクティブに行えます。HIDmon88と同じリンク先にあります。 |
ATmega88生活 | ws☆Nak#172基板で始めるATmega88生活 |
usbRS232 | これは、ATtiny2313を使った、USBシリアル変換器です。(CDCクラス) |
KeyBoardマニア | ATmega88あるいはATtiny2313にPS/2タイプのキーボードを繋いで、押されたキーに反応するプログラムを作ることが出来ます。 |
KeyBoardマニアII | AppleDesktopBusタイプあるいはPC8801のジャンクキーボードをAT互換機に接続するアダプターをAttiny2313で製作しました。 |
デジタルテスター | ATmega88を使い、分圧された電圧をA/Dで計ることで簡易的に抵抗値を計る装置です。 |
Arduino400 | 400円で作るArduino互換機 |
PICspx | HIDaspx AVRライターのハードウェアを使用してPIC 18Fシリーズマイコンのライターにするソフトです |
hid_blaster | HIDaspx AVRライターのハードウェアを使用してARM用ライター(OpenOCDデバイス)にするソフトです |
MINTIAspx | HIDaspx AVRライターをMINTIAケースに入れてみました |
ARM関連記事†
制作テーマ | 内容 |
STM32ブートローダー | STM32マイコン{STM8S-Discovery,STBEE,CQ-STARM}用のHIDクラスブートローダー兼簡易モニターです |
STM8S-Discovery改造 | STM8S-DiscoveryのST-Link側のSTM32CPUを汎用のUSBマイコンとして活用する記事です |
LPCXpresso | NXPのマイコンLPC1343評価ボードを活用する記事です |
LPC用ブートローダー | LPC1343マイコン{LPCXpresso,TRZ-1010N}用のHIDクラスブートローダー兼簡易モニターです |
NXP用LPCUSB | interface 2009-05付録のARM(LPC2388)基板を使って各種USBデバイス(LPC-USB)を作ってみました |
NXP用ブートローダー | interface 2009-05付録のARM(LPC2388)基板用のHIDクラスブートローダー兼簡易モニターです |
OpenOCD_JTAGアダプター | STBEE MINIで制作したOpenOCD用JTAGアダプター(ARM書き込み器)です。 |
PIC関係もはじめました。但しPIC32MX/PIC18F限定です。†
制作テーマ | 内容 |
PIC32MX | MIPS互換アーキテクチャーの28PIN DIPパッケージ、PIC32MXチップを使ってみます。 |
Pinguinoで遊ぼう | Arduinoに良く似たPIC32MXのお手軽スケッチ開発環境を試してみます |
ブートローダーを作る | PIC32MX220F032B用のHIDブートローダーを作ってみます。 |
USB仮想シリアル | PIC32MXをUSB-シリアル変換器にしてみます |
USBカスタムデバイス | USBカスタムデバイスで転送ベンチマークを行います。 |
USB簡易モニター | USBカスタムデバイスとWinUSB.dllを使用して簡易モニターを作成します。 |
USBオシロスコープ | PIC32MXの内蔵A/D変換を利用してUSBオシロスコープを作成してみます |
USBホスト | PIC32MXをUSBホストにして、USBマウスやキーボードを繋いでみます |
WinUSB | WinUSBでUSBプログラミング。無料のgccコンパイラMinGWを使います |
制作テーマ | 内容 |
pic18boot | PIC18F2550/4550/14K50用のHIDboot/HIDmon (簡易モニタ)です。 |
pic18spx | HIDaspxのPIC版:PIC18Fを使用してAVR/PIC両用のライターを作ります。 |
pic18blaster | PIC18Fを使用してARM用ライター(OpenOCDデバイス)にするソフトです |
pic18monit | PIC18F用のUSB Genericクラスデバイスなモニターです |
sdcc | PIC用のオープンソースCコンパイラsdcc入門です |
mcc18 | MicroChip社提供のC18コンパイラ入門です |
UBWを試す | Gainerに少し似ているUSB経由の汎用I/Oを試しました |
PIC18F2550 | USBプロトコルエンジン内蔵のPIC18F2550を使ったPIC入門です。 |
PIC18F4550 | PIC18F2550互換で40pinDIPのPIC18F4550を使ったPIC入門です。 |
HIDboot | PIC18F2550用の(diolan)旧HIDbootloaderです。 |
HIDmon-2550 | PIC18F2550用の旧HIDboot/HIDmon (簡易モニタ)です。 |
HIDmon-14K50 | PIC18F14K50用の旧HIDboot/HIDmon (簡易モニタ)です。 |
PICmonitor | PIC18F2550/4550/14K50用のHIDmon (簡易モニタ)をC言語(mcc18)でリライトするプロジェクトです。 |
制作テーマ | 内容 |
ARM | CQ出版雑誌付録の各種ARM基板で遊んでみました。 |
NEC78K | NEC78K用 逆アセンブラ。入力ファイルは、トラ技BIOSのダンプ出力もしくはインテルHEX形式のテキストとなります。 ソース付き。 MinGW-gccまたはLinux標準のgccでビルドします。 |
H8 | るねさすのマイコンH8で遊んでみました。 |
3種類のマイコンの主な特徴†
マイコンの種類 | 製造メーカー | 特徴 |
AVR | Atmel | 廉価(100円〜250円程度)。8bitCPUとしてはほぼ究極の理想形。高性能(20MIPS)。USB機能はない*3がオープンソースのソフトウェアのみによるUSB実装(V-USB)が存在。DIP品あり。開発環境としてはgcc(WinAVR)とそれを応用したお手軽なArduino開発環境が有名 |
PIC18F | Microchip | 廉価(200円〜450円程度)。8bitCPUで12MIPS程度だが実性能はAVRより大幅に劣る。命令セットは変態的で最悪なのでアセンブラはお勧めできないが、アセンブラで書かないと性能を出せないというジレンマあり。しかしUSB機能を内蔵した品種がいくつかあるのが救い。DIP品あり。開発環境はMicrochipがCコンパイラ(mcc18、一部有償)とアセンブラ(MPASM。無償)を提供している。 |
ARM | 設計会社はARM*4製造はST Micro,NXP,Atmelなど | 高性能32bitCPU。72MHz〜動作。高性能の割にはAVRやPICとそれほど値段の差はない。(安いものだと@500円以下)。DIP品は存在しない。開発環境は主にgcc。チップ単体での購入をしても両面プリント基板を起こさない限り実装は難しい。ホビー用はARMでもCortex-Mシリーズと呼ばれる縮小セットであり、MMUなどを含まない。また、iPadを始めとするほぼ全ての携帯機器、携帯電話などに使用されており、上を見ればきりがないほどの性能を持っている。 |
目的について
- ここは、1996年くらいに登場した、PCのRS232Cシリアルを置き換えるUSBインターフェースについて自己学習する目的で開設いたしました。
V-USBの紹介
- ソフトウェアのみによるUSBデバイスの実装 V-USB(旧 AVR-USB) はLowSpeedですが、オープンソースであり、USBのプロトコル実装として非常に優れた教材です。
- このWikiはV-USBを使用した各種アプリケーションの制作と試行錯誤の記録です。
- AVRUSB_Tipsに、V-USB研究記録を残しています。
- Blogは左メニューの「開発日記」にあります。
- 開発日記過去ログはこちら
- ご意見ご要望などありましたらゲストブックに書き込んでください。
- 荒らし防止用の書き込み合言葉はひらがなで「アトメル」とお願いします。
お約束
- リンクフリーです。許可も要りません。
- このWikiの実験内容に関しては、無保証です。
- 自分で試してみて動作しなかったとか損害を受けられても補償は出来ませんのであしからず。
- ツッコミはゲストブックに書き込んでください。
- このWikiの前身はWideText Support BBSですが、古いコンテンツも残してあります。
*1 ただし、ATtiny2313(HIDaspx)を使用してPIC18Fへの書き込みは非常に時間が掛かります。(2KBのブートローダーを1回書くためだけには使用できます。)
*2 PIC18F以外の古いPICマイコン品種は意図的に対象から外してあります。これはライターに高電圧サポートが必要なことと、Cコンパイラー開発環境を揃えるのにずいぶんお金が掛かること、そして(個人的には)PIC12/PIC16シリーズは今となっては性能/価格ともに使用するメリットがほとんどないと考えているためです。
*3 USB内蔵品種(AT90USBシリーズ)は存在しないことはないがやや高価なのと使い勝手が悪いので普及していない。AVRのUSB内蔵チップは設計があまりよろしくないので無理してAVRを使うよりもARMに移行することを強くお勧めする次第
*4 製造はApple,TexasInstruments,nVidia,Samsumg,東芝など有名メーカーを始めとして非常に多くのメーカーがライセンスを受けて製造している。電子工作ホビー用途で入手可能なCPUとしてはST Micro,NXP,Atmelなど