続続続8ピンPICでUSB -30MHz+ソフトシリアル-
<考え方、背景>
前回の回路ではUSBのD+,D-,シリアルのTX,RXにI/Oピンを割り当てたため
74HC04を用いて水晶発振する回路構成でした。
余ったRA3をシリアルTXとし、D-をRA0に配置すれば、RA4-RA5に水晶を直結することが
可能になります。(シリアルTXはハードウエアからソフトウエアにスペックダウン。)
<回路図、配線図、写真>
この回路は従来の回路と同様に動作 します。



<プログラム上の変更点>
◎ CONFIG設定で_FOSC_HSを選択する(クロック入力にRA4,RA5を使用)
◎ RA0の初期設定値を出力から入力に変更
◎ D-のポートの割り当て変更により変更が必要な部分
◎ サブルーチン ProcessOut (以下は一例、ボーレートは9600)
※送信中に割り込みが発生すると送信不能となるため、送信中は割り込みを禁止する。
ProcessOut:
; Custom code goes here
btfss AF_BIT_INTERRUPT ; Is it an interrupt transfer?
return ; No
bcf INTCON,GIE ;割り込み禁止
; Interrupt transfer found, p
; Output Report and Send one byte.
movf RXDATA_BUFFER,W
rs1tx:
movwf rxd ;rxd=W
movlb 0x01 ;BANK1
bcf OPTION_REG,7
movlb 0x04 ;BANK4
bcf WPUA,TX ;スタートビット:TX=0
call bwait ;1ビット分待つ
bsf STATUS,C ;Carry=1
r1tx11:
rrf rxd,f ;Bit Output 0.13
btfss STATUS,C ; 0.13
bcf WPUA,TX ; 0.13
btfsc STATUS,C ; 0.13
bsf WPUA,TX ; 0.13
call bwait ;1ビット分待つ 0.27+102.4
bcf STATUS,C ;Carry=0 0.13
decfsz rxd,W ;8ビット送信したか? 0.13
goto r1tx11 ; 0.27 total:103.87us
bsf WPUA,TX ;ストップビット:TX=1
movlb 0x00 ;BANK0
bsf INTCON,GIE ;割り込み許可
bwait: ;1ビットのウエイトを作る
call bwait2 ;.27 us total:0.27+51.07+51.07=102.4 us
bwait2: ;1/2ビットのウエイトを作る
movlw .126 ;0.13 us
movwf rs ;0.13 us
decfsz rs,f ;0.13 us
goto $-1 ;0.27 us
goto $+1 ;0.27 us
return ;0.27 us total:51.07 us
<ファームウエアのHEXファイル>
:020000040000FA
:1000000010308B005529000000000000000008108F
:1000100088100C19092800000C1D0C280000000095
:100020000C1D0C282030840080010C191A280C1893
:100030001C286428000000140C1921280C182328FF
:100040006428000080140C1928280C182A28642819
:10005000000000150C192F280C1831286428000006
:1000600080150C1936280C18382864280000001652
:100070000C193D280C183F286428000080160C1924
:1000800044280C1846286428000000170C19801713
:100090000000840A80010C1950280C18522864288A
:1000A000000000140C1957280C1859286428000067
:1000B00080140C195E280C186028642800000015B4
:1000C0000C19801500003128A0189628201C9428AF
:1000D000201A90287011210DA106A11F7015701D06
:1000E0007A28F01E8328F0123D3084004C08D0009E
:1000F0004B088628701F832870132D3084003C081D
:10010000D0003B0886285A3023219428C720701934
:1001100094287308F200F01D9428F10A70149428B2
:100120002008CF002108D0008B1009007F30500537
:100130007206031D9428701CA2284F1D08005A3017
:1001400023219428D230232120300402CE00DA006B
:100150004E08033A031994287014F014F0134F1941
:10016000F0177011500DD006D01F70152030CF0041
:100170005B30D0004F0884000008CD005008840098
:100180004D088000CF0AD00ACE0BBA289428033E2F
:10019000CF000C140814FA308C0508100730CD007D
:1001A0000310CF0DCF0D4F0D083E50079B009A0155
:1001B0001C1591109B030530DD288C060000CD0B2B
:1001C000DD28E228E3280000001C8C069118142981
:1001D0000000801C8C06911814290000001D8C065C
:1001E000911814290000801D8C0691181429000014
:1001F000001E8C06911814290000801E8C06911890
:1002000014290000001F8C06911814290000801F7B
:100210008C06840A00000000001C8C06911814292A
:100220000000801C8C06ED28FA308C051C11182962
:1002300001301A290000000000008C060814053067
:100240008C0408100800CE000C140814FA308C0539
:1002500008100730CD0005308C060000CD0B2C298E
:100260003129322900004E1C8C0600003729CE1C93
:100270008C0600003B294E1D8C0600003F29CE1D38
:100280008C06000043294E1E8C0600004729CE1E16
:100290008C0600004B294E1F8C0600004F29CE1FF4
:1002A0008C060000142900340034CA230814881076
:1002B000C130950005308C0408108810F0012A30F8
:1002C000F200F300C330BD008B1705300C05031995
:1002D0000A22E02308108810701C6529F018792183
:1002E000F01FC829F823F0186F29701070196529BC
:1002F000FE29081088105A03EC005C30EA00F40173
:100300005230EB000130E90006305B1B0430EF0097
:1003100068100830EE006A0884000008DB006B08F3
:1003200084000830ED00681C9A2968105B08E90019
:10033000DB0CED035B08E906E909691CA629EF0B54
:10034000A829DB0CED0BA6296814ED0A0630EF0096
:10035000E90C800C5B08E900EE0BB929F40A74087B
:100360005A02033A0319BF29EB0A6B0884000830CC
:10037000EE00DB0CED0B9A29EA0AEC0B8B29F0104E
:10038000F01B0800F101C330AD005808D10008008F
:1003900060305205DB00D21FEE29D622DB0803199C
:1003A000D3298923E7295308063A031DDC29550878
:1003B000223A03198A23E922D30803197D2353081B
:1003C000083A0319802353080A3A031983230810B3
:1003D00088100301242203014E22072ADB08031997
:1003E000F3298923F7295308053A031985230810AF
:1003F0008810D1080319002A701065290810881088
:100400004B30AD00AE01AF01BB01BC01F01170106B
:1004100070176529081088100330EC0005300C05B2
:10042000031D0800EC0B0E2A2A30F200F30008002E
:1004300008108810C330BD1D4B30BD000130242290
:1004400001304E22F0160800003A03192B2A3E30E4
:1004500084004B082E2A2E3084003B08EB00FF302E
:10046000E900EA0000083F22840AEB0B322AE9097E
:1004700069088000840AEA096A0880000800E90621
:100480000830ED00EA0CEA13E90C031C4B2AA030FB
:10049000EA060130E906ED0B422A0800EF00003AB7
:1004A0000319572A3D308400CC014B085B2A2D30BC
:1004B0008400BC013B08033EEB000430EE00000862
:1004C000E9000830EC0001306905013C031D6A2A8F
:1004D000EE036C2A0630EE00E90C03016E020319EC
:1004E0007722EC0B632A840AEB0B5F2A08006F0863
:1004F000031D7C2ABC0A7D2ACC0A6B08ED00ED0A9C
:100500000408E8000008EA00800D840AED0B842A44
:10051000680884000930E8006C08E80200106A18D6
:100520000014E80B942ABE2A8010EA188014E80B05
:100530009A2AC02A00116A190015E80BA02AC22ABB
:100540008011EA198015E80BA62AC42A00126A1A3B
:100550000016E80BAC2AC62A8012EA1A8016E80BAD
:10056000B22AC82A00136A1B0017E80BB82ACA2A45
:100570008013EA1B8017E80BBE2ACC2A8010CF2AF2
:100580000011CF2A8011CF2A0012CF2A8012CF2A41
:100590000013CF2A8013CF2A840A00108403063068
:1005A000EE0001306C02031DEC030800083051021C
:1005B000031CE12AD1000830BB000319E32AF0151F
:1005C000E42A5108BB00F011C330AD1D4B30AD0023
:1005D00008005508013A0319F22A5508023A03198E
:1005E0001C2B08007108013A0319092B7108023A03
:1005F0000319182B1230AE000130AF001030B000DC
:100600000130B100FF30B200B301B4010830B500D1
:100610000800D830AE000430AF002830B0000630FB
:10062000B1000030B2000130B300B401B5010800E0
:10063000AE010130AF0008007108013A03193E2BEA
:100640007108023A03194C2B7108053A03197A2BE9
:100650007108043A0319692B7108033A0319592BDD
:100660000930AE000230AF002930B000B1010130D6
:10067000B200B300B4018030B50008003230AE00E3
:100680000930AF000430B000B101B2010230B30054
:100690000330B400B5010800AE01AF010930B0006D
:1006A0002130B1001030B2000130B300B401B50008
:1006B00008002230AE001930AF00B0010730B100A1
:1006C0000530B2008130B3000330B4000830B5000B
:1006D00008000030AE000830AF000730B000053031
:1006E000B1000130B2000330B3000830B400003074
:1006F000B50008000830AE000800AE01AF010800E8
:100700000130AE000800AE0108005E08F300F313EC
:10071000080008007108013A0319A72B7108023A72
:100720000319B62B7108033A0319C72B0630AE0024
:10073000A030AF00FF30B0000930B1000130B2008E
:10074000A130B3000130B4000930B5000800033017
:10075000AE001530AF00B0012630B100FF30B2005E
:10076000B3017530B4000830B50008009530AE0014
:100770000130AF008130B0000230B1000930B2006A
:100780000430B3009130B4000230B5000800C0302E
:10079000AE000800081488148C0104309E00083054
:1007A0009F000C309B0003309C0090309D0088100F
:1007B000FF308C0008108C01981120309C0008003C
:1007C000911E0800081488141D19F02B9D18F32B96
:1007D000190808108810BE000130CB00182208004C
:1007E00019089D1CF52B1D121D16081088100800F5
:1007F000701D08008B135208F60021009513240089
:100800008C110F240314F60C031C8C1103188C1587
:100810000F240310760B032C8C1520008B1710244B
:0C0820007E30F500F50B122C152C0800A2
:020000040001F9
:02000E00A2C985
:02001000FFDD12
:00000001FF
.
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 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