“DAC device tree configuration”的版本间的差异
来自百问网嵌入式Linux wiki
Zhouyuebiao(讨论 | 贡献) (创建页面,内容为“== Purpose == The purpose of this article is to explain how to configure the digital-to-analog converter (''DAC'')<ref name="DAC internal peripheral">DAC internal…”) |
|||
| (未显示同一用户的6个中间版本) | |||
| 第1行: | 第1行: | ||
== Purpose == | == Purpose == | ||
| − | + | 本文旨在说明将数模转换器('''DAC''')<ref name="DAC internal peripheral">[[DAC internal peripheral]]</ref> ''' 分配给 Linux<sup>®</sup> 操作系统时如何进行配置''', 尤其是: | |
| − | * | + | * 如何配置和启用DAC'''peripheral''' |
| − | * | + | * 如何配置'''板'''、DAC通道、基准电压调节器和引脚。 |
| − | + | 使用'''设备树机制'''执行配置<ref name="Device tree">[[Device tree]]</ref>. | |
| − | + | [[DAC Linux driver]]使用它在 [[IIO overview|IIO framework]]中注册相关信息,例如IIO设备,通道和电压标度。 | |
| − | + | 如果外围设备已分配给另一个执行上下文,请参阅 [[How to assign an internal peripheral to a runtime context]] 文章,以获取有关外围设备分配和配置的准则。 | |
== DT bindings documentation == | == DT bindings documentation == | ||
| − | + | 带有所有必需或可选属性的“ STM32 DAC设备树绑定”<ref>{{CodeSource | Linux kernel | Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt | Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt}}, STM32 DAC device tree bindings</ref> 协议。 | |
== DT configuration == | == DT configuration == | ||
| − | + | 该硬件描述是STM32和电路板设备树文件的组合。 有关分割设备树文件的说明,请参见 [[Device tree]]。 | |
| − | + | '''STM32CubeMX'''可用于生成板卡设备树。 有关更多详细信息,请参考[[#How_to_configure_the_DT_using_STM32CubeMX|How to configure the DT using STM32CubeMX]] 。 | |
=== DT configuration (STM32 level) === | === DT configuration (STM32 level) === | ||
| − | + | DAC节点在stm32mp157c.dtsi中声明<ref name="stm32mp157c_dtsi">{{CodeSource | Linux kernel | arch/arm/boot/dts/stm32mp157c.dtsi | STM32MP157C device tree file}}</ref>: | |
| − | * ''' | + | * '''DT根节点'''(''''dac'''')描述DAC硬件模块参数,例如寄存器区域和时钟。 |
| − | * ''' | + | * '''DT子节点'''(''''dac1''''和''''dac2'''')独立描述DAC通道。 |
'''dac''': dac@address { | '''dac''': dac@address { | ||
compatible = "st,stm32h7-dac-core"; | compatible = "st,stm32h7-dac-core"; | ||
| 第36行: | 第36行: | ||
}; | }; | ||
}; | }; | ||
| − | {{Warning| | + | {{Warning|该设备树部分与STM32微处理器有关。 它应该保持原样,而不要由最终用户修改。}} |
=== DT configuration (board level) === | === DT configuration (board level) === | ||
| − | + | 请按照以下顺序在板上配置和启用DAC: | |
| − | * | + | * 通过设置'''status =“ okay”'''启用名为''''dac''''的'''DT根节点'''。 |
| − | * | + | * 通过 [[Pinctrl overview|pinctrl]]至'''pinctrl-0'''和'''pinctrl-names'''配置正在使用的引脚。 |
| − | * | + | * 通过设置'''vref-supply = <&your_regulator>'''来配置模拟参考电压稳压器<ref name="Regulator overview">[[Regulator overview]]</ref> 。 |
| − | * | + | * 通过设置'''status =“ okay”'''为启用的''''dac1''''和/或''''dac2''''通道启用'''DT子节点''' 。 |
| − | {{info| | + | {{info|DAC可以使用内部VREFBUF<ref name="VREFBUF internal peripheral">[[VREFBUF internal peripheral]]</ref> 或连接到VREF +引脚的任何其他外部稳压器<ref name="Regulator overview"/>}}. |
=== DT configuration example === | === DT configuration example === | ||
| − | + | 下面的示例显示如何配置DAC1和DAC2通道: | |
| − | * | + | * PA4和PA5引脚均配置为模拟引脚 (更多信息,请参见 [[Pinctrl device tree configuration]]) |
| − | * VREFBUF<ref name="VREFBUF internal peripheral"/> | + | * VREFBUF<ref name="VREFBUF internal peripheral"/> 用作参考电压 |
dac_ch1_pins_a: dac-ch1 { | dac_ch1_pins_a: dac-ch1 { | ||
| 第76行: | 第76行: | ||
==How to configure the DT using STM32CubeMX== | ==How to configure the DT using STM32CubeMX== | ||
| − | + | [[STM32CubeMX]] 工具可用于配置STM32MPU设备并获取相应的 [[Device_tree#STM32|platform configuration device tree]] 文件。<br /> | |
| − | + | STM32CubeMX可能不支持以上 [[#DT bindings documentation|DT bindings documentation]] 段中描述的所有属性。 如果是这样,该工具会在生成的设备树中插入'''用户部分'''。 然后可以编辑这些部分以添加一些属性,并将它们一代一代地保留下来。 有关更多信息,请参见 [[STM32CubeMX]] 用户手册。 | |
==References== | ==References== | ||
| − | + | 有关更多信息,请参考以下链接: | |
<references /> | <references /> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
2020年11月9日 (一) 15:29的最新版本
目录
Purpose
本文旨在说明将数模转换器(DAC)[1] 分配给 Linux® 操作系统时如何进行配置, 尤其是:
- 如何配置和启用DACperipheral
- 如何配置板、DAC通道、基准电压调节器和引脚。
使用设备树机制执行配置[2].
DAC Linux driver使用它在 IIO framework中注册相关信息,例如IIO设备,通道和电压标度。
如果外围设备已分配给另一个执行上下文,请参阅 How to assign an internal peripheral to a runtime context 文章,以获取有关外围设备分配和配置的准则。
DT bindings documentation
带有所有必需或可选属性的“ STM32 DAC设备树绑定”[3] 协议。
DT configuration
该硬件描述是STM32和电路板设备树文件的组合。 有关分割设备树文件的说明,请参见 Device tree。
STM32CubeMX可用于生成板卡设备树。 有关更多详细信息,请参考How to configure the DT using STM32CubeMX 。
DT configuration (STM32 level)
DAC节点在stm32mp157c.dtsi中声明[4]:
- DT根节点('dac')描述DAC硬件模块参数,例如寄存器区域和时钟。
- DT子节点('dac1'和'dac2')独立描述DAC通道。
dac: dac@address {
compatible = "st,stm32h7-dac-core";
... /* common resources in 'dac' root node. */
dac1: dac@1 {
compatible = "st,stm32-dac";
reg = <1>; /* DAC identifier (e.g. 1 for DAC1) */
... /* private resources in 'dac1' child node. */
};
dac2: dac@2 {
compatible = "st,stm32-dac";
reg = <2>; /* DAC identifier (e.g. 2 for DAC2) */
... /* private resources in 'dac2' child node. */
};
};
| 该设备树部分与STM32微处理器有关。 它应该保持原样,而不要由最终用户修改。 |
DT configuration (board level)
请按照以下顺序在板上配置和启用DAC:
- 通过设置status =“ okay”启用名为'dac'的DT根节点。
- 通过 pinctrl至pinctrl-0和pinctrl-names配置正在使用的引脚。
- 通过设置vref-supply = <&your_regulator>来配置模拟参考电压稳压器[5] 。
- 通过设置status =“ okay”为启用的'dac1'和/或'dac2'通道启用DT子节点 。
| DAC可以使用内部VREFBUF[6] 或连接到VREF +引脚的任何其他外部稳压器[5] |
.
DT configuration example
下面的示例显示如何配置DAC1和DAC2通道:
- PA4和PA5引脚均配置为模拟引脚 (更多信息,请参见 Pinctrl device tree configuration)
- VREFBUF[6] 用作参考电压
dac_ch1_pins_a: dac-ch1 {
pins {
pinmux = <STM32_PINMUX('A', 4, ANALOG)>; /* configure 'PA4' as ANALOG */
};
};
dac_ch2_pins_a: dac-ch2 {
pins {
pinmux = <STM32_PINMUX('A', 5, ANALOG)>; /* configure 'PA5' as ANALOG */
};
};
&dac {
pinctrl-names = "default";
pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>; /* Use PA4 and PA5 pin as ANALOG */
vref-supply = <&vrefbuf>; /* Example to use VREFBUF (It needs to be enabled as well) */
status = "okay"; /* Enable the DAC block */
dac1: dac@1 {
status = "okay"; /* Enable DAC1 */
};
dac2: dac@2 {
status = "okay"; /* Enable DAC2 */
};
};
How to configure the DT using STM32CubeMX
STM32CubeMX 工具可用于配置STM32MPU设备并获取相应的 platform configuration device tree 文件。
STM32CubeMX可能不支持以上 DT bindings documentation 段中描述的所有属性。 如果是这样,该工具会在生成的设备树中插入用户部分。 然后可以编辑这些部分以添加一些属性,并将它们一代一代地保留下来。 有关更多信息,请参见 STM32CubeMX 用户手册。
References
有关更多信息,请参考以下链接:
- ↑ DAC internal peripheral
- ↑ Device tree
- ↑ Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt | |}} Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt , STM32 DAC device tree bindings
- ↑ arch/arm/boot/dts/stm32mp157c.dtsi | |}} STM32MP157C device tree file
- ↑ 5.05.1 Regulator overview
- ↑ 6.06.1 VREFBUF internal peripheral