0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NUCLEO-F303K8 Arduinoでちょっとだけ使い込んでみた (I2C/ADC/DAC)

Last updated at Posted at 2022-05-04

「ちょっとだけ使い込む」って変な日本語だけどまあいいか。
SSD1306接続しています。

platformio.ini
[env:nucleo_f303k8]
platform = ststm32
framework = arduino
board = nucleo_f303k8
lib_deps = olikraus/U8g2@^2.33.2

image.png

I2C

デフォルトでは以下に接続するとArduino環境で使いやすいようです。

CN3 (Left Side)
Adruino STM32  
  D1     PA9   
  D0     PA10  
  RST    NRST
  GND    GND
  D2     PA12
  D3     PB0   
  D4     PB7   <<-- SDA
  D5     PB6   <<-- SCL
...

お世話になる SSD1306 w/u8g2 が

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

であっさり使えました。

ADC

main.cpp
  analogReadResolution(12);
  a=analogRead(A0);

であっさり A0=PA0 のAD値が12ビットで読めます。互換性を重視しているのか,analogReadResolution(12) を指定しないと10ビットでした。

DAC

これも簡単に

main.cpp
    dac_write_value(PA_4, a, 1);

で PA_4 = A3 に出力されました。指定値は12ビットです。線形性もいいようです。表示機がアレなので際のところはよくわかりませんが。バッファードとして使えるピンですが,実際にバッファードかどうかは検証していません。

おしまい

あと OPAMP と PWM と RTC でもテストできれば,かなり使いこなせたことになるかな...

(宣伝)
安価で,非常に使いやすいシンプルなマイコンですね。Arduino環境を併用することでだいぶ楽になります。STM32CubeIDEを使うことでフル機能を使いこなせますが,手軽に使うならPIO+Arduinoもかなり良いと思いました。

DAC/OPAMPも内蔵してるのは珍しいです。アナログ屋さんにはありがたいです。

NUCLEOならSTLINK内蔵で,スケッチのアップロードやシリアルモニターを使うのに不都合なくて快適です。ピンが上にも出ているので,ちょっとした実験も簡単です。

おまけ コピペ用

CN3 (Left Side)

Adruino STM32  Function
  D1     PA9   USART1 TX
  D0     PA10  USART1 RX
  RST    NRST
  GND    GND
  D2     PA12
  D3     PB0   TIM3_CH3
  D4     PB7
  D5     PB6   TIM16_CH1N
  D6     PB1   TIM3_CH4
  D7     PF0
  D8     PF1
  D9     PA8   TIM1_CH1
  D10    PA11  SPI_CS || TIM1_CH4
  D11    PB5   SPI1_MOSI || TIM17_CH1
  D12    PB4   SPI1_MISO
CN4 (Right Side)

Adruino STM32  Function
  VIN    VIN   Power Input
  GND    GND
  RST    NRST
  +5V    +5V
  A7     PA2   ADC1_IN3 connected to VCP_TX
  A6     PA7   ADC2_IN4
  A5     PA6   ADC2_IN3 || I2C1_SCL -SB16- PB6
  A4     PA5   ADC2_IN2 || I2C1_SDA -SB18- PB7
  A3     PA4   ADC2_IN1
  A2     PA3   ADC1_IN4
  A1     PA1   ADC1_IN2
  A0     PA0   ADC1_IN1
  AREF   AVDD
  +3V3   +3V3
  D13    PB3   SPI1_SCK connected to LD3, H=ON
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?