Hobby Lab 趣味のモノ作り実験のサイトです。
部品 プロセッサー他 CH32V 203マニュアル_10_GPIO
10. GPIOと代替機能(AFIO)
10.1 主な特徴

10.2 機能仕様
10.2.1 概要
10.2.2 GPIOの初期化
10.2.3 外部割り込み全てのGPIO
10.2.4 代替機能
10.2.5 ロック機構
10.2.6 入力設定
10.2.7 出力設定
10.2.8 代替機能設定
10.2.9 アナログ入力設定
10.2.10 周辺 GPIO 設定

10.3 レジスタの説明
10.3.1 GPIO レジスタ
10.3.1.1 GPIO*_CFGLR
10.3.1.2 GPIO*_CFGHR
10.3.1.3 GPIO*_INDR
10.3.1.4 GPIO*_OUTDR
10.3.1.5 GPIO*_BSHR
10.3.1.6 GPIO*_BCR
10.3.1.7 GPIO*_LCKR

10.3.2 AFIO レジスター
10.3.2.1 AFIO_ECR
10.3.2.2 AFIO_PCFR1
10.3.2.3 AFIO_EXTICR1
10.3.2.4 AFIO_EXTICR2
10.3.2.5 AFIO_EXTICR3
10.3.2.6 AFIO_EXTICR4
10.3.2.7 AFIO_PCFR

Pr:Prプロセッサ関係
PrP:プロセッサ
動作比較
 STM32F動作比較
 CH32V203&STM32F 動作比較
 arduino動作比較
raspberrypi関係
 RaspberryPiハード
CH32V関係
 -CH32V開始
 -203K8T6(32Pin)開始
 -203C8T6(48P)開始
 -003J4M6(8Pin)開始
 -003F4P6(20Pin)開始
 -Moun River StudioⅡ
 プログラミング!
  203_GPIO関係
  203_TIME関係
  203_TIME Encoder
  203_I2C関係
  203_1-Wire関係
  003_DS18B20テスター
  USART(UART)関係
  DS18B20をModBus制御
 -マニュアル
 203データシート
 203取説
  MBA メモリとバス方式
  PWR 電力制御
  RCC リセット・拡張・クロック
  BKP バックアップレジスタ
  CRC 巡回冗長検査
  RTC リアルタイムクロック
  GPIO GPIOと代替機能
  DMA ダイレクトメモリアクセス制御
  ADTM 高度な制御タイマー
  GPTM 汎用タイマー
  BCTM 基本タイマー
  USART 同期非同期通信
arduino関係
 ESP12関係
 (a)ESP-8266D1mini注意
PrP:その他  RS485ドライバー
 CP2102 BRIDGE
 WCH-LinkEエミュレーター
Pr:Wire 電線関係
Pr:Resistance 抵抗
Pr:Capacitor コンデンサ
Pr:Coil コイル
Pr:PassiveElmt 受動素子
Pr:Diode ダイオード関係
Pr:OPAMP オペアンプ関係
PrO:送受信機  Si4735
PrO:オペアンプ  LM324
 LM358
Pr:Tr トランジスタ関係
2SC1815
 リレードライバー設計
 アンプ設計
 発振器
TLP152
 TLP152テスト
TLP2361
 TLP2361テスト
TLP5754
 TLP5754テスト
Pr:Source 電源関係  ツェナーダイオード
 TL431
 LM317
PrS:Downモジュール
 EGS002_IR2110S
 SKU011012
 ACDC02
 XH_M299
 LM2596
 Mini360_MP23070N
 DROK
 WH140
PrS:UPモジュール
 MT3608
PrS:充電モジュール
 TP4056
Pr:Sensor_AD_時計等
PrS:電圧、電流
ADS1115 16bit4CH I2C A/D
 Hardware
 RaspberryPi_コマンド接続
 RaspberryPi_Python
 Arduino
 CH23V203 MounRiverStudioⅡ
INA226 I2C 直流電圧電流
 Hardware
 Arduino
 RaspberryPi_Python
WCS 電流ホール素子
 Hardware
PrS:温度、気圧、湿度、照度
BNE280 I2C 気圧,湿度,気温
 Hardware
 Arduino
 RaspberryPi_Python
BH1750 I2C 照度
 Hardware
 Arduino
 RaspberryPi_Python
DS18B20 1-Wire 温度計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:時間、日時
DS3231 I2C 時計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:表示器
MAR3953 320X480 3.95"
 概要と線や点を描く
 フォントを描く
SSD1306 I2C 0.96"OLED
 Hardware
 Arduino
 RaspberryPi_Python
Pr:Old Processor他

10.GPIOと代替機能(GPIO/AFIO)

GPIOポートは、プルアップ/プルダウン抵抗を内蔵しており、オフにしたり、プッシュプルまたはオープンドレイン機能として設定したりすることで、 さまざまな入力または出力モードに設定できます。
GPIOポートの他にもいくつかの代替機能があります。

10.1 主な特徴

ポートの各ピンは、以下のモードに設定できます。
● Floating input(フローティング入力)
● Pull-up input(プルアップ入力)
● Pull-down input(プルダウン入力)
● Open-drain output(オープンドレイン出力)
● Push-pull output(プシュプル出力)
● Input and output of alternate function(オルタネート機能の入出力)
● Analog input(アナログ入力)
多くのピンには代替機能があり、他の多くのペリフェラルは独自の出力チャネルと入力チャネルをこれらのピンにマッピングします。
これらの代替ピンの具体的な用途は各ペリフェラルごとに判断する必要があり、本章ではこれらのピンが代替ピンであるか再マッピングされているかを明記します。

10.2 機能仕様

10.2.1 概要

ピンにはチップ内部に2つの保護ダイオードがあり、IOポートは内部で入力駆動モジュールと出力駆動モジュールに分割しています。
入力駆動用の弱プルアップ抵抗とプルダウン抵抗はオプションで設定ができ、ADなどのアナログ入力周辺機器にも接続できる。
デジタル周辺機器に入力する場合は、TTLシュミットトリガを経由し、GPIO入力レジスタまたは alternate peripherals(代替周辺機器?) に接続する必要があります。
出力駆動にはMOSトランジスタが2つあります。
IOポートは、上側と下側のMOSトランジスタの極性を設定することで、オープンドレイン出力またはプッシュプル出力として設定できる。
出力ドライブは、GPIO または alternate peripherals (代替周辺機器?) によって制御する構成にすることもできます。
右図中例として 10.3.1.3 INDR は該当する 章とレジスター名を示しています。

10.2.2 GPIOの初期化

リセット直後、GPIOポートは初期状態で動作します。
この時、ほとんどのIOポートはフローティング入力状態で動作しますが、HSE*1などの周辺機能関連のピンは周辺機能の代替機能(10.2.4 AlternateFunctions)で動作しています。
具体的な初期化機能については、ピンの章を参照してください。
*1:HSE High-Speed External clock signal 外部水晶/セラミック共振器の生成や外部高速クロック入力のこと。
 参照:3.3.2 High-speed clock (HSI/HSE)

10.2.3 外部割り込みすべてのGPIO

ポートは外部割り込み入力チャネルで設定できますが、外部割り込み入力チャネルは最大1つのGPIOピンにしかマッピングできず、 外部割り込みチャネルのシリアル番号はGPIOポートのビット番号と一致している必要があります。
たとえば、PA1(またはPB1、PC1、PD1、PE1)は EXTI1 にのみマッピングでき、
EXTI1はPA1、PB1、PC1、PD1、PE1のいずれか1つからのマッピングのみを受け入れることができます。
両ポートは1対1の関係にあります。

10.2.4 代替機能(Alternate function)

代替機能を使用する場合は、以下の点に注意してください。
入力方向の代替機能を使用するには、ポートを代替入力モードに設定する必要があります。
プルアップとプルダウンの設定は実際のニーズに応じて設定できます。
出力方向の代替機能を使用するには、ポートを代替出力に設定する必要があります。
実際の状況に応じて、プッシュプルまたはオープンドレインモードを設定できます。
双方向交互機能の場合、ポートを多重出力モードに設定し、ドライバーはフロート制御入力モードとして設定されます。
同じ IO ポートで、このピンを代替する周辺機器が複数存在する場合があります。
そのため、各周辺機器を最大限に活用できるように、占有されているピンを回避しながら、デフォルトの代替ピンに加えて、 周辺機器の代替ピンを他のピンに再マップすることができます。

10.2.5 ロック機構

ロック機構はIOポートの設定をロックできます。
特定の書き込みシーケンスを実行すると、選択されたIOピンの設定がロックされ、次回のリセットまで変更できなくなります。

10.2.6 入力設定

IOポートが入力モードに設定されている場合、出力ドライバは切断され、入力プルアップとプルダウンはオプションとなり、代替機能とアナログ入力は接続されません。
各IOポートのデータは、APB2クロックごとに入力データレジスタにサンプリングされ、入力データレジスタの対応するビットが読み取られて、対応するピンのレベル状態が取得されます。



10.2.7 出力設定

IOポートが出力モードに設定されている場合、出力ドライバ内のMOSペアは、必要に応じてプッシュプルモードまたはオープンドレインモードに設定できます。
代替機能は使用できません。
入力ドライバのプルアップ抵抗とプルダウン抵抗は無効になり、TTLシュミットトリガがアクティブになり、IOピンに現れるレベルはAPB2クロックごとに入力データレジスタにサンプリングされます。
そのため、入力データレジスタを読み取ることでIOステータスを取得できます。
プッシュプル出力モードでは、出力データレジスタにアクセスすることで、前回書き込まれた値を取得できます。

10.2.8 アナログ入力設定

オルタネート機能を有効にすると、出力ドライバが有効になり、必要に応じてオープンドレインまたはプッシュプルモードに設定できます。
シュミットトリガもオンになり、オルタネート機能の入力ラインと出力ラインは接続されますが、出力データレジスタは切断され、 IOピンに現れるレベルはAPB2クロックごとに入力データレジスタにサンプリングされます。
オープンドレインモードでは、入力データレジスタを読み取ることでIOポートの現在の状態が取得されます。
プッシュプルモードでは、出力データレジスタを読み取ることで最後に書き込まれた値が取得されます。

10.2.9 周辺 GPIO 設定

アナログ入力が有効になると、出力バッファは切断され、入力ドライバのシュミットトリガ入力は無効になり、IOポートの消費を防ぎます。
プルアップ抵抗とプルダウン抵抗は無効になり、読み取り入力データレジスタは常に0になります。




10.2.10 周辺 GPIO 設定次の表

各周辺ピンに対応する GPIO ポート構成の推奨を示しています。




10.3 レジスタの説明

 10.3.1 GPIO レジスタ

特に指定がない限り、GPIO レジスタはワード単位で操作する必要があります。
(これらのレジスタは 32 ビットです)。
 出力端子番号の例として GPIOA15 が有るが、以下説明では A の部分を * 、15の部分を ** と表す。
NameAccess addressDescriptionReset value
R32_GPIO*_CFGLR0x40010800 + 0x400P* port configuration register low bit0x44444444
R32_GPIO*_CFGHR0x40010804 + 0x400P* port configuration register high bit0x44444444
R32_GPIO*_INDR0x40010808 + 0x400P* port input data register0x0000XXXX
R32_GPIO*_OUTDR0x4001080C + 0x400P* port output data register0x00000000
R32_GPIO*_BSHR0x40010810 + 0x400P* port set/reset register0x00000000
R32_GPIO*_BCR0x40010814 + 0x400P* port reset register0x00000000
R32_GPIO*_LCKR0x40010818 + 0x400P* port lock configuration register0x00000000
Name * = A~E だが CH32V393K8T6 は A~D です。
Access address は ポートA のアドレスを記載している。
 +400とは 『 ポートB は ポートA のアドレスに + 0x400 する。』を意味している。

10.3.1.1 GPIO*_CFGLR (*=A/B/C/D/E)

GCFGLR = ConFiGuration Low bit Register | Access base address 0x40010800 Offset address: 0x00 | * 400
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
CNF7MODE7CNF6MODE6CNF5MODE5CNF4MODE4 CNF3MODE3CNF2MODE2CNF1MODE1CNF0MODE0
RWRWRWRWRWRWRWRW RWRWRWRWRWRWRWRW
01000100 01000100 01000100 01000100
下段は Reset value
Reset value が CNF** + MODE** が 0x0100 ということは、フローティング入力になると言うことです。

CNF**

CNFのbit値とMODE値による動作説明
NameAccessbitMODE 値による動作説明Reset
value
0001~11
CNF**RW00アナログ入力プッシュプル出力01b
01フローティング入力オープンドレイン出力
10プルアップ・ダウン入力交互機能プッシュプル出力
11ーー交互機能オープドレイン出力

MODE**

Access:RW | Reset value:0
MODE値による動作説明
Name Accessbit動作説明Reset
value
MODE**RW00入力モード00b
01出力モード最高速度 10MHz
10最高速度 2MHz
11最高速度 50MHz

10.3.1.2 GPIO*_CFGHR (*=A/B/C/D/E)

CFGHR = ConFiGuration High bit Register | Access base address 0x40010800 Offset address: 0x04 | * 400
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
CNF15MODE15CNF14MODE14CNF13MODE13CNF12MODE12 CNF11MODE11CNF10MODE10CNF9MODE9CNF8MODE8
RWRWRWRWRWRWRWRW RWRWRWRWRWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value
CNFのbit値とMODE値による動作説明、MODE値による動作説明は 10.3.1.1と同様のため、割愛する。

10.3.1.3 GPIO*_INDR (*=A/B/C/D/E)

INDR = INput Data Registers | Access base address 0x40010800 Offset address: 0x08 | * 0x400
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved IDR15IDR14IDR13IDR12IDR11IDR10IDR9IDR8 IDR7IDR6IDR5IDR4IDR3IDR2IDR1IDR0
RO RORORORORORORORO RORORORORORORORO
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
下段は Reset value

IDR**

これらのビットは読み取り専用で、16ビット形式でのみ読み取ることができます。
読み取られた値は、対応するビットのハイ/ロー状態を表します。
リセットされた場合は、pinの入力の値になります。

10.3.1.4 GPIO*_OUTDR (*=A/B/C/D/E)

OUTDR = OUTput Data Register | Access base address 0x40010800 Offset address: 0x0C | * 0x400
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved ODR15ODR14ODR13ODR12ODR11ODR10ODR9ODR8 ODR7ODR6ODR5ODR4ODR3ODR2ODR1ODR0
RO RWRWRWRWRWRWRWRW RWRWRWRWRWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value

ODR**

Access:RW | Reset value:0
これらのビットは16ビット形式でのみ操作できます。
IOポートはこれらのレジスタの値を外部に出力します。
リセットされた場合は、0 になります。

10.3.1.5 GPIO*_BSHR (*=A/B/C/D/E)

BSHR = Bit Set/Reset register | Access base address 0x40010800 Offset address: 0x10 | * 0x400
BSHR の H が不明です。 もしかして slash の H か?
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
BR15BR14BR13BR12BR11BR10BR9BR8 BR7BR6BR5BR4BR3BR2BR1BR0 BS15BS14BS13BS12BS11BS10BS9BS8 BS7BS6BS5BS4BS3BS2BS1BS0
WOWOWOWOWOWOWOWO WOWOWOWOWOWOWOWO WOWOWOWOWOWOWOWO WOWOWOWOWOWOWOWO
00000000 00000000 00000000 00000000
下段は Reset value

BR**

これらのビットを設定すると対応するOUTDRビットがクリアされ、0を書き込んでも効果はありません。
これらのビットは16ビット形式でのみアクセスできます。
BRビットとBSビットが同時に設定されている場合、その時、BS ビットが有効になります。

BS**

これらのビットを設定すると対応するOUTDRビットが設定され、0を書き込んでも効果はありません。
これらのビットには、16ビット。
BRビットとBSビットが同じ値に設定されている場合は、その時、BS ビットが有効になります。
上記文面のまとめ。
BR**BS**動作説明
10OUTDRクリア
11定義なし
01OUTDR設定
00定義なし

10.3.1.6 GPIO*_BCR (*=A/B/C/D/E)

BCR = Bit Cliar Register ? | Access base address 0x40010800 Offset address: 0x14 | * 0x400
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved BR15BR14BR13BR12BR11BR10BR9BR8 BR7BR6BR5BR4BR3BR2BR1BR0
RO WOWOWOWOWOWOWOWO WOWOWOWOWOWOWOWO
00000000 00000000 00000000 00000000
下段は Reset value

BR**

このレジスタは書き込み専用です。
これらのビットをセットすると、対応するOUTDRビットがクリアされます。
0を書き込んでも効果はありません。
これらのビットには16ビット形式でのみアクセスできます。

10.3.1.7 GPIO*_LCKR (*=A/B/C/D/E)

LCKR = Lock Configuration Key Register | Access base address 0x40010800 Offset address: 0x18 | * 0x400
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
ReservedLCKK LCK15LCK14LCK13LCK12LCK11LCK10LCK9LCK8 LCK7LCK6LCK5LCK4LCK3LCK2LCK1LCK0
RORW RWRWRWRWRWRWRWRW RWRWRWRWRWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value

LCKK

このレジスターは読み書きできます。
LCKK ロックキー(Lock key)
特定のシーケンスで書き込むことでロックできますが、いつでも読み出すことができます。
0 として読み出すとロック解除状態、1 として読み出すとロック状態になります。
ロックキーの書き込みシーケンスは、1 書き込み - 0 書き込み - 1 書き込み - 0 読み取り - 1 読み取りです。
最後のステップは必須ではありませんが、ロックキーがアクティブ化されたかどうかを確認するために使用できます。
シーケンスの書き込み時にエラーが発生しても、アクティブ化はロックされません。
シーケンスの書き込み後、LCK** の値は変更できません。
ロックが有効になると、ポート構成は次のリセット後にのみ変更できます。

LCK**

これらのビットが 1 の場合、対応するポートの構成がロックされていることを意味します。
これらのビットは、LCKKがロック解除される前にのみ変更できます。
ロックされた設定は、設定レジスタ GPIOx_CFGLR と GPIOx_CFGHR を参照します。

 10.3.2 AFIO レジスター

特に指定がない限り、AFIO レジスタはワード単位で操作する必要があります (これらのレジスタを 32 ビットで操作します)。
NameAccess addressDescriptionReset value
R32_AFIO_ECR0x40010000Event control register0x00000000
R32_AFIO_PCFR10x40010004Remap register10x00000000
R32_AFIO_EXTICR10x40010008External interrupt configuration register10x00000000
R32_AFIO_EXTICR20x4001000CExternal interrupt configuration register20x00000000
R32_AFIO_EXTICR30x40010010External interrupt configuration register30x00000000
R32_AFIO_EXTICR40x40010014External interrupt configuration register40x00000000
R32_AFIO_PCFR20x4001001CRemap register20x00000000

10.3.2.1 AFIO_ECR

ECR = Event Control Register | Access base address 0x40010000 Offset address: 0x00
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved EVOEPORTPIN
RO RWRWRW
00000000 00000000 00000000 00000000
下段は Reset value

EVOE

イベント出力イネーブルビット。
このビットをセットすると、コアのEVENTOUTが選択されたIOポート(PORTとPIN)に接続されます。

PORT

コア出力EVENTOUTのポートを選択するために使用されます。
000PA port
001PB port
010PC port
011PD port
その他Reserved

PIN

これらのビットの値は、ポートへのコアEVENTOUTを選択するピン番号を決定するために使用されます。
値0~15は、PORTで選択されたPXのピン0~15に対応します。

10.3.2.2 AFIO_PCFR1

PCFR1 = xxxxxxx Remap Register1 ? | Access base address 00x40010000 Offset address: 0x04
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
ReservedPTP_PPSP_RMTIM2ITRA_RM SPI3_RMReservedSWCFG MII_RMII_SELCAN2_RMETH_RM ADC2_ETRGREG_RMADC2_ETRGINJ_RMADC1_ETRGREG_RMADC1_ETRGINJ_RMTIM4CH4_RM PD01RMCANRMTIM4_RMTIM3RMTIM2RMTIM1RM USART3RMUSART2RMUSART1RMI2C1RMSPI1RM
RORWRWRWRWRW RWRWRWRWRWRWRWRW RWRWRWRWRWRW RWRWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value
 
203K8T6に無い機能

PTP_PPSP_RM

203K8T6には有りません。
イーサネットPTP PPSリマップ
0PTP PPS は PB5 ピンに出力されません。
1PTP PPS は PB5 ピンに出力されます。

TIM2ITRA_RM

203K8T6には有りません。
TIM2内部トリガー1の再マップ
0TIM2_ITR1をイーサネットPTP出力に内部接続します。
1TIM2_ITR1をフルスピードUSB OTGのSOF出力に内部接続します。

SPI3_RM

203K8T6には有りません。
SPI3の再マップ
0デフォルトマップ (NSS/PA15、SCK/PB3、MSIO/PB4、MOSI/PB5);
1再マップ (NSS/PA4、SCK/PC10、MSIO/PC11、MOSI/PC12)。

SWCFG

? これらのビットは、IOポートのSW機能とトラッキング機能を設定するために使用されます。
SWD(RVSWD)は、コアにアクセスするためのデバッグインターフェースです。
システムリセット後は常にSWDポートとして使用されます。
0**SWD 有効 (RVSWD);
100SWD 無効 (RVSWD)、GPIO として機能します。
その他

MII_RMII_SEL

203K8T6には有りません。
MIIまたはRMIIの選択。
MIIインターフェースまたはRMIIインターフェース(PHY)を備えた外部トランシーバーを使用するように、内部イーサネットMACを設定します。
0MIIインターフェース(PHY)付き外部トランシーバを使用する。
1RMIIインターフェース(PHY)付き外部トランシーバを使用するよる。

CAN2RM

203K8T6には有りません。
CAN2 再マップ bit.
0デフォルトマップ (CAN2_RX/PB12、CAN2_TX/PB13)
1再マップ (CAN2_RX/PB5、CAN2_TX/PB6)

ETHRM

203K8T6には有りません。
インサーネット 再マップ bit.
0デフォルトマップ(RX_DV-CRS_DV/PA7、RXD0/PC4、RXD1/PC5、RXD2/PB0、RXD3/PB1);
1再マップ(RX_DV-CRS_DV/PD8、RXD0/PD9、RXD1/PD10、RXD2/PD11、RXD3/PD12)

ADC2_ETRGREG_RM

ADC1(2?)外部トリガーの通常変換のビットを再マップします。
0EXTI11 へ ADC1(2?) 外部トリガー通常変換
1TIM8_TRGO へ ADC1(2?) 外部トリガー通常変換

ADC2_ETRGINJ_RM

ADC2外部トリガー注入変換のビットを再マッピング
0EXTI15 へ ADC2外部トリガー注入変換
1TIM8_CH4 へ ADC2外部トリガー注入変換

ADC1_ETRGREG_RM

ADC1外部トリガーの通常変換のビットを再マップします。
0EXTI11 へ ADC1 外部トリガー通常変換
1TIM8_TRGO へ ADC1 外部トリガー通常変換

ADC1_ETRGINJ_RM

ADC1外部トリガー注入変換のビットを再マッピング
0EXTI15 へ ADC1外部トリガー注入変換
1TIM8_CH4 へ ADC1外部トリガー注入変換

TIM5CH4RM

タイマー5チャネルの再マッピング
0デフォルトマッピング。タイマー5チャネル4の再マッピング
1再マッピング。タイマー5チャネル4をLSI内部クロックにマッピング。

PD01RM

Pin2,3の設定
PD0およびPD1ピンの再マッピングビット。
このビットはユーザーによる読み書きが可能です。
PD0およびPD1のGPIO機能を再マッピングするかどうかを制御します。つまり、PD0およびPD1はOSC_INおよびOSC_OUTにマッピングされます。
メイン発振器HSEが有効になっている場合(システムが内部8MHz RC発振器で動作している場合)、PD0およびPD1はOSC_INおよびOSC_OUTピンにマッピングできます。
0PD0およびPD1の再マッピングは行われません。
1PD0はOSC_INに、PD1はOSC_OUTにマッピングされます。

CAN1RM

CAN1代替機能の再マッピングビット。ユーザーによる読み書きが可能です。
CAN_RXとCAN_TXの再マッピングを制御します。
00CAN1_RXはPA11に、CAN1_TXはPA12にマッピングされます。
01CAN1_RXはPB8に、CAN1_TXはPB9にマッピングされます。
10 Reserved
11CAN1_RXはPD0に、CAN1_TXはPD1にマッピングされます。

TIM4_RM

0
1

TIM3RM

タイマー3の再マッピングビット。
これらのビットはユーザーによる読み書きが可能です。
タイマー3のチャンネル1からチャンネル4への再マッピングを制御します。
00デフォルトマッピング (CH1/PA6、CH2/PA7、CH3/PB0、CH4/PB1)
01Reserved
10部分マッピング (CH1/PB4、CH2/PB5、CH3/PB0、CH4/PB1)
11完全マッピング (CH1/PC6、CH2/PC7、CH3/PC8、CH4/PC9)
注: 再マッピングはPD2のTIM3_ETRには影響しません。

TIM2RM

タイマー2のリマップビット。
これらのビットはユーザーによる読み書きが可能です。
タイマー2のチャンネル1からチャンネル4へのマッピング、およびGPIOポート上の外部トリガ(ETR)のマッピングを制御します。
00デフォルトマッピング(CH1/ETR/PA0、CH2/PA1、CH3/PA2、CH4/PA3)
01部分マッピング(CH1/ETR/PA15、CH2/PB3、CH3/PA2、CH4/PA3)
10部分マッピング(CH1/ETR/PA0、CH2/PA1、CH3/PB10、CH4/PB11)
11完全マッピング(CH1/ETR/PA15、CH2/PB3、CH3/PB10、CH4/PB11)

TIM1RM

タイマー1の再マップビット。
これらのビットはユーザーによる読み書きが可能です。
GPIOポートにおけるタイマー1のチャンネル1からチャンネル4、1Nから3N、外部トリガ(ETR)、およびブレーク入力(BKIN)のマッピングを制御します。
00デフォルトマップ(ETR/PA12、CH1/PA8、CH2/PA9、CH3/PA10、CH4/PA11、BKIN/PB12、CH1N/PB13、CH2N/PB14、CH3N/PB15)
01部分マップ(ETR/PA12、CH1/PA8、CH2/PA9、CH3/PA10、CH4/PA11、BKIN/PA6、CH1N/PA7、CH2N/PB0、CH3N/PB1)
10Reserved
11完全マップ (ETR/PE7、CH1/PE9、CH2/PE11、CH3/PE13、CH4/PE14、BKIN/PE15、CH1N/PE8、CH2N/PE10、CH3N/PE12)。

USART3RM

203K8T6には有りません。
USART3 再マップビット。
これらのビットはユーザーによる読み書きが可能です。
GPIO ポートにおける USART3 の CTS、RTS、CK、TX、RX 代替機能のマッピングを制御します。
00デフォルトマップ (TX/PB10、RX/PB11、CK/PB12、CTS/PB13、RTS/PB14)
01部分再マップ (TX/PC10、RX/PC11、CK/PC12、CTS/PB13、RTS/PB14)
10
11完全再マップ (TX/PD8、RX/PD9、CK/PD10、CTS/PD11、RTS/PD12)
注: CH32V20x_D6 および CH32F20x_D6 はデフォルトマップ (00b) のみをサポートします。

USART2RM

USART2の再マップビット。
このビットはユーザーによる読み書きが可能です。
GPIOポートにおけるUSART2のCTS、RTS、CK、TX、RX代替機能のマッピングを制御します。
0デフォルトマップ(CTS/PA0、RTS/PA1、TX/PA2、RX/PA3、CK/PA4)。
1再マップ(CTS/PD3、RTS/PD4、TX/PD5、RX/PD6、CK/PD7)。
注:CH32V20x_D6およびCH32F20x_D6は、デフォルトマップ(0b)のみをサポートします。

USART1RM

メモリーマップから見ると1bitのはずだが、説明は2bitになっている。??取説が信用できない。
UART1マップ構成下位ビット(AFIO_PCFR2レジスタのビット26(USART1RM1)と併用)。
0デフォルトマップ(CK/PA8、TX/PA9、RX/PA10、CTS/PA11、RTS/PA12)
01再マップ(CK/PA8、TX/PB6、RX/PB7、CTS/PA11、RTS/PA12)
10再マップ(CK/PA10、TX/PB15、RX/PA8、CTS/PA5、RTS/PA9)
11再マップ(CK/PA5、TX/PA6、RX/PA7、CTS/PC4、RTS/PC5)
注:CH32V20x_D6およびCH32F20x_D6は、デフォルトマップ(00b)と再マップ(01b)のみをサポートします。

I2C1RM

I2C1の再マップ。このビットはユーザーによる読み書きが可能です。
GPIOポートにおけるI2C1のSCLおよびSDA代替機能のマッピングを制御します。
0デフォルトマップ(SCL/PB6、SDA/PB7)
1再マップ(SCL/PB8、SDA/PB9)

SPI1RM

SPI1の再マップ。このビットはユーザーによる読み書きが可能です。
GPIOポートにおけるSPI1のNSS、SCK、MISO、MOSI代替機能のマッピングを制御します。
0デフォルトマップ(NSS/PA4、SCK/PA5、MISO/PA6、MOSI/PA7)
1再マップ(NSS/PA15、SCK/PB3、MISO/PB4、MOSI/PB5)

10.3.2.3 AFIO_EXTICR1

EXTICR1 = EXTernal Interrupt Configuration Register1 | Access base address 0x40010000 Offset address: 0x08
** = 0~3の領域
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved EXTI3EXTI2EXTI1EXTI0
RO RWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value

EXTI**(**=0~3)

外部割り込み入力ピン設定ビット。
これらのビットは、外部割り込みピンがどのポートピンにマッピングされるかを決定するために使用されます。
0000ピン**をPAピンにマッピング。
0001ピン**をPBピンにマッピング。
0010ピン**をPCピンにマッピング。
0011ピン**をPDピンにマッピング。
0100ピン**をPEピンにマッピング。※203K8T6には無い。
その他Reserved/td>

10.3.2.4 AFIO_EXTICR2

EXTICR2 = EXTernal Interrupt Configuration Register1 | Access base address 0x40010000 Offset address: 0x0C
** = 4~7の領域
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved EXTI7EXTI6EXTI5EXTI4
RO RWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value

EXTI**(**=4~7)

外部割り込み入力ピン設定ビット。
これらのビットは、外部割り込みピンがどのポートピンにマッピングされるかを決定するために使用されます。
0000ピン**をPAピンにマッピング。
0001ピン**をPBピンにマッピング。
0010ピン**をPCピンにマッピング。
0011ピン**をPDピンにマッピング。
0100ピン**をPEピンにマッピング。※203K8T6には無い。
その他Reserved/td>

10.3.2.5 AFIO_EXTICR3

EXTICR3 = EXTernal Interrupt Configuration Register1 | Access base address 0x40010000 Offset address: 0x010C
** = 8~11の領域
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved EXTI11EXTI10EXTI9EXTI8
RO RWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value

EXTI**(**=8~11)

外部割り込み入力ピン設定ビット。
これらのビットは、外部割り込みピンがどのポートピンにマッピングされるかを決定するために使用されます。
0000ピン**をPAピンにマッピング。
0001ピン**をPBピンにマッピング。
0010ピン**をPCピンにマッピング。
0011ピン**をPDピンにマッピング。
0100ピン**をPEピンにマッピング。※203K8T6には無い。
その他Reserved/td>

10.3.2.6 AFIO_EXTICR4

EXTICR4 = EXTernal Interrupt Configuration Register1 | Access base address 0x40010000 Offset address: 0x14
** = 12~15の領域
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
Reserved EXTI15EXTI14EXTI13EXTI12
RO RWRWRWRW
00000000 00000000 00000000 00000000
下段は Reset value

EXTI**(**=12~15)

外部割り込み入力ピン設定ビット。
これらのビットは、外部割り込みピンがどのポートピンにマッピングされるかを決定するために使用されます。
0000ピン**をPAピンにマッピング。
0001ピン**をPBピンにマッピング。
0010ピン**をPCピンにマッピング。
0011ピン**をPDピンにマッピング。
0100ピン**をPEピンにマッピング。※203K8T6には無い。
その他Reserved/td>

10.3.2.7 AFIO_PCFR

ECR = Event Control Register | Access base address 0x40010000 Offset address: 0x1C
■レジスター内容
3130292827262524 2322212019181716 1514131211109 8 7 6 5 4 3 2 1 0
ReservedUSART1_RM2 UART8_RMUART7_RM UART6_RMUART5_RMUART4_RM ReservedFSMC_NADVReserved TIM10_RMTIM9_RMTIM8_RMReserved
RORW RWRWRWRWRW RORWRO RWRWRWRO
00000000 00000000 00000000 00000000
下段は Reset value

USART1_RM2

マップは1bitだが、下の表では2bit説明
UART1マップ構成上位ビット。:203K8T6 には無い。
AFIO_PCFR1レジスタのビット2(USART1RM)と組み合わせて使用します。
00デフォルトマップ(CK/PA8、TX/PA9、RX/PA10、CTS/PA11、RTS/PA12)
01リマップ(CK/PA8、TX/PB6、RX/PB7、CTS/PA11、RTS/PA12)
10リマップ(CK/PA10、TX/PB15、RX/PA8、CTS/PA5、RTS/PA9)
11リマップ(CK/PA5、TX/PA6、RX/PA7、CTS/PC4、RTS/PC5)
注:CH32V20x_D6およびCH32F20x_D6は、デフォルトマップ(00b)とリマップ(01b)のみをサポートします。

UART8_RM

UART8 の再マップ:203K8T6 には無い。
00デフォルトマップ (TX/PC4、RX/PC5)
01 再マップ (TX/PA14、RX/PA15)
1x再マップ (TX/PE14、RX/PE15)

UART7_RM

UART7 の再マップ
00デフォルトマップ (TX/PC2、RX/PC3)
01 再マップ (TX/PA6、RX/PA7)
1x再マップ (TX/PE12、RX/PE13)
注: 203K8T6 には無い。

UART6_RM

UART6 の再マップ:203K8T6 には無い。
00デフォルトマップ (TX/PC0、RX/PC1)
01 再マップ (TX/PB8、RX/PB9)
1x再マップ (TX/PE10、RX/PE11)

UART5_RM

UART5 の再マップ:203K8T6 には無い。
00デフォルトマップ (TX/PC12、RX/PD2)
01 再マップ (TX/PB4、RX/PB5)
1x 再マップ (TX/PE8、RX/PE9)

UART4_RM

UART4 再マップ:203K8T6 には無い。
00デフォルトマップ (TX/PC10、RX/PC11)
01再マップ (TX/PB0、RX/PB1)
1X再マップ (TX/PE0、RX/PE1)
注: CH32V30x_D8C、CH32V30x_D8、CH32V30x_D8W、CH32V20x_D8、CH32F20x_D8C、CH32F20x_D8、およびCH32F20x_D8W に適用されます。
x0デフォルトマップ (CK/PB2、TX/PB0、RX/PB1、CTS/PB3、RTS/PB4)
x1再マップ (CK/PA6、TX/PA5、RX/PB5、CTS/PA7、RTS/PA15)
注:CH32V20x_D6およびCH32F20x_D6に適用されます。

FSMC_NADV

FSMC_NADV 再マッピング
0FSMC NADV は PB7 にマッピングされます。
1FSMC NADV 出力は無効です。

TIM10_RM

TIM10 再マップビット
00デフォルトマップ (ETR/PC10、CH1/PB8、CH2/PB9、CH3/PC3、CH4/PC11、BKIN/PC12、CH1N/PA12、CH2N/PA13、CH3N/PA14)
01部分マップ (ETR/PB11、CH1/PB3、CH2/PB4、CH3/PB5、CH4/PC15、BKIN/PB10、CH1N/PA5、CH2N/PA6、CH3N/PA7)
1x完全マップ (ETR/PD0、CH1/PD1、CH2/PD3、CH3/PD5、CH4/PD7、BKIN/PE2、CH1N/PE3、CH2N/PE4、CH3N/PE5)

TIM9_RM

TIM9 再マップビット
00デフォルトマップ (ETR/PA2、CH1/PA2、CH2/PA3、CH3/PA4、CH4/PC4、BKIN/PC5、CH1N/PC0、CH2N/PC1、CH3N/PC2);
01部分マップ (ETR/PA2、CH1/PA2、CH2/PA3、CH3/PA4、CH4/PC14、BKIN/PA1、CH1N/PB0、CH2N/PB1、CH3N/PB2);
1x完全マップ (ETR/PD9、CH1/PD9、CH2/PD11、CH3/PD13、CH4/PD15、BKIN/PD14、CH1N/PD8、CH2N/PD10、CH3N/PD12)

TIM8_RM

TIM8 再マップビット
0デフォルトマップ (ETR/PA0、CH1/PC6、CH2/PC7、CH3/PC8、CH4/PC9、BKIN/PA6、CH1N/PA7、CH2N/PB0、CH3N/PB1);
1再マップ (ETR/PA0、CH1/PB6、CH2/PB7、CH3/PB8、CH4/PC13、BKIN/PB9、CH1N/PA13、CH2N/PA14、CH3N/PA15);





































更新日 2025/11/24 19:52  管理者 平林 剛Hirabayashi Takeshi