続PIC10F322 ソフトシリアル一考察
続PIC10F322 ソフトシリアル一考察
PIC10F322では下図のようにピン割り当てが行われており、入力専用のRA3を除くRA0~RA2に多くの機能が割り当てられています。
PIC10F322は少ピンですので、入力専用のRA3も出力として使用できれば、プログラム設計の自由度は大幅に向上します。
この一例として前のページではLED点灯の方法を示しました。
このページでは次に入力ポートを通信出力として使う方法について考察します。
入力ポートのみでソフトシリアルインターフェイスを構成する方法
壱.追加するハードウエア
実験の結果、トランジスタの反転回路2段が確実なようです。
ブートローダに適用した回路図を以下に示します。
この回路を使用する場合JMP_TXのジャンパはショートしてはいけません。

弐.ソフトウエアの変更ポイント
基本的な変更として送信サブルーチンに以下の処置が必要です。
(1)OPTION_REGレジスタのビット7をLowにしてポートのプルアップを有効にする。
(2)WPUAレジスタをPORTAレジスタのように使用しビット操作する。
以下のプログラムは入力ポートのみで構成したブートローダーで、赤文字の部分が従来からの変更点です。ブートローダーとしての動作を確認しています。
注意.OPTION_REGレジスタの操作を送信サブルーチンの外で行うと信号レベルが変化して正常に作動しません。
<ソースプログラム>
radix DEC
LIST P=PIC10F322
xtal EQU 8000000 ; you may also want to change: _HS_OSC _XT_OSC
baud EQU 9600 ; standard TinyBld baud rates: 115200 or 19200
; The above 3 lines can be changed and buid a bootloader for the desired frequency (and PIC type)
;********************************************************************
; Tiny Bootloader 10F322 Size=100words
; claudiu.chiculita@ugal.ro
; http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm
;********************************************************************
#include "../icdpictypes.inc" ;takes care of: #include "p16fxxxA.inc", max_flash, IdTypePIC
; #include "../spbrgselect.inc"
; #include "../bankswitch.inc"
#define first_address max_flash-100 ; 100 word in size
__CONFIG _FOSC_INTOSC & _BOREN_OFF & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _LVP_OFF & _LPBOR_OFF & _BORV_HI & _WRT_OFF
#define TX 2 ;RS-232C データ出力用ポート
#define RX 3 ;RS-232C データ入力用ポート
#define Direct_TX ;RS-232C直結方式、コメントアウトで反転方式
#define Direct_RX ;RS-232C直結方式、コメントアウトで反転方式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;注意)
; TXとして選択可能なPORTAのビットは、0,1,2,3のいずれか
; RXとして選択可能なPORTAのビットは、0,1,2,3のいずれか
;
; 直結方式とは、抵抗やレベル変換ICを用いてシリアルポートとPICを接続する方法
; 反転方式とは、MAX232を使用した場合のように専用のレベル変換ICを用いてシリアルポートとPICを接続する方法
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; errorlevel 1, -305 ; suppress warning msg that takes f as default
cblock 0x40
buffer:32
endc
cblock 0x7D
crc ;0x7D
rs ;0x7E
rxd ;0x7F
endc
;btime equ 53h ;9600bps 10MHz 時のウエイトタイム
btime equ 42h ;9600bps 8MHz 時のウエイトタイム
;btime equ 1fh ;9600bps 4MHz 時のウエイトタイム
;btime equ 28h ;19200bps 10MHz 時のウエイトタイム
;btime equ 0eh ;19200bps 4MHz 時のウエイトタイム
User_Program equ 0x0001 ;ブートローダーの出口
SendL macro car
movlw car
call rs1tx
endm
;0000000000000000000000000 RESET 00000000000000000000000000
org 0x0000
goto IntrareBootloader
;view with TabSize=4
;&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&
;---------------------- Bootloader ----------------------
;
;PC_flash: C1h AddrH AddrL nr ...(DataLo DataHi)... crc
;PIC_response: id K K
org first_address
; nop
; nop
; nop
; nop
org first_address+4
IntrareBootloader
;init int clock & serial port
clrf ANSELA ;digital I/O
comf T2CON,F ;TMR2=ON,PRE=1:64,POST=1:16
; bcf TRISA,TX ;TXポートをセット
;wait for computer
call Receive
sublw 0xC1 ;Expect C1
skpz
goto way_to_exit
SendL IdTypePIC ;PIC type
; SendL IdSoftVer ;firmware ver x
MainLoop
SendL 'K'
mainl
clrf crc ;clear checksum
call Receive ;get PMADRH
movwf PMADRH
call Receive ;get PMADRL
movwf PMADRL
call Receive ;get count
movlw buffer ;FSR=Buffer_Top
movwf FSR
rcvoct
call Receive ;get data
movwf INDF
incf FSR,f
btfss FSR,5 ;FSR=Buffer_Top+0x20=0x60?
goto rcvoct
call Receive ;get checksum
skpz
goto ziieroare
call wr_e ;erase operation
;write
bcf FSR,5 ;FSR=0x60-0x20=0x40=Buffer_Top
writeloop ;write 2 bytes = 1 instruction
movf INDF,w ;L
incf FSR,f
movwf PMDATL
movf INDF,w ;H
incf FSR,f
movwf PMDATH
call wr_w ;write operation
incf PMADRL,f ;does not cross zones
btfss FSR,5 ;FSR=Buffer_Top+0x20=0x60?
goto writeloop
goto MainLoop
ziieroare
SendL 'N'
goto mainl
Receive
clrf TMR2
bcf PIR1,TMR2IF
rptc
#ifdef Direct_RX
btfss PORTA,RX
#else
btfsc PORTA,RX
#endif
goto loop ;STARTビットが未検出ならループ
r1rx11
call bwait2 ;1/2ビット分待つ
movlw B'10000000' ;rxd=B'10000000'
movwf rxd
r1rx12
call bwait ;1ビット分待つ
bcf STATUS,C ;
#ifdef Direct_RX
btfss PORTA,RX
#else
btfsc PORTA,RX
#endif
bsf STATUS,C ;
rrf rxd,f ;Carry=0->0->0->0->0->0->0->1
btfss STATUS,C ;Carry=1 ?
goto r1rx12 ;Carry=0ならループ
call bwait2 ;1/2ビット分待つ
call bwait ;1ビット分待つ(STOPビット)
movf rxd,W ;W=rxd
addwf crc,f ;compute checksum
return
loop
btfss PIR1,TMR2IF
goto rptc
way_to_exit
goto User_Program ;timeout:exit in all other cases
;*************************************************************
;
; フラッシュデータメモリー操作サブルーチン
;
; wr_e :PMADRで指定したアドレスを含む16ワード境界のデータブロック
; (16ワード)を消去する。
; 例.PMADRH:PMADRL=0x0137のとき、0x0130~0x013Fを消去
;
; wr_w :PMADRで指定したアドレスのデータを書き込む。
; 書き込むデータはPMDATに予めセットしておく。
;
; ********************************************************************
wr_e
bsf PMCON1,FREE
wr_w
bsf PMCON1,WREN
movlw 0x55
movwf PMCON2
movlw 0xaa
movwf PMCON2
bsf PMCON1,WR ;WR=1
nop
nop
clrf PMCON1 ;CFGS=0 LWLO=0 FREE=0 WREN=0
ret00
return
; ********************************************************************
;
; RS-232C 1文字送信
;
; 送信文字を W にセットして呼ぶ
;
; ********************************************************************
rs1tx movwf rxd ;rxd=W
bcf OPTION_REG,7
#ifdef Direct_TX
; bsf PORTA,TX ;スタートビット:TX=1
bsf WPUA,TX
call bwait ;1ビット分待つ
bsf STATUS,C ;Carry=1
r1tx11 rrf rxd,f ;Bit Output
btfss STATUS,C ;
; bsf PORTA,TX ;
bsf WPUA,TX
btfsc STATUS,C ;
; bcf PORTA,TX ;
bcf WPUA,TX
call bwait ;1ビット分待つ
bcf STATUS,C ;Carry=0
decfsz rxd,W ;8ビット送信したか?
goto r1tx11 ;
; bcf PORTA,TX ;ストップビット:TX=0
bcf WPUA,TX
#else
; bcf PORTA,TX ;スタートビット:TX=0
bcf WPUA,TX
call bwait ;1ビット分待つ
bsf STATUS,C ;Carry=1
r1tx11 rrf rxd,f ;Bit Output
btfss STATUS,C ;
; bcf PORTA,TX ;
bcf WPUA,TX
btfsc STATUS,C ;
; bsf PORTA,TX ;
bsf WPUA,TX
call bwait ;1ビット分待つ
bcf STATUS,C ;Carry=0
decfsz rxd,W ;8ビット送信したか?
goto r1tx11 ;
; bsf PORTA,TX ;ストップビット:TX=1
bsf WPUA,TX
#endif
bwait ;1ビットのウエイトを作る
call bwait2 ;1 us total:1+49+49=99 us
bwait2 ;1/2ビットのウエイトを作る
movlw btime/2-2 ;0.5 us
movwf rs ;0.5 us
decfsz rs,f ;0.5 us
goto $-1 ;1 us
goto ret00 ;1 us total:0.5+0.5+(0.5+1)*(33-2)-0.5+1+1=49 us
; ********************************************************************
; After reset
; Do not expect the memory to be zero,
; Do not expect registers to be initialised like in catalog.
end
PIC10F322では下図のようにピン割り当てが行われており、入力専用のRA3を除くRA0~RA2に多くの機能が割り当てられています。

PIC10F322は少ピンですので、入力専用のRA3も出力として使用できれば、プログラム設計の自由度は大幅に向上します。
この一例として前のページではLED点灯の方法を示しました。
このページでは次に入力ポートを通信出力として使う方法について考察します。
入力ポートのみでソフトシリアルインターフェイスを構成する方法
壱.追加するハードウエア
実験の結果、トランジスタの反転回路2段が確実なようです。
ブートローダに適用した回路図を以下に示します。
この回路を使用する場合JMP_TXのジャンパはショートしてはいけません。

弐.ソフトウエアの変更ポイント
基本的な変更として送信サブルーチンに以下の処置が必要です。
(1)OPTION_REGレジスタのビット7をLowにしてポートのプルアップを有効にする。
(2)WPUAレジスタをPORTAレジスタのように使用しビット操作する。
以下のプログラムは入力ポートのみで構成したブートローダーで、赤文字の部分が従来からの変更点です。ブートローダーとしての動作を確認しています。
注意.OPTION_REGレジスタの操作を送信サブルーチンの外で行うと信号レベルが変化して正常に作動しません。
<ソースプログラム>
radix DEC
LIST P=PIC10F322
xtal EQU 8000000 ; you may also want to change: _HS_OSC _XT_OSC
baud EQU 9600 ; standard TinyBld baud rates: 115200 or 19200
; The above 3 lines can be changed and buid a bootloader for the desired frequency (and PIC type)
;********************************************************************
; Tiny Bootloader 10F322 Size=100words
; claudiu.chiculita@ugal.ro
; http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm
;********************************************************************
#include "../icdpictypes.inc" ;takes care of: #include "p16fxxxA.inc", max_flash, IdTypePIC
; #include "../spbrgselect.inc"
; #include "../bankswitch.inc"
#define first_address max_flash-100 ; 100 word in size
__CONFIG _FOSC_INTOSC & _BOREN_OFF & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _LVP_OFF & _LPBOR_OFF & _BORV_HI & _WRT_OFF
#define TX 2 ;RS-232C データ出力用ポート
#define RX 3 ;RS-232C データ入力用ポート
#define Direct_TX ;RS-232C直結方式、コメントアウトで反転方式
#define Direct_RX ;RS-232C直結方式、コメントアウトで反転方式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;注意)
; TXとして選択可能なPORTAのビットは、0,1,2,3のいずれか
; RXとして選択可能なPORTAのビットは、0,1,2,3のいずれか
;
; 直結方式とは、抵抗やレベル変換ICを用いてシリアルポートとPICを接続する方法
; 反転方式とは、MAX232を使用した場合のように専用のレベル変換ICを用いてシリアルポートとPICを接続する方法
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; errorlevel 1, -305 ; suppress warning msg that takes f as default
cblock 0x40
buffer:32
endc
cblock 0x7D
crc ;0x7D
rs ;0x7E
rxd ;0x7F
endc
;btime equ 53h ;9600bps 10MHz 時のウエイトタイム
btime equ 42h ;9600bps 8MHz 時のウエイトタイム
;btime equ 1fh ;9600bps 4MHz 時のウエイトタイム
;btime equ 28h ;19200bps 10MHz 時のウエイトタイム
;btime equ 0eh ;19200bps 4MHz 時のウエイトタイム
User_Program equ 0x0001 ;ブートローダーの出口
SendL macro car
movlw car
call rs1tx
endm
;0000000000000000000000000 RESET 00000000000000000000000000
org 0x0000
goto IntrareBootloader
;view with TabSize=4
;&&&&&&&&&&&&&&&&&&&&&&& START &&&&&&&&&&&&&&&&&
;---------------------- Bootloader ----------------------
;
;PC_flash: C1h AddrH AddrL nr ...(DataLo DataHi)... crc
;PIC_response: id K K
org first_address
; nop
; nop
; nop
; nop
org first_address+4
IntrareBootloader
;init int clock & serial port
clrf ANSELA ;digital I/O
comf T2CON,F ;TMR2=ON,PRE=1:64,POST=1:16
; bcf TRISA,TX ;TXポートをセット
;wait for computer
call Receive
sublw 0xC1 ;Expect C1
skpz
goto way_to_exit
SendL IdTypePIC ;PIC type
; SendL IdSoftVer ;firmware ver x
MainLoop
SendL 'K'
mainl
clrf crc ;clear checksum
call Receive ;get PMADRH
movwf PMADRH
call Receive ;get PMADRL
movwf PMADRL
call Receive ;get count
movlw buffer ;FSR=Buffer_Top
movwf FSR
rcvoct
call Receive ;get data
movwf INDF
incf FSR,f
btfss FSR,5 ;FSR=Buffer_Top+0x20=0x60?
goto rcvoct
call Receive ;get checksum
skpz
goto ziieroare
call wr_e ;erase operation
;write
bcf FSR,5 ;FSR=0x60-0x20=0x40=Buffer_Top
writeloop ;write 2 bytes = 1 instruction
movf INDF,w ;L
incf FSR,f
movwf PMDATL
movf INDF,w ;H
incf FSR,f
movwf PMDATH
call wr_w ;write operation
incf PMADRL,f ;does not cross zones
btfss FSR,5 ;FSR=Buffer_Top+0x20=0x60?
goto writeloop
goto MainLoop
ziieroare
SendL 'N'
goto mainl
Receive
clrf TMR2
bcf PIR1,TMR2IF
rptc
#ifdef Direct_RX
btfss PORTA,RX
#else
btfsc PORTA,RX
#endif
goto loop ;STARTビットが未検出ならループ
r1rx11
call bwait2 ;1/2ビット分待つ
movlw B'10000000' ;rxd=B'10000000'
movwf rxd
r1rx12
call bwait ;1ビット分待つ
bcf STATUS,C ;
#ifdef Direct_RX
btfss PORTA,RX
#else
btfsc PORTA,RX
#endif
bsf STATUS,C ;
rrf rxd,f ;Carry=0->0->0->0->0->0->0->1
btfss STATUS,C ;Carry=1 ?
goto r1rx12 ;Carry=0ならループ
call bwait2 ;1/2ビット分待つ
call bwait ;1ビット分待つ(STOPビット)
movf rxd,W ;W=rxd
addwf crc,f ;compute checksum
return
loop
btfss PIR1,TMR2IF
goto rptc
way_to_exit
goto User_Program ;timeout:exit in all other cases
;*************************************************************
;
; フラッシュデータメモリー操作サブルーチン
;
; wr_e :PMADRで指定したアドレスを含む16ワード境界のデータブロック
; (16ワード)を消去する。
; 例.PMADRH:PMADRL=0x0137のとき、0x0130~0x013Fを消去
;
; wr_w :PMADRで指定したアドレスのデータを書き込む。
; 書き込むデータはPMDATに予めセットしておく。
;
; ********************************************************************
wr_e
bsf PMCON1,FREE
wr_w
bsf PMCON1,WREN
movlw 0x55
movwf PMCON2
movlw 0xaa
movwf PMCON2
bsf PMCON1,WR ;WR=1
nop
nop
clrf PMCON1 ;CFGS=0 LWLO=0 FREE=0 WREN=0
ret00
return
; ********************************************************************
;
; RS-232C 1文字送信
;
; 送信文字を W にセットして呼ぶ
;
; ********************************************************************
rs1tx movwf rxd ;rxd=W
bcf OPTION_REG,7
#ifdef Direct_TX
; bsf PORTA,TX ;スタートビット:TX=1
bsf WPUA,TX
call bwait ;1ビット分待つ
bsf STATUS,C ;Carry=1
r1tx11 rrf rxd,f ;Bit Output
btfss STATUS,C ;
; bsf PORTA,TX ;
bsf WPUA,TX
btfsc STATUS,C ;
; bcf PORTA,TX ;
bcf WPUA,TX
call bwait ;1ビット分待つ
bcf STATUS,C ;Carry=0
decfsz rxd,W ;8ビット送信したか?
goto r1tx11 ;
; bcf PORTA,TX ;ストップビット:TX=0
bcf WPUA,TX
#else
; bcf PORTA,TX ;スタートビット:TX=0
bcf WPUA,TX
call bwait ;1ビット分待つ
bsf STATUS,C ;Carry=1
r1tx11 rrf rxd,f ;Bit Output
btfss STATUS,C ;
; bcf PORTA,TX ;
bcf WPUA,TX
btfsc STATUS,C ;
; bsf PORTA,TX ;
bsf WPUA,TX
call bwait ;1ビット分待つ
bcf STATUS,C ;Carry=0
decfsz rxd,W ;8ビット送信したか?
goto r1tx11 ;
; bsf PORTA,TX ;ストップビット:TX=1
bsf WPUA,TX
#endif
bwait ;1ビットのウエイトを作る
call bwait2 ;1 us total:1+49+49=99 us
bwait2 ;1/2ビットのウエイトを作る
movlw btime/2-2 ;0.5 us
movwf rs ;0.5 us
decfsz rs,f ;0.5 us
goto $-1 ;1 us
goto ret00 ;1 us total:0.5+0.5+(0.5+1)*(33-2)-0.5+1+1=49 us
; ********************************************************************
; After reset
; Do not expect the memory to be zero,
; Do not expect registers to be initialised like in catalog.
end
.
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 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