Digital to Analog Conversion (DAC) support(dac.h)
デジタル - アナログ変換(DAC)のサポート
概要
デジタル - アナログ変換(DAC)をサポートします。
データ型
■ struct dac_dev
DACデバイス型
dac_reg_map *regs DACレジスタ・マップ
■ struct dac_reg_map
DACレジスタマップ型
__IO uint32 CR DAC 制御レジスタ(DAC_CR)
__IO uint32 SWTRIGR DAC ソフトウェア・トリガ・レジスタ(DAC_SWTRIGR)
__IO uint32 DHR12R1 DAC チャネル1 12bit 右寄せデータ保持レジスタ (DAC_DHR12R1)
__IO uint32 DHR12L1 DAC チャネル1 12bit 左寄せデータ保持レジスタ(DAC_DHR12L1)
__IO uint32 DHR8R1 DAC チャネル1 8bit 右寄せデータ保持レジスタ(DAC_DHR8R1)
__IO uint32 DHR12R2 DAC チャネル2 12bit 右寄せデータ保持レジスタ(DAC_DHR12R2)
__IO uint32 DHR12L2 DAC チャネル2 12bit 左寄せデータ保持レジスタ(DAC_DHR12L2)
__IO uint32 DHR8R2 DAC チャネル2 8bit 右寄せデータ保持レジスタ(DAC_DHR8R2)
__IO uint32 DHR12RD デュアルDAC 12bit 右寄せデータ保持レジスタ(DAC_DHR12RD)
__IO uint32 DHR12LD デュアルDAC 12bit 左寄せデータ保持レジスタ(DAC_DHR12LD)
__IO uint32 DHR8RD デュアルDAC 8bit 右寄せデータ保持レジスタ(DAC_DHR8RD)
__IO uint32 DOR1 DAC チャネル1 データ出力レジスタ (DAC_DOR1)
__IO uint32 DOR2 DAC チャネル2 データ出力レジスタ(DAC_DOR2)
デバイス
const dac_dev *DAC DACデバイス
API関数
■ void dac_init(const dac_dev *dev, uint32 flags)
DACを初期化します。
引数
dev :DACデバイス
flags :DAC_CH1:チャンネル1を有効にする、DAC_CH2:チャンネル2を有効にする
本関数は、初期化を行った後、dac_enable_channel()を呼び出し、DAC チャネルを有効にします。
PA4またはPA5をINPUT_ANALOGに設定されます。寄生消費電力を防ぐために、PA4 またはPA5 ピンはまずアナログ(AIN) として設定されます。一度DAC チャネルが有効にされると、対応するGPIO ピン(PA4 またはPA5) が自動的にアナログ・コンバータ出力(DAC_OUTx) に接続されます。
■ void dac_write_channel(const dac_dev *dev, uint8 channel, uint16 val)
DACに12ビットの値を書き込んで出力します。
引数
dev :DACデバイス
channel :選択するチャンネル(1または2)
val :書き込む値
■ void dac_enable_channel(const dac_dev *dev, uint8 channel)
DACチャンネルを有効にします。
引数
dev :DACデバイス
channel :選択するチャンネル(1または2)
PA4とPA5でアナログモードを設定します。
このマッピングは、DACを持つすべてのサポートされているSTM32間で一貫しています。
一度DAC チャネルがイネーブルされると、対応するGPIO ピン(PA4 またはPA5) が自動的にアナログ・コンバータ出力(DAC_OUTx) に接続されます。
■ void dac_disable_channel(const dac_dev *dev, uint8 channel)
DACチャンネルを無効にします。
引数
dev :DACデバイス
channel :選択するチャンネル(1または2)
■ dac_write_channel1(val)
DACに12ビットのチャンネル1に値を書き込んで出力します。
本関数はマクロ関数です。次のように定義されています。
code:dac.h
#define dac_write_channel1(val) ( DAC->regs->DHR12R1 = DAC_DHR12R1_DACC1DHR & val ) ■dac_write_channel2(val)
DACに12ビットのチャンネル2に値を書き込んで出力します。
本関数はマクロ関数です。次のように定義されています。
code:dac.h
#define dac_write_channel2(val) ( DAC->regs->DHR12R2 = DAC_DHR12R2_DACC2DHR & val )
レジスタマップベースポインタ
DAC_BASE ((struct dac_reg_map*)0x40007400) DACレジスタマップベースアドレス
レジスタのビット定義
DAC 制御レジスタ(DAC_CR)
ビットのマスクの定義
チャンネル1制御:
DAC_CR_EN1 (1U << 0) EN1: DAC チャネル1 イネーブル
DAC_CR_BOFF1 (1U << 1) BOFF1: DAC チャネル1 出力バッファ・ディセーブル
DAC_CR_TEN1 (1U << 2) TEN1: DAC チャネル1 トリガ・イネーブル
DAC_CR_TSEL1 (0x7 << 3) TSEL1[2:0]: DAC チャネル1 トリガ選択
DAC_CR_WAVE1 (0x3 << 6) WAVE1[1:0]: DAC チャネル1 ノイズ/ 三角波生成イネーブル
DAC_CR_MAMP1 (0xF << 8) MAMP1[3:0]: DAC チャネル1 マスク/ 振幅セレクタ
DAC_CR_DMAEN1 (1U << 12) DMAEN1: DAC チャネル1DMA イネーブル
チャンネル1制御:
DAC_CR_EN2 (1U << 16) EN2: DAC チャネル2 イネーブル
DAC_CR_BOFF2 (1U << 17) BOFF2: DAC チャネル2 出力バッファ・ディセーブル
DAC_CR_TEN2 (1U << 18) TEN2: DAC チャネル2 トリガ・イネーブル
DAC_CR_TSEL2 (0x7 << 19) TSEL2[2:0]: DAC チャネル2 トリガ選択
DAC_CR_WAVE2 (0x3 << 22) WAVE2[1:0]: DAC チャネル2 ノイズ/ 三角波生成イネーブル
DAC_CR_MAMP2 (0xF << 24) MAMP2[3:0]: DAC チャネル2 マスク/ 振幅セレクタ
DAC_CR_DMAEN2 (1U << 28) DMAEN2: DAC チャネル2DMA イネーブル
DAC ソフトウェア・トリガ・レジスタ(DAC_SWTRIGR)
ビットのマスクの定義
DAC_SWTRIGR_SWTRIG1 (1U << 0) SWTRIG1: DAC チャネル1 ソフトウェア・トリガ
DAC_SWTRIGR_SWTRIG2 (1U << 1) SWTRIG2: DAC チャネル2 ソフトウェア・トリガ
DAC チャネル1 12bit 右寄せデータ保持レジスタ(DAC_DHR12R1)
ビットのマスクの定義
DAC_DHR12R1_DACC1DHR 0x00000FFF DACC1DHR[11:0] DAC チャネル1 12bit 右寄せデータ
DAC チャネル1 12bit 左寄せデータ保持レジスタ(DAC_DHR12L1)
ビットのマスクの定義
DAC_DHR12L1_DACC1DHR 0x0000FFF0 DACC1DHR[11:0]: DAC チャネル1 12bit 左寄せデータ
DAC チャネル1 8bit 右寄せデータ保持レジスタ(DAC_DHR8R1)
ビットのマスクの定義
DAC_DHR8R1_DACC1DHR 0x000000FF DACC1DHR[7:0] DAC チャネル1 8bit 右寄せデータ
DAC チャネル2 12bit 左寄せデータ保持レジスタ(DAC_DHR12L2)
ビットのマスクの定義
DAC_DHR12L2_DACC2DHR 0x0000FFF0 DACC2DHR[11:0]: DAC チャネル2 12bit 左寄せデータ
DAC チャネル2 12bit 右寄せデータ保持レジスタ(DAC_DHR12R2)
ビットのマスクの定義
DAC_DHR12R2_DACC2DHR 0x00000FFF DACC2DHR[11:0]: DAC チャネル2 12bit 左寄せデータ
DAC チャネル2 8bit 右寄せデータ保持レジスタ(DAC_DHR8R2)
ビットのマスクの定義
DAC_DHR8R2_DACC2DHR 0x000000FF DACC2DHR[7:0]: DAC チャネル2 8bit 右寄せデータ
デュアルDAC 12bit 右寄せデータ保持レジスタ(DAC_DHR12RD)
ビットのマスクの定義
DAC_DHR12RD_DACC1DHR 0x00000FFF DACC2DHR[11:0]: DAC チャネル2 12bit 右寄せデータ
DAC_DHR12RD_DACC2DHR 0x0FFF0000 DACC1DHR[11:0]: DAC チャネル1 12bit 右寄せデータ
デュアルDAC 12bit 左寄せデータ保持レジスタ(DAC_DHR12LD)
ビットのマスクの定義
DAC_DHR12LD_DACC1DHR 0x0000FFF0 DACC2DHR[11:0]: DAC チャネル2 12bit 左寄せデータ
DAC_DHR12LD_DACC2DHR 0xFFF00000 DACC1DHR[11:0]: DAC チャネル1 12bit 左寄せデータ
デュアルDAC 8bit 右寄せデータ保持レジスタ(DAC_DHR8RD)
ビットのマスクの定義
DAC_DHR8RD_DACC1DHR 0x000000FF DACC2DHR[7:0]: DAC チャネル2 8bit 右寄せデータ
DAC_DHR8RD_DACC2DHR 0x0000FF00 DACC1DHR[7:0]: DAC チャネル1 8bit 右寄せデータ
DAC チャネル1 データ出力レジスタ (DAC_DOR1)
ビットのマスクの定義
DAC_DOR1_DACC1DOR 0x00000FFF DACC1DOR[11:0]: DAC チャネル1 データ出力
DAC チャネル2 データ出力レジスタ(DAC_DOR2)
ビットのマスクの定義
DAC_DOR2_DACC2DOR 0x00000FFF DACC2DOR[11:0]: DAC チャネル2 データ出力
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・一部加筆修正したものです。
NAVER、ヤフオク等の営利目的の記事転用、リンク貼りは禁止です。