FrontPage

AVRにまつわるエトセトラ

当Wikiでは主にATtiny2313という品種をネタとして扱います。

https://raw.github.com/iruka-/ATMEL_AVR/master/web/upload/attiny2313.jpg


※リンク切れでzipファイルのDLが出来なかった場合は、こちらのミラーサイトをご利用ください.

HIDaspx

AVRで何かを作るには、まずAVRライター(書き込み器)を用意しなければなりません。


マイコン汎用書き込み器 hid_blaster pic18blaster arm_blaster について

最近では、AVRチップのほかにPIC18ARMも使用しています。 下のチップのどれかを使って、3種類のどのマイコンにもファームウェアを書き込めるようになりました。(どれでもライター*1

https://raw.github.com/iruka-/ATMEL_AVR/master/web/upload/attiny2313.jpg https://raw.github.com/iruka-/ATMEL_AVR/master/web/jpg/PIC/14k50s.jpg https://raw.github.com/iruka-/ATMEL_AVR/master/web/jpg/ARM/stbmini.jpg

  • これからAVR,PIC,ARMマイコンの書き込み器を用意したい方向けには、写真一番右の基板(STBEE_MINI)がお勧めです。価格も手ごろ(2000円未満)なうえ、出荷時にブートローダーが書き込まれていますので他に用意するものはパソコンと書き込みツールだけで始められます。
  • すでにAVRライターかPICkit2のようなPICライターをお持ちであれば、hid_blasterpic18blasterを制作することで、上記3品種のマイコンに自由に書き込みできるようになります。*2

制作物一覧

AVRマイコンを使用した制作物一覧です。

制作テーマ内容
AVR_MonitUSBに繋がっているATtiny2313を制御するファームです。 AVR側の任意のメモリーやI/Oポートを読み書きできます。
AVR_termATtiny2313で作るUSBtoシリアル変換器です
W32_termWindowsで動作する簡易シリアルターミナルソフトです。(Cソース付き)
HIDmon88HIDasp側のメモリーを読み書きするツールです。 汎用IOのようにポートをホストPC側から触って遊んだり、レジスタの名称や機能を学習するのにも便利です。
HIDtesterHIDmonを改造してA/D変換を行ってみました。
bootmonbootloadHIDとhidmonの機能の詰め合わせセットです。ATmega88でのプロトタイピングにとても便利。製作中ターゲットに対して、USB経由でのファームの書き換えや、ポートの設定、読み取りまでインタラクティブに行えます。HIDmon88と同じリンク先にあります。
ATmega88生活ws☆Nak#172基板で始めるATmega88生活
usbRS232これは、ATtiny2313を使った、USBシリアル変換器です。(CDCクラス)
KeyBoardマニアATmega88あるいはATtiny2313にPS/2タイプのキーボードを繋いで、押されたキーに反応するプログラムを作ることが出来ます。
KeyBoardマニアIIAppleDesktopBusタイプあるいはPC8801のジャンクキーボードをAT互換機に接続するアダプターをAttiny2313で製作しました。
デジタルテスターATmega88を使い、分圧された電圧をA/Dで計ることで簡易的に抵抗値を計る装置です。
Arduino400400円で作るArduino互換機
PICspxHIDaspx AVRライターのハードウェアを使用してPIC 18Fシリーズマイコンのライターにするソフトです
hid_blasterHIDaspx AVRライターのハードウェアを使用してARM用ライター(OpenOCDデバイス)にするソフトです
MINTIAspxHIDaspx AVRライターをMINTIAケースに入れてみました



ARM関連記事

制作テーマ内容
STM32ブートローダーSTM32マイコン{STM8S-Discovery,STBEE,CQ-STARM}用のHIDクラスブートローダー兼簡易モニターです
STM8S-Discovery改造STM8S-DiscoveryのST-Link側のSTM32CPUを汎用のUSBマイコンとして活用する記事です
LPCXpressoNXPのマイコンLPC1343評価ボードを活用する記事です
LPC用ブートローダーLPC1343マイコン{LPCXpresso,TRZ-1010N}用のHIDクラスブートローダー兼簡易モニターです
NXP用LPCUSBinterface 2009-05付録のARM(LPC2388)基板を使って各種USBデバイス(LPC-USB)を作ってみました
NXP用ブートローダーinterface 2009-05付録のARM(LPC2388)基板用のHIDクラスブートローダー兼簡易モニターです
OpenOCD_JTAGアダプターSTBEE MINIで制作したOpenOCD用JTAGアダプター(ARM書き込み器)です。





PIC関係もはじめました。但しPIC32MX/PIC18F限定です。

制作テーマ内容
PIC32MXMIPS互換アーキテクチャーの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を使います

制作テーマ内容
pic18bootPIC18F2550/4550/14K50用のHIDboot/HIDmon (簡易モニタ)です。
pic18spxHIDaspxのPIC版:PIC18Fを使用してAVR/PIC両用のライターを作ります。
pic18blasterPIC18Fを使用してARM用ライター(OpenOCDデバイス)にするソフトです
pic18monitPIC18F用のUSB Genericクラスデバイスなモニターです
sdccPIC用のオープンソースCコンパイラsdcc入門です
mcc18MicroChip社提供のC18コンパイラ入門です
UBWを試すGainerに少し似ているUSB経由の汎用I/Oを試しました
PIC18F2550USBプロトコルエンジン内蔵のPIC18F2550を使ったPIC入門です。
PIC18F4550PIC18F2550互換で40pinDIPのPIC18F4550を使ったPIC入門です。
HIDbootPIC18F2550用の(diolan)旧HIDbootloaderです。
HIDmon-2550PIC18F2550用の旧HIDboot/HIDmon (簡易モニタ)です。
HIDmon-14K50PIC18F14K50用の旧HIDboot/HIDmon (簡易モニタ)です。
PICmonitorPIC18F2550/4550/14K50用のHIDmon (簡易モニタ)をC言語(mcc18)でリライトするプロジェクトです。
制作テーマ内容
ARMCQ出版雑誌付録の各種ARM基板で遊んでみました。
NEC78KNEC78K用 逆アセンブラ。入力ファイルは、トラ技BIOSのダンプ出力もしくはインテルHEX形式のテキストとなります。 ソース付き。 MinGW-gccまたはLinux標準のgccでビルドします。
H8るねさすのマイコンH8で遊んでみました。

3種類のマイコンの主な特徴

左から、AVR PIC18F ARM

https://raw.github.com/iruka-/ATMEL_AVR/master/web/upload/attiny2313.jpg https://raw.github.com/iruka-/ATMEL_AVR/master/web/jpg/PIC/14k50s.jpg https://raw.github.com/iruka-/ATMEL_AVR/master/web/jpg/ARM/stbmini.jpg

マイコンの種類製造メーカー特徴
AVRAtmel廉価(100円〜250円程度)。8bitCPUとしてはほぼ究極の理想形。高性能(20MIPS)。USB機能はない*3がオープンソースのソフトウェアのみによるUSB実装(V-USB)が存在。DIP品あり。開発環境としてはgcc(WinAVR)とそれを応用したお手軽なArduino開発環境が有名
PIC18FMicrochip廉価(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研究記録を残しています。




  • ご意見ご要望などありましたらゲストブックに書き込んでください。
  • 荒らし防止用の書き込み合言葉はひらがなで「アトメル」とお願いします。


お約束

  • リンクフリーです。許可も要りません。
  • このWikiの実験内容に関しては、無保証です。
  • 自分で試してみて動作しなかったとか損害を受けられても補償は出来ませんのであしからず。

旧コンテンツ

  • このWikiの前身はWideText Support BBSですが、古いコンテンツも残してあります。

SiteMap?


dream.cgi?id=FrontPage&name=a.gif

*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など