番外 Arduinoからタイニーブートローダーを使用する
最近AE-ATMEGA基板を入手してArduinoをはじめました。
手持ちのATmega328Pにブートローダーを焼き、苦労しましたが何とかDuemilanoveのクローンを動作させることができました。
私は少ピンマイコンが好きなので、ATtinyでもArduinoが出来ないかと思い検索したところ、
ATtinyでは独立したブートROM領域を持たないため、もしATmegaのようにBootloaderをあらかじめ書き込んでから、
Arduinoのスケッチをアップロード出来たとしても、Arduinoのスケッチがリセットベクターを書き換えてしまうため、
二回目以降はBootloaderが起動できない問題があり、ArduinoからISP経由でATtinyに書き込む方法が主流のようです。
この方法は結線の手間が増えたり、リセットボタンを押し直す必要が増えたりとやや面倒な印象を受けました。
そこで思いつきました。「Arduino IDEからTiny Avr/Pic Bootloader+を起動させればいいんじゃね」
Tiny Avr/Pic Bootloader+のホストプログラムからスケッチを書き込めば、リセットベクターの問題は解決します。
それが可能ならATtinyでもブートローダーを使用することができるので、ATtinyでもATmegaのように操作できるはず。
ネットで調べてみると、そのものズバリではありませんが、かなり近いことをされているページを見つけました。
http://make.kosakalab.com/arduino/bootloader/bitbang_w_ide.html
このページの解説によりますと
1.Arduinoはavrdudeを起動してプログラムの書き込みを行う。
2.avrdude_wrapper を作成すれば、Arduinoから任意の書き込みプログラムが起動できるとのことでした。
いや、コマンドを丸投げするArduinoもそれをフックするwrapper_wrapper も実にいい仕事をしているではありませんか。非常にすばらしいアイデアなので、使用させていただくことにしました。ありがとうございます。
[準備]
1.http://make.kosakalab.com/arduino/use/arduino_dev.htmlからATmega/ATtiny記述ファイルアーカイブ hardware.zipをダウンロード。
2.解凍してできるhardwareフォルダーをC:\Documents and Settings\Administrator\My Documents\Arduinoフォルダーにコピー。
3.Arduino-IDE付属のavrdude.exeを移動
C:\Program Files\arduino\hardwear\tools\avr\bin\avrdude.exeを
C:\Program Files\arduino\hardwear\tools\avr\etcフォルダに移動。
4.下に記載のソース(avrdude.c)をコンパイル(ボーランドc++,v5.5を使用)してavrdude.exeを作成し、
C:\Program Files\arduino\hardwear\tools\avr\bin\フォルダにコピー。
5.Arduino IDEを起動してツール-マイコンボードでATtinyが増えていることを確認。
6.attinyboards.txtの変更(下記はattiny13-8の場合)
C:\Documents and Settings\Administrator\My Documents\Arduino\hardware\attiny\boards.txtの変更点
attiny13-8.name=ATtiny13 (internal 9.6 MHz clock)
attiny13-8.upload.protocol=arduino
attiny13-8.upload.speed=9600
attiny13-8.bootloader.low_fuses=0x7a
attiny13-8.bootloader.high_fuses=0xef
attiny13-8.upload.maximum_size=856 ←flash最後部84ワードをブートローダーで使用、1024-84*2=856バイト
attiny13-8.build.mcu=attiny13
attiny13-8.build.f_cpu=9600000L
attiny13-8.build.core=arduino
attiny13-8.build.variant=tiny8
[使用方法](attiny13Aの場合、他のATTINYも同様の操作)
①ATtiny13AにTiny Avr/Pic Bootloader+ブートローダーファームウエアを書き込む、
ヒューズの設定はHigh=0xEF,Low=0x7A (CKDIV8=OFF,SELFPRGEN=ON,PORTB5=Reset Pin)
OSCCALの値は事前に調べておき、ファームウエアソースを変更、再コンパイル。
(前ページ「番外 ATTINY13A OSCCALの簡易校正」参照)
②ATtiny13Aの結線(VDD,VSS,TX,RX,RESET)
Tiny_Avr-Pic_Bootloader+ (v0.8.3.1)に添付する bootloader_13A_84w_r4をそのまま使用する場合
シリアルRXD(信号レベル/論理変換後) == ATtiny13A_softserial_TX=PORTB,4
シリアルTXD(信号レベル/論理変換後) == ATtiny13A_softserial_RX=PORTB,3
シリアルDTR(信号レベル/論理変換後) == ATtiny13A_RESET=PORTB,5 (0.1μFのコンデンサを介して接続)
③Arduino IDEを起動
④ツール-マイコンボードでATtiny13(internal 9.6MHz clock)を選択

⑤ツール-シリアルポートで通信に使用するCOMポートを選択

⑥ATtiny13用のスケッチをダウンロード (PORTB0を使用したLEDブリンキング)

⑦ファイル-マイコンボードに書き込む
ATtiny13AにリセットがかかりATtiny13Aに書き込んだブートローダーが起動する。
HEXファイル転送時にTiny Avr/Pic Bootloader+ホストプログラムが自動的に起動する。

⑧スケッチアップロード完了後、約1秒後にアプリケーションが自動起動する。
[avrdude.c ソースコード] (kosakalab.comさんオリジナルのソースを改変して使用しています。)
/* avrdude wrapper for windows
Programed by Kimio Kosaka 2009.05.01
License: GPL
*/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define DEBUG (0)
//replace strings
int strrep(char *buf, char *mae, char *ato)
{
char *mituke;
size_t maelen, atolen;
maelen = strlen(mae);
atolen = strlen(ato);
if (maelen == 0 || (mituke = strstr(buf, mae)) == NULL) return 0;
memmove(mituke + atolen, mituke + maelen, strlen(buf) - (mituke + maelen - buf ) + 1);
memcpy(mituke, ato, atolen);
return 1;
}
void main(int argc, char *argv[]){
int i;
char cmd[512]="";
char buff[256]="";
#if DEBUG == 1
printf("argc = %d\n", argc);
for (i = 0; i < argc; i++) {
printf("%d %s\n",i,argv[i]);
}
#endif
if(strstr(argv[4],"-pattiny")!=NULL){
strcpy(cmd,"C:\\\"Program Files\"\\\"Tiny_Avr-Pic_Bootloader+ (v0.8.3.1)\"\\Tiny_Avr-Pic_Bootloader+.exe");
strcat(cmd," \"");
//"-Uflash:w:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\build3004350469059206266.tmp\Blink.cpp.hex:i"
strncpy(buff, argv[9]+10, strlen(argv[9])-12);
strcat(cmd,buff);
strcat(cmd,"\" ");
//"-P\\.\COM1"
strncpy(buff, argv[6]+6, strlen(argv[6]));
strcat(cmd,buff);
strcat(cmd," ");
//"-b9600"
strncpy(buff, argv[7]+2, strlen(argv[7]));
strcat(cmd,buff);
}
else{
strcpy(buff,argv[0]);
strrep(buff,"bin","etc");
strrep(buff,"Program Files","\"Program Files\"");
strcpy(cmd,buff);
for (i = 1; i < argc; i++) {
strcat(cmd," \"");
strcat(cmd,argv[i]);
strcat(cmd,"\"");
}
}
#if DEBUG == 1
printf("\n-- command --\n%s\n",cmd);
#endif
system(cmd);
}
******************************************************************************
参考にさせていただいたページ (すばらいアイディアをどうもありがとうございました。重ねて御礼申し上げます。)
http://make.kosakalab.com/arduino/bootloader/bitbang_w_ide.html
http://make.kosakalab.com/arduino/use/arduino_dev.html
追記. Tiny Avr-Pic Bootloader+ のコマンドライン起動記述例
.
手持ちのATmega328Pにブートローダーを焼き、苦労しましたが何とかDuemilanoveのクローンを動作させることができました。
私は少ピンマイコンが好きなので、ATtinyでもArduinoが出来ないかと思い検索したところ、
ATtinyでは独立したブートROM領域を持たないため、もしATmegaのようにBootloaderをあらかじめ書き込んでから、
Arduinoのスケッチをアップロード出来たとしても、Arduinoのスケッチがリセットベクターを書き換えてしまうため、
二回目以降はBootloaderが起動できない問題があり、ArduinoからISP経由でATtinyに書き込む方法が主流のようです。
この方法は結線の手間が増えたり、リセットボタンを押し直す必要が増えたりとやや面倒な印象を受けました。
そこで思いつきました。「Arduino IDEからTiny Avr/Pic Bootloader+を起動させればいいんじゃね」
Tiny Avr/Pic Bootloader+のホストプログラムからスケッチを書き込めば、リセットベクターの問題は解決します。
それが可能ならATtinyでもブートローダーを使用することができるので、ATtinyでもATmegaのように操作できるはず。
ネットで調べてみると、そのものズバリではありませんが、かなり近いことをされているページを見つけました。
http://make.kosakalab.com/arduino/bootloader/bitbang_w_ide.html
このページの解説によりますと
1.Arduinoはavrdudeを起動してプログラムの書き込みを行う。
2.avrdude_wrapper を作成すれば、Arduinoから任意の書き込みプログラムが起動できるとのことでした。
いや、コマンドを丸投げするArduinoもそれをフックするwrapper_wrapper も実にいい仕事をしているではありませんか。非常にすばらしいアイデアなので、使用させていただくことにしました。ありがとうございます。
[準備]
1.http://make.kosakalab.com/arduino/use/arduino_dev.htmlからATmega/ATtiny記述ファイルアーカイブ hardware.zipをダウンロード。
2.解凍してできるhardwareフォルダーをC:\Documents and Settings\Administrator\My Documents\Arduinoフォルダーにコピー。
3.Arduino-IDE付属のavrdude.exeを移動
C:\Program Files\arduino\hardwear\tools\avr\bin\avrdude.exeを
C:\Program Files\arduino\hardwear\tools\avr\etcフォルダに移動。
4.下に記載のソース(avrdude.c)をコンパイル(ボーランドc++,v5.5を使用)してavrdude.exeを作成し、
C:\Program Files\arduino\hardwear\tools\avr\bin\フォルダにコピー。
5.Arduino IDEを起動してツール-マイコンボードでATtinyが増えていることを確認。
6.attinyboards.txtの変更(下記はattiny13-8の場合)
C:\Documents and Settings\Administrator\My Documents\Arduino\hardware\attiny\boards.txtの変更点
attiny13-8.name=ATtiny13 (internal 9.6 MHz clock)
attiny13-8.upload.protocol=arduino
attiny13-8.upload.speed=9600
attiny13-8.bootloader.low_fuses=0x7a
attiny13-8.bootloader.high_fuses=0xef
attiny13-8.upload.maximum_size=856 ←flash最後部84ワードをブートローダーで使用、1024-84*2=856バイト
attiny13-8.build.mcu=attiny13
attiny13-8.build.f_cpu=9600000L
attiny13-8.build.core=arduino
attiny13-8.build.variant=tiny8
[使用方法](attiny13Aの場合、他のATTINYも同様の操作)
①ATtiny13AにTiny Avr/Pic Bootloader+ブートローダーファームウエアを書き込む、
ヒューズの設定はHigh=0xEF,Low=0x7A (CKDIV8=OFF,SELFPRGEN=ON,PORTB5=Reset Pin)
OSCCALの値は事前に調べておき、ファームウエアソースを変更、再コンパイル。
(前ページ「番外 ATTINY13A OSCCALの簡易校正」参照)
②ATtiny13Aの結線(VDD,VSS,TX,RX,RESET)
Tiny_Avr-Pic_Bootloader+ (v0.8.3.1)に添付する bootloader_13A_84w_r4をそのまま使用する場合
シリアルRXD(信号レベル/論理変換後) == ATtiny13A_softserial_TX=PORTB,4
シリアルTXD(信号レベル/論理変換後) == ATtiny13A_softserial_RX=PORTB,3
シリアルDTR(信号レベル/論理変換後) == ATtiny13A_RESET=PORTB,5 (0.1μFのコンデンサを介して接続)
③Arduino IDEを起動
④ツール-マイコンボードでATtiny13(internal 9.6MHz clock)を選択

⑤ツール-シリアルポートで通信に使用するCOMポートを選択

⑥ATtiny13用のスケッチをダウンロード (PORTB0を使用したLEDブリンキング)

⑦ファイル-マイコンボードに書き込む
ATtiny13AにリセットがかかりATtiny13Aに書き込んだブートローダーが起動する。
HEXファイル転送時にTiny Avr/Pic Bootloader+ホストプログラムが自動的に起動する。

⑧スケッチアップロード完了後、約1秒後にアプリケーションが自動起動する。
[avrdude.c ソースコード] (kosakalab.comさんオリジナルのソースを改変して使用しています。)
/* avrdude wrapper for windows
Programed by Kimio Kosaka 2009.05.01
License: GPL
*/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define DEBUG (0)
//replace strings
int strrep(char *buf, char *mae, char *ato)
{
char *mituke;
size_t maelen, atolen;
maelen = strlen(mae);
atolen = strlen(ato);
if (maelen == 0 || (mituke = strstr(buf, mae)) == NULL) return 0;
memmove(mituke + atolen, mituke + maelen, strlen(buf) - (mituke + maelen - buf ) + 1);
memcpy(mituke, ato, atolen);
return 1;
}
void main(int argc, char *argv[]){
int i;
char cmd[512]="";
char buff[256]="";
#if DEBUG == 1
printf("argc = %d\n", argc);
for (i = 0; i < argc; i++) {
printf("%d %s\n",i,argv[i]);
}
#endif
if(strstr(argv[4],"-pattiny")!=NULL){
strcpy(cmd,"C:\\\"Program Files\"\\\"Tiny_Avr-Pic_Bootloader+ (v0.8.3.1)\"\\Tiny_Avr-Pic_Bootloader+.exe");
strcat(cmd," \"");
//"-Uflash:w:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\build3004350469059206266.tmp\Blink.cpp.hex:i"
strncpy(buff, argv[9]+10, strlen(argv[9])-12);
strcat(cmd,buff);
strcat(cmd,"\" ");
//"-P\\.\COM1"
strncpy(buff, argv[6]+6, strlen(argv[6]));
strcat(cmd,buff);
strcat(cmd," ");
//"-b9600"
strncpy(buff, argv[7]+2, strlen(argv[7]));
strcat(cmd,buff);
}
else{
strcpy(buff,argv[0]);
strrep(buff,"bin","etc");
strrep(buff,"Program Files","\"Program Files\"");
strcpy(cmd,buff);
for (i = 1; i < argc; i++) {
strcat(cmd," \"");
strcat(cmd,argv[i]);
strcat(cmd,"\"");
}
}
#if DEBUG == 1
printf("\n-- command --\n%s\n",cmd);
#endif
system(cmd);
}
******************************************************************************
参考にさせていただいたページ (すばらいアイディアをどうもありがとうございました。重ねて御礼申し上げます。)
http://make.kosakalab.com/arduino/bootloader/bitbang_w_ide.html
http://make.kosakalab.com/arduino/use/arduino_dev.html
追記. Tiny Avr-Pic Bootloader+ のコマンドライン起動記述例
Tiny_Avr-Pic_Bootloader+.exe "c:\test file.hex" COM8 9600
Tiny_Avr-Pic_Bootloader+.exe "c:\test file.hex" com8
Tiny_Avr-Pic_Bootloader+.exe "c:\test file.hex"
Tiny_Avr-Pic_Bootloader+.exe "c:\test file.hex" auto
.
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT