Top
HIDaspx
DownLoad
HIDasp高速化
制作
AVR関係
AVR_Monit
AVR_term
W32_term
HIDmon88
HIDtester
usbRS232
Arduino2313
デジタルテスター
ATmega88生活
KeyBoardマニア
KeyBoardマニアII
Arduino400
PICライター
ARMライター
赤外線リモコン
ARM
STM32ブートローダー
STM8S-Discovery改造
STM8S-OpenOCDライター
LPCXpresso
LPC用ブートローダー
NXP用LPCUSB
NXP用ブートローダー
MARY基板
LPC1114FN28
OpenOCD JTAGアダプター
OpenOCDビルド方法
arm-gccビルド方法
mapleIDEの改造
libmapleで仮想COM
PIC32
PIC32MX
Pinguinoで遊ぼう
ブートローダーを作る
シリアルブートローダー
USB仮想シリアル
USBカスタムデバイス
USB簡易モニター
USBオシロスコープ
USBホスト
PIC32でBluetooth
USBAudio
USBStudy
VGA出力に挑戦
BASICを動かす
WinUSB
勝手に改蔵*PIC32
PIC18F
HIDブートローダー
AVR/PIC両用ライター
ARMライター
usb汎用クラス
usbシリアル変換
usbキーボード変換
sdccを使いこなす
mcc18を使いこなす
HIDmon-2550
HIDmon-14K50
PICmonitor
試行錯誤の記録
UBWを試す
旧HIDboot
PIC18F2550試用記
PIC18F4550試用記
その他マイコン
NEC78K
RX62N
SH2A
H8
FM3
XPからubuntuに乗り換え
Android
Xen-hypervisor
Windows8カスタマイズ
開発日記
2015-04
ノウハウ
AVRUSB_Tips
HIDasp情報
汎用USB-IO
・
リンク
フリースペース
ゲストブック
旧コンテンツ
WinVista
インターフェース考
最新の20件
2022-07-25
2008-10
HIDasp高速化
H8/3048F
AutoTicketLinkName
2021-12-11
FormattingRules
2021-12-08
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/V-Z
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/H-K
2020-02-23
YukiWiki
PHP
PukiWiki
WikiWikiWeb
2018-12-19
SandBox
InterWiki
2015-05-07
2015-04
2015-05-02
MenuBar
編集
差分
Arduino400 の編集
-- 雛形とするページ --
(no template pages)
[[2009-08]] [[Arduinoに挑戦]] [[HIDmon-14K50]] [[mcc18]] ------- 目次 #contents -------- *Arduino400とは: [#ub24c3cb] ''PIC18F14K50 + ATmega8 = Arduino400'' -400円(Chipのみの値段)でArduino互換機を制作してみました。 http://psp.dip.jp/web/jpg/PIC/arduino14k1.jpg http://psp.dip.jp/web/jpg/PIC/arduino14k2.jpg -写真はPIC 18F14K50とATmega8の混載基板(Arduino機能互換) -Arduino単独での動作試験を行ったため、20P拡張シールドコネクタに無駄な配線(TxD/RxD)が残っています。 マイコンチップ以外の主要部品: |部品名|単価|個数|価格| |秋月ユニバーサルC基板 ||1|70円| |USB-Bコネクタ||1|50円| |ポリスイッチ|(6個入り300円)|1|50円| |12MHz水晶||1|50円| |16MHz水晶||1|50円| |LED|20円|3|60円| |C,R少々。|||100円くらい?| たぶん合計で1000円はいかないと思います。(800円くらい) 但し、PICライターとAVRライターが必要です。(借りてくるとか誰かに焼いてもらうとか・・・) - --->最も廉価な[[HIDaspx]]ライターにて、両方のチップにファームを書き込むことが可能です。[[PICspx]]を参照してください。 **特徴 [#c9408b43] -プログラム可能デバイスが2個もあって%%大変です%%面白いです。 -それぞれにブートローダーが焼かれていて、それぞれのファームをブートローダー経由で書き込めます。 -PIC側だけで、HIDmon/HIDboot としての使い道もあるので、Arduinoに飽きたらPICで各種USBデバイスを書いて遊べます。 -その気になれば、Arduino側のファームとPIC側にUSBデバイスを書いてその中に仕込んだシリアル通信を経由することで -任意の各種USBデバイス+Arduinoで書いたファームの協調動作のようなアプリまで書くことが出来ます。 それぞれのチップの面倒見るのが大変ですが。 |マイコン|PIC 18F14K50|18F2550||AVR ATmega8|AVR ATmega168| |Flash ROM容量|16kB((同じ処理を書いてコードサイズを比較するとPIC18はAVRの2倍〜3倍くらいのFlash(ガソリン)を消費する。つまり燃費の悪い車のようなもの。ガソリンがぶのみして、なおかつ遅い。ぐずでのろまなマイコンだ。))|32kB||8kB|16kB| |SRAM容量|768Byte((うち256byteはUSB SIE側との共有(DualPort RAM)になっている))|2kB((うち1kByteはUSB SIE側との共有(DualPort RAM)になっている))||1kB|←| |EEPROM容量|256Byte|←||512Byte|←| |動作クロック|48MHz(実質12MHz)((1命令実行に最低4クロック必要なので実質12MHz))|←||16MHz|16MHz(最大20MHz)((20MHz動作させる場合は水晶を20MHzに換装して、ブートローダーのクロック設定(シリアル接続ボーレート計算値)も書き換えないといけません。))| |処理系|[[C18>mcc18]]/[[sdcc]]/MPASM|←||gcc(WinAVR)|←| |8bit演算MIPS値|12MIPS((たしかに12M Instruction/秒であるが、何故か実際のコード効率はAVRの1/3〜1/10程度しかない。おまけにFlash使用量は無駄に多い。元々PICというのはProgrammable ICだったわけで、16pinとか18pinのロジックICもどきにプログラム能力を持たせたのが間違いの元だろう。))|←||16MIPS|最大20MIPS| |参考価格(秋月調べ)|200円|400円||200円|300円| どこが面白い? -PICとAVRは犬猿の仲なのに、PICをUSB-Serial仲介役にしてArduino互換を構成していること。 -すなおにFT232RLを使わないのは配線が微細で難しいのと、素直すぎて面白くないから。 -実はArduino互換機を作るのが目的ではなくて、PICのUSB-Serial Emulatorの性能評価テストを行うのが目的で、 AVR側はシリアル転送試験ツールとして使用する予定だったが、ついでにArduinoになるので、そっちも試そうと・・・。 ---- **回路図 [#lbab7f45] PIC側 http://psp.dip.jp/web/jpg/PIC/sch14k50.png AVR側 http://arduino.cc/en/uploads/Main/Arduino-Pro-schematic.pdf PICとAVRの接続方法 PIC TxD -------------> AVR RxD PIC RxD -------------> AVR TxD PIC RB6(DTR) ---||---> AVR Reset 0.1uF RB6(DTR信号)を0.1uF経由でAVRのReset端子に接続します。 *DTRリセット問題 [#j0dd13a2] -DTRをAVRのResetにつなぐ時にキャパシタを挟む方法では、AVRのReset端子に瞬間的に10V近い電圧が掛かったり 負電圧が掛かるという問題があります。(これは本家Arduinoの設計上の問題だと思います。) -なので、DTRをOC出力(抵抗PullUP)にしてAVR Resetにつなぐべきではありますが、これにも落とし穴があります。 -PCと接続中(通信中)は通常DTRはHレベル(負論理の場合Lレベル)ですが、ArduinoをPCと接続せずスタンドアロン 動作させるときはDTRアサートされずLレベル(負論理の場合Hレベル)となり、両立しません。(どちらかの状態でリセットが掛かりっぱなしとなります) -FT232RLではDTR#端子の論理反転をチップに記憶させることが出来るようです。(たぶんArduinoでは正論理TTL???) -現状のPICのファームウェアをそのままコンパイルするとDTRは負論理(TTLレベル)に固定されています。 改善案としては、 -(1)キャパシタ0.1uFと直列に100Ω程度を挟む。そして、AVRのReset端子をダイオードクランプして高電圧や負電圧から守る。 -(2)PICファームを改良してDTRを正論理TTL OC出力にするか、もしくはArduino Reset専用の出力端子を新設する。その場合はAVR Reset端子に直結して抵抗プルアップにする。 ~ ~ ~ -------- *ファームウェアダウンロード [#t60a37f1] PIC側 -[[usbserial-uno.zip:http://psp.dip.jp/web/upload.cgi/PIC/usbserial-uno.zip]] -旧バージョン --[[mchip-cdc14k2.zip:http://psp.dip.jp/web/upload.cgi/PIC/mchip-cdc14k2.zip]] AVR側 -http://www.arduino.cc/ -Arduino-0017をダウンロードして、PCにインストールします。 ATmega8に焼く場合は以下のHEXを使用します。 arduino-0017/hardware/bootloaders/atmega8/ATmegaBOOT.hex ATmega168に焼く場合は以下のHEXを使用します。 arduino-0017/hardware/bootloaders/atmega/ATmegaBOOT_168_ng.hex -ATmega168を選択した場合、Arduino400ではなくなります。(Arduino500になります) -(Flashエリアが2倍にグレードアップします。) -PIC 18F14K50の代わりにPIC 18F2550を使用することも可能です。 -(その場合はArduino700になります。PIC側のFlashエリアも2倍になります。) -PIC 18F2550用のUSB-シリアル変換ファームは特に用意していませんが、ソースファイルを元に作ること が出来ます。(変更箇所は2、3箇所程度で済むと思います。) ~ PIC側はUSB-シリアル変換器として動作させていますが、[[HIDmon-14K50]]ブートローダー兼デバッグモニタ をあらかじめ焼いておくとPIC側のファームアップデートやUSB付きPICの学習にも対応できるのでお勧めです。 ~ ~ ~ ~ ------- *予定 [#wa232dde] -[[HIDasp]]から各種ブートローダーが書き込めるようにしたい。 --[[PICspx]]ツールを作成しましたのでご利用ください。 -ATmega8のブートローダーをもう少しブラッシュアップしたい。 -シリアルのボーレートを上げたい。(115200をデフォに) -[[Arduino2313]]計画。 -[[Piclearno]]計画。
タイムスタンプを変更しない
[[2009-08]] [[Arduinoに挑戦]] [[HIDmon-14K50]] [[mcc18]] ------- 目次 #contents -------- *Arduino400とは: [#ub24c3cb] ''PIC18F14K50 + ATmega8 = Arduino400'' -400円(Chipのみの値段)でArduino互換機を制作してみました。 http://psp.dip.jp/web/jpg/PIC/arduino14k1.jpg http://psp.dip.jp/web/jpg/PIC/arduino14k2.jpg -写真はPIC 18F14K50とATmega8の混載基板(Arduino機能互換) -Arduino単独での動作試験を行ったため、20P拡張シールドコネクタに無駄な配線(TxD/RxD)が残っています。 マイコンチップ以外の主要部品: |部品名|単価|個数|価格| |秋月ユニバーサルC基板 ||1|70円| |USB-Bコネクタ||1|50円| |ポリスイッチ|(6個入り300円)|1|50円| |12MHz水晶||1|50円| |16MHz水晶||1|50円| |LED|20円|3|60円| |C,R少々。|||100円くらい?| たぶん合計で1000円はいかないと思います。(800円くらい) 但し、PICライターとAVRライターが必要です。(借りてくるとか誰かに焼いてもらうとか・・・) - --->最も廉価な[[HIDaspx]]ライターにて、両方のチップにファームを書き込むことが可能です。[[PICspx]]を参照してください。 **特徴 [#c9408b43] -プログラム可能デバイスが2個もあって%%大変です%%面白いです。 -それぞれにブートローダーが焼かれていて、それぞれのファームをブートローダー経由で書き込めます。 -PIC側だけで、HIDmon/HIDboot としての使い道もあるので、Arduinoに飽きたらPICで各種USBデバイスを書いて遊べます。 -その気になれば、Arduino側のファームとPIC側にUSBデバイスを書いてその中に仕込んだシリアル通信を経由することで -任意の各種USBデバイス+Arduinoで書いたファームの協調動作のようなアプリまで書くことが出来ます。 それぞれのチップの面倒見るのが大変ですが。 |マイコン|PIC 18F14K50|18F2550||AVR ATmega8|AVR ATmega168| |Flash ROM容量|16kB((同じ処理を書いてコードサイズを比較するとPIC18はAVRの2倍〜3倍くらいのFlash(ガソリン)を消費する。つまり燃費の悪い車のようなもの。ガソリンがぶのみして、なおかつ遅い。ぐずでのろまなマイコンだ。))|32kB||8kB|16kB| |SRAM容量|768Byte((うち256byteはUSB SIE側との共有(DualPort RAM)になっている))|2kB((うち1kByteはUSB SIE側との共有(DualPort RAM)になっている))||1kB|←| |EEPROM容量|256Byte|←||512Byte|←| |動作クロック|48MHz(実質12MHz)((1命令実行に最低4クロック必要なので実質12MHz))|←||16MHz|16MHz(最大20MHz)((20MHz動作させる場合は水晶を20MHzに換装して、ブートローダーのクロック設定(シリアル接続ボーレート計算値)も書き換えないといけません。))| |処理系|[[C18>mcc18]]/[[sdcc]]/MPASM|←||gcc(WinAVR)|←| |8bit演算MIPS値|12MIPS((たしかに12M Instruction/秒であるが、何故か実際のコード効率はAVRの1/3〜1/10程度しかない。おまけにFlash使用量は無駄に多い。元々PICというのはProgrammable ICだったわけで、16pinとか18pinのロジックICもどきにプログラム能力を持たせたのが間違いの元だろう。))|←||16MIPS|最大20MIPS| |参考価格(秋月調べ)|200円|400円||200円|300円| どこが面白い? -PICとAVRは犬猿の仲なのに、PICをUSB-Serial仲介役にしてArduino互換を構成していること。 -すなおにFT232RLを使わないのは配線が微細で難しいのと、素直すぎて面白くないから。 -実はArduino互換機を作るのが目的ではなくて、PICのUSB-Serial Emulatorの性能評価テストを行うのが目的で、 AVR側はシリアル転送試験ツールとして使用する予定だったが、ついでにArduinoになるので、そっちも試そうと・・・。 ---- **回路図 [#lbab7f45] PIC側 http://psp.dip.jp/web/jpg/PIC/sch14k50.png AVR側 http://arduino.cc/en/uploads/Main/Arduino-Pro-schematic.pdf PICとAVRの接続方法 PIC TxD -------------> AVR RxD PIC RxD -------------> AVR TxD PIC RB6(DTR) ---||---> AVR Reset 0.1uF RB6(DTR信号)を0.1uF経由でAVRのReset端子に接続します。 *DTRリセット問題 [#j0dd13a2] -DTRをAVRのResetにつなぐ時にキャパシタを挟む方法では、AVRのReset端子に瞬間的に10V近い電圧が掛かったり 負電圧が掛かるという問題があります。(これは本家Arduinoの設計上の問題だと思います。) -なので、DTRをOC出力(抵抗PullUP)にしてAVR Resetにつなぐべきではありますが、これにも落とし穴があります。 -PCと接続中(通信中)は通常DTRはHレベル(負論理の場合Lレベル)ですが、ArduinoをPCと接続せずスタンドアロン 動作させるときはDTRアサートされずLレベル(負論理の場合Hレベル)となり、両立しません。(どちらかの状態でリセットが掛かりっぱなしとなります) -FT232RLではDTR#端子の論理反転をチップに記憶させることが出来るようです。(たぶんArduinoでは正論理TTL???) -現状のPICのファームウェアをそのままコンパイルするとDTRは負論理(TTLレベル)に固定されています。 改善案としては、 -(1)キャパシタ0.1uFと直列に100Ω程度を挟む。そして、AVRのReset端子をダイオードクランプして高電圧や負電圧から守る。 -(2)PICファームを改良してDTRを正論理TTL OC出力にするか、もしくはArduino Reset専用の出力端子を新設する。その場合はAVR Reset端子に直結して抵抗プルアップにする。 ~ ~ ~ -------- *ファームウェアダウンロード [#t60a37f1] PIC側 -[[usbserial-uno.zip:http://psp.dip.jp/web/upload.cgi/PIC/usbserial-uno.zip]] -旧バージョン --[[mchip-cdc14k2.zip:http://psp.dip.jp/web/upload.cgi/PIC/mchip-cdc14k2.zip]] AVR側 -http://www.arduino.cc/ -Arduino-0017をダウンロードして、PCにインストールします。 ATmega8に焼く場合は以下のHEXを使用します。 arduino-0017/hardware/bootloaders/atmega8/ATmegaBOOT.hex ATmega168に焼く場合は以下のHEXを使用します。 arduino-0017/hardware/bootloaders/atmega/ATmegaBOOT_168_ng.hex -ATmega168を選択した場合、Arduino400ではなくなります。(Arduino500になります) -(Flashエリアが2倍にグレードアップします。) -PIC 18F14K50の代わりにPIC 18F2550を使用することも可能です。 -(その場合はArduino700になります。PIC側のFlashエリアも2倍になります。) -PIC 18F2550用のUSB-シリアル変換ファームは特に用意していませんが、ソースファイルを元に作ること が出来ます。(変更箇所は2、3箇所程度で済むと思います。) ~ PIC側はUSB-シリアル変換器として動作させていますが、[[HIDmon-14K50]]ブートローダー兼デバッグモニタ をあらかじめ焼いておくとPIC側のファームアップデートやUSB付きPICの学習にも対応できるのでお勧めです。 ~ ~ ~ ~ ------- *予定 [#wa232dde] -[[HIDasp]]から各種ブートローダーが書き込めるようにしたい。 --[[PICspx]]ツールを作成しましたのでご利用ください。 -ATmega8のブートローダーをもう少しブラッシュアップしたい。 -シリアルのボーレートを上げたい。(115200をデフォに) -[[Arduino2313]]計画。 -[[Piclearno]]計画。
テキスト整形のルールを表示する
ログインまたはアカウント作成