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 レジスターを叩きながらDACを使う

Posted at

電気屋さんとしては,PWMじゃなくて,H/Lじゃなくて,もう少し自由に電圧を出せたらいいなあと思うことがあります。

ふと手持ちのNucleo STM32F303のスペックをよく見ますと,DACがあります。やってみることにしました。

確認環境

  • Nucleo-F303K8
  • mbedで開発

Nucleoのピンアウト図やらデータシートやらをまとめますと...

/*

A5 PA_6 DAC2/1 unbuffered imp=15k DOES'NT WORK...
A4 PA_5 DAC1/2 unbuffered imp=15k DOES'NT WORK...
A3 PA_4 DAC1/1 buffered

*/

以下を参考に,
https://os.mbed.com/users/okini3939/notebook/AnalogOut_jp/

AnalogOut Vout3(PA_4);
Vout3=0; // 0 to 1
Vout3.write_u16(0x8000); // 0 to 0xffff

A4とA5はなぜか出力しませんでした... まだまだ修行が足りないようです。
A3は所望の電圧になっていました。すばらしい!

いよいよレジスターも叩いてみる

さらに確認しますと,A3の出力インピーダンスは10kよりも多い感じです。これはBufferedとは言えないですよね...

最近見つけた Mbedでのレジスター叩き をやってみます。

リファレンスマニュアルとデータシートから,レジスターの存在と絶対アドレスを知りました。

    volatile unsigned int *dac_cr = (unsigned int *)0x40007400;
    *dac_cr &= !(1<<1); // means DAC_CR BOFF1=0 buffer=ON

未解決案件

それでも2.8Vぐらいから上は、少しずつ出力インピーダンスが出てきます。
マニュアルをよく読んでまたレジスターを叩けば解決するのか,バッファーの限界なのか,よくわかりません...

とにかく,かなり便利になりました!

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?