匿名
未登录
登录
百问网嵌入式Linux wiki
搜索
查看“DAC Linux driver”的源代码
来自百问网嵌入式Linux wiki
名字空间
页面
讨论
更多
更多
页面选项
Read
查看源代码
历史
←
DAC Linux driver
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
该页面已被保护以防止编辑和其他操作。
您可以查看与复制此页面的源代码。
== Article purpose == This article introduces the Linux<sup>®</sup> driver for the DAC<ref name="DAC internal peripheral">[[DAC internal peripheral]]</ref> internal peripheral: * Which DAC features are supported by the driver * How to configure, use and debug the driver * What is the driver structure, and where the source code can be found. == Short Description == The DAC Linux<sup>®</sup> driver (kernel space) is based on the [[IIO overview|IIO]] framework. It implements the '''IIO direct mode''', to perform single conversions independently on each channel.<br/> == Configuration == === Kernel configuration === Activate the DAC<ref name="DAC internal peripheral"/> Linux<sup>®</sup> driver in the kernel configuration using the Linux Menuconfig tool: [[Menuconfig or how to configure kernel]] (enable CONFIG_STM32_DAC). <pre> Device Drivers ---> <*> Industrial I/O support ---> Digital to analog converters ---> <*> STMicroelectronics STM32 DAC </pre> === Device tree === Refer to the [[DAC device tree configuration]] article when configuring the DAC Linux kernel driver. == How to use == In "IIO direct mode", conversions can be done directly via sysfs. See [[How to use the IIO user space interface#How to do a simple DAC conversion using the sysfs interface|How to do a simple DAC conversion using the sysfs interface]]. == How to trace and debug == Refer to [[IIO_overview#How_to_trace_with_dynamic_debug|How to trace with dynamic debug]] for how to enable debug logs in the driver and in the Framework. Refer to [[IIO_overview#How_to_debug_with_debugfs|How to debug with debugfs]] for how to access the DAC registers. The DAC has system wide dependencies towards other key resources: * '''runtime power management''' can be disabled, for example it may be forced '''on''' via ''power/control'' sysfs entry: {{Board$}} cd /sys/devices/platform/soc/40017000.dac/40017000.dac\:dac@1/ {{Board$}} cat power/autosuspend_delay_ms 2000 {{Board$}} cat power/control auto # kernel is allowed to automatically suspend the ADC device after autosuspend_delay_ms {{Board$}} {{highlight|echo on > power/control}} # force the kernel to resume the DAC device (e.g. keep clocks and regulators enabled) {{Info| It might be useful to disable runtime power management, in order to dump registers by any means or to check clock and regulator usage (see example below).}} * '''clock'''<ref name="Clock overview">[[Clock overview]]</ref> usage can be verified by reading ''clk_summary'': {{Board$}} {{highlight|cat /sys/kernel/debug/clk/clk_summary}} | grep dac dac12_k 0 0 0 32000 0 0 dac12 1 2 0 98303955 0 0 * '''regulator'''<ref name="Regulator overview">[[Regulator overview]]</ref> tree and usage usage can be verified (e.g. use count, open count and regulator reference voltage) as follows: {{Board$}} {{highlight|cat /sys/kernel/debug/regulator/regulator_summary}} regulator use open bypass voltage current min max ------------------------------------------------------------------------------- v3v3 4 5 0 3300mV 0mA 3300mV 3300mV vdda 1 2 0 2900mV 0mA 2900mV 2900mV 40017000.dac 0mV 0mV 48003000.adc 0mV 0mV * '''pinctrl'''<ref name="Pinctrl_overview">[[Pinctrl overview]]</ref> usage can be verified by reading ''pinmux-pins'': {{Board$}} cd /sys/kernel/debug/pinctrl/soc\:pin-controller@50002000/ {{Board$}} {{highlight|cat pinmux-pins}} | grep dac pin 4 (PA4): device 40017000.dac function {{highlight|analog}} group PA4 pin 5 (PA5): device 40017000.dac function {{highlight|analog}} group PA5 # check pins are assigned to DAC and configured as "analog" == Source code location == The DAC source code is composed of: * {{CodeSource | Linux kernel | drivers/iio/dac/stm32-dac-core.c | stm32-dac-core driver}} to handle common resources such as [[Clock overview|clock]] or [[Regulator overview|regulator]] used as reference voltage and common registers. * {{CodeSource | Linux kernel | drivers/iio/dac/stm32-dac.c | stm32-dac driver}} to handle the resources available for each DAC such as channel configuration or output buffer handling (power-down mode). ==References== <references />
该页面使用的模板:
模板:Board$
(
查看源代码
)
模板:CodeSource
(
查看源代码
)
模板:Highlight
(
查看源代码
)
模板:Info
(
查看源代码
)
模板:STDarkBlue
(
查看源代码
)
返回至
DAC Linux driver
。
导航
导航
WIKI首页
官方店铺
资料下载
交流社区
所有页面
所有产品
MPU-Linux开发板
MCU-单片机开发板
Linux开发系列视频
单片机开发系列视频
所有模块配件
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志