ETCB Manual
HARDWARE & PROGRAMMING MANUAL目次
始めにETCB仕様

開発環境の構築

01

始めに始めに始めに注意事項


免責事項

同梱品




02

始めにサポート

03

ETCB仕様ETCB仕様
概要

仕様項目

サブ項目

内容

電源

推奨入力電圧6.6V～12V

最大入力電圧16V

出力電圧

内部3.3V
外部5.0V

MCU

最大出力電流値

最大2.2A

最大連続出力電流値

2A以下

型番

STMicroelectronics STM32F302C8

メモリー

16kB SRAM
64kB Flash

IO

CLOCK

72MHz（最大・標準）

ADコンバータ・12bit ADC入力ポートx4（カットオフ周波数1.6kHzのローパスフィルタ付き）
・ADCリファレンス電圧は3.3Vまたは5.0Vのいずれかを選択可能。ただしADC入力電圧は3.3Vを超えてはならない

サーボ・シリアルサーボ、コマンドサーボに対応
・PWMサーボは使用できません
・サーボポート2系統（UART2、UART3）各6ポート
・信号ライン電圧5.0Vサーボに対応
・UART2、UART3ポートと排他的利用可能
・サーボ電圧は入力電源電圧と同じ

04

ETCB仕様・PA15ピンにてサーボへの電源供給ON/OFF切り替え可能
・サーボポートは1系統あたり最大連続電流値3A以下を推奨
USB

・PC接続用USBポートx1（FTDI FT230XS経由で仮想COMポートとして使用）
・USBポートx1（MCUのUSB DP、DM端子と接続）

UART1・外部拡張ポート（EXT）、COM1ポートと共有可・Raspberry Piとポート共有可能

UART2

・UART2ポートおよびサーボポートS7～S12に接続、UART2ポート

UART3・UART3ポートおよびサーボポートS1～S6に接続、UART3ポート

I2C

・I2C1として利用とS1～S6ポートは排他的利用可能とS7～S12ポートは排他的利用可能
・Raspberry Piとジャンパピンにて共有可能
・I2C_SDAおよびI2C_SCL端子は10kΩでプルアップ済み
SPI

・SPI1として使用
・Raspberry Piと接続

GPIO1～GPIO4・EXTポートに接続
・MCU GPIOポートまたはTSC_G2_IO1～4ポートとして使用可能

LEDGPIO5・Raspberry Pi GPIO22と接続

GPIO6・Raspberry Pi GPIO23と接続

D1・仮想COMポートを使って、MCU側より送信時に点灯（変更可

D2・EXTポートに接続

能）・フルカラーLED・MCU端子PA8、PA9、PA10にLED RED、GREEN、BLUEがそれぞれ接続・PA8～10はAlternate FunctionとしてTIM_CH1～3に変更できる
ので、PWM出力可能

書き込み

USB1

・DFUポートをショートしてETCBボードを起動すると、PCからDFU形式のプログラムが書き込み可能

ST-LINK

・EXTポートの3.3V OUT、GND、SWDIO、SWCLK、NRSTポートを使用してSTMicroelectornics ST-LINK/v2でプログラム・デバッ
ク可能

対応Raspberry Pi

05

ETCB仕様



注意事項




06

外部接続詳細
外部接続詳細
外観・ポート07

外部接続詳細ETCB接続ポート
電源（POW）

COMポート（COM1）

AD変換ポート（ADC）

08

外部接続詳細UART2・UART3S1～S2

EXTポートUART（UART_TX・UART_RX）

I2C

その他通信ポート
SPI

GPIO1～4

GPIO5・GPIO6PWM（フルカラーLED）

09

外部接続詳細ST-LINK/v2を使うときのETCBとの接続

10

開発環境の構築

開発環境の構築
ハードウェアの設定
ADポート入力電圧の設定

Raspberry Piとドッキング

ソフトウェアのインストール





11

開発環境の構築

Atollic TrueSTUDIOのインストール

DfuSe Demonstrationのインストール

12

開発環境の構築
STM32CubeMXのインストール

STM32CubeMXアップデートとライブラリのアップデート

STM32CubeMXのアップデート

13

開発環境の構築

ライブラリのアップデート

14

プログラム作成と書き込み・実行
プログラム作成と書き込み・実行
DFU形式ファイルをUSBポート経由で書き込み
HEXファイルをDFU形式に変換する

DFUファイルの書き込み

15

プログラム作成と書き込み・実行…

16

プログラム作成と書き込み・実行
ソースコード編集・新規プログラム作成
STM32CubeMXでソースコード生成

項目

内容

MPU CLOCK

48MHz

ADコンバータ・AD1、AD2、AD3、AD4、バッテリー電圧、MPU内部温度の6チ
ャンネルのデータを取得
・変換後のデータはDMAを用いてメモリーへ転送

UART1

・全二重通信・通信速度：115200[bps]、データ幅：8ビット、パリティ：
無・データの送信：DMA転送可、データの受信：割り込み

UART2_TX(PB3),・半二重通信

UART3_TX(PB10)・通信速度：115200[bps]、データ幅：8ビット、パリティ：
無
ストップビット：1ビット・割り込み、DMA：未使用
・双葉産業製RS-304用の設定
・近藤化学製KRS-2542等を使用する際は、パリティ：EVENにします。

TIM1

・LED_RED、LED_GREEN、LED_BLUE用のPWM信号を生成
・PWM周期：15ms

17

プログラム作成と書き込み・実行・PWM幅の設定：0～9999
TIM2

・15ms周期のカウンタ
・定期的な処理を組み込む際に使用

項目

内容Project Name

LED_TEST

Project Location

任意のフォルダ

Toolchain / IDE

TrueSTUDIO

Generate Under Root

チェックを入れます18

プログラム作成と書き込み・実行

TrueSTUDIOを使ったソースコード編集・デバッグ

19プログラム作成と書き込み・実行20

プログラム作成と書き込み・実行/* USER CODE BEGIN 2 *//** LED用PWM出力開始*/
HAL_TIM_Base_Start(&htim1); // TIM1スタート
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); // TIM1_CH1(LED赤) PWM出力開始
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2); // TIM1_CH2(LED緑) PWM出力開始
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3); // TIM1_CH3(LED青) PWM出力開始
uint8_t count = 0 , red, green;/* USER CODE END 2 */stray ’@’ in program

stray ’\201’ in program/* Private function prototypes -----------------------------------------------*/
void LED(uint8_t , uint8_t , uint8_t);// LEDのPWMを設定する関数のプロトタイプ/* USER CODE END PFP */＜中略＞/* USER CODE BEGIN 2 */

21

プログラム作成と書き込み・実行/** LED用PWM出力開始*/
HAL_TIM_Base_Start(&htim1); // TIM1スタート
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); // TIM1_CH1(LED赤) PWM出力開始
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2); // TIM1_CH2(LED緑) PWM出力開始
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3); // TIM1_CH3(LED青) PWM出力開始
uint8_t count = 0 , red, green;/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if( count < 10 )elsegreen = 100 - red;LED(red, green, 0);

red = 10*count;red = 10*(20-count);// LED(赤)の設定値// LED(緑)の設定値// 設定値の反映

HAL_Delay(100);// 100ms休む
count = (count+1) % 20; // 変数countの更新}/* USER CODE END 3 */}＜中略＞/* USER CODE BEGIN 4 *//** RGB明度指定でLEDを点灯する* RGB明度は0~100*/
void LED(uint8_t r, uint8_t g, uint8_t b){
htim1.Instance->CCR1 = (uint32_t)r * 100;
htim1.Instance->CCR2 = (uint32_t)g * 100;
htim1.Instance->CCR3 = (uint32_t)b * 100;}

22

プログラム作成と書き込み・実行/* USER CODE END 4 */

23

プログラム作成と書き込み・実行
書き込みと実行
ST-LINKを使用しない場合（USBケーブル書き込み）

ST-LINKを使用する場合

24プログラム作成と書き込み・実行25

プログラム作成と書き込み・実行

デバッグ中にブレークポイントで止まらない場合