问题标签 [gpio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
beagleboard - BeagleBone GPIO 输出同步与 PRU (TI AM335x)
我正在使用 AM335x 上的一个 PRU 单元来驱动 BeagleBone 上的 4 个 GPIO 引脚(GPIO1_2、GPIO1_3、GPIO1_6、GPIO1_7),并且我想同步边缘转换(我的完整源代码在底部)。
使用 Beaglebone 将引脚上的输出设置为 HI,将地址 0x4804c194 处的相应位设置为 1,然后将其设置为 LO,将地址 0x4804c190 处的位设置为 1。所以我的 PRU 汇编代码首先设置输出 HI 位,然后设置输出 LO 位:
由于运行每个周期需要多少个周期,LO 周期明显长于 HI(50ns 对 110ns)。不幸的是,我太新了,无法发布图片,这是上一个代码中逻辑分析仪屏幕截图的链接
为了均匀超时,我交替设置 HI 和 LO 位,使周期相等,为 80ns,但 HI 和 LO 转换相互偏移 80ns:
所以我的问题是如何让边缘转换同时发生?即,如果您比较 GPIO1_6 和 GPIO_7,屏幕截图的中心是 200ns,此时 GPIO1_7 转换为 LO,然后 50ns 之前,GPIO1_6 转换为 HI,我希望它们同时转换。我不介意放慢速度来实现这一点。
这是我的源代码:
文件:main.p
文件 main.c:
文件 main.hp:
linux - Beaglebone am335x 通过 mmap、设置和清除引脚访问 GPIO
我正在编写一个简单的程序来设置和清除一个引脚(目的是将该引脚用作自定义 spi_CS)。我能够导出该引脚(gpio1_17,端口 9 引脚 23 bb 白色)并通过文件系统使用它,但我必须更快地驱动它。
这是代码:
和
我能够输出启用该引脚,因为如果我在运行程序之前将其设置为高电平,则该 ping 会变为低电平。但我无法设置和重置它。有任何想法吗?
c - 从 CC2530 上的 GPIO 引脚读取
我正在执行一项任务,以读取焊接到 cc2530 电池板上 GPIO 引脚的传感器产生的值。三种不同类型的传感器焊接在其上;温度(模拟,输出电压),光(模拟,输出频率)和气压计(模拟)。
我已经能够成功读取温度并正确显示数字(示例在 contiki git repo 中提供),但我无法手动配置 GPIO 引脚以从光电二极管读取。
请提供任何帮助
linux-kernel - 如何控制 USB 收发器/HUB 电源
我在 Linux 2.6.32.8 中使用 AM3517。我必须通过软件控制 USB 电源。我正在寻找编写一些寄存器以将其置于挂起模式。我查看了硬件原理图,基于该板具有 AM3517->USBHOST->TIUSB1210(收发器)->TUSB8040(集线器)->usBport。
我可以随意使用USB端口。这是dmesg的一部分
我查看了 ULPI 接口,但认为 TIUSB1210 不支持它。如果我误解了,请纠正我。还是我必须更改代码或内核配置才能启用它?
如何访问收发器和HUB的寄存器?我愿意接受所有建议。
我会很感激你的回复。
ssi - Stellaris lm3s8962 GPIO 输入失败
我正在使用 bit banging 来控制 SSI 上的引脚,以实现可切换的 microwire/spi。我可以将数据发送到 eeprom(控制+地址),芯片选择配置正确,但没有输出。配置代码为:
对于 I2C,我使用硬件外围设备,一切正常。下面是 spi 上字节写入和字节读取的位碰撞。
这是我第一次使用 Stellaris。我调查了弱下拉输入和其他可能的配置问题,但无济于事。我有其他自定义硬件使用相同的位敲击技术,可以 100% 工作。谁能看到我哪里出错了?
更新:我已经通过输入信号测试了输入引脚并且输入工作正常。但是,我在尝试读取 eeprom 时只收到 0xff。我已经捕获了芯片的输出、数据输出、clk 和 cs,这些似乎都很好。为什么输出没有响应?这真让我抓狂。有人可以帮忙吗??
最新:将 MOSI 直接反馈回 MISO 会导致主要是 0xff,在接收到的数据中偶尔会出现低位。这是在发送所有 0x00 时。这表明某种输入失败。
这个问题可以被认为是自我回答的,尽管可能对其他人有用。由于连接错误,环回失败。哦!一旦我确定环回工作正常,我就开始怀疑它是否与电压有关。被测 eeprom 可能无法在 Stellaris 提供的 3v 电压下运行。我仍然必须确认这一点,但确实显示在开始编写代码之前先检查明显的内容。在这种情况下,一个 3 到 5 伏的电平转换器应该可以解决问题。
linux - GPIO输出值不变
我正在尝试在我的 Nitrogen6X 板上设置一个输出 GPIO 引脚,但我无法更改文件value
。我导航到/sys/class/gpio/
并导出了我的引脚(GPIO18)echo 18 > export
。direction
然后我可以使用命令进行更改,echo out > direction
似乎我应该能够以value
相同的方式更改文件echo 1 > value
,但是这似乎不起作用。我以root身份登录,direction
文件和value
文件的权限相同:-rw-r--r-- 1 root root
.
有谁知道为什么这不会写入该文件?
非常感谢您的帮助!
raspberry-pi - 用于 GPIO 的 Raspberry Pi 位掩码(OUT_GPIO 和 INP_GPIO)
我正在尝试同时更改一个以上引脚的状态(输出/输入)(使用位掩码)。
一个引脚的代码是:
我真的不明白这段代码的作用。
比方说,gpio := 0x20200000
所以对于 Pin 1 它应该是
我认为这不可能是正确的。我究竟做错了什么?
python - RuntimeError: 无法访问 /dev/mem
我一直在尝试使用 Python GPIO PWM 来控制一组连接到我的 RPi 的 LED。当我运行 Python 脚本时,我收到以下错误:
我尝试以 root 身份运行脚本(使用 sudo 和实际以 root 身份登录)。所有其他 GPIO 功能都正常工作,我尝试通过 apt 进行更新和卸载/重新安装 python-rpi.gpio。这是我一直在运行的代码。
它基于此处找到的示例,但仍可能存在错误。我已经为此苦苦挣扎了很长时间,因此将不胜感激提供的任何帮助。谢谢!
c - 如何维护从用户空间到内核空间的回调
我正在学习驱动程序并查看正在写入一些值的看门狗驱动程序代码/sys/devices/virtual/wdc_per
我想这是驱动程序如何从用户空间获取其值并在用户空间中公开文件的逻辑
但是现在这个来自 wdc_per 的值实际上是如何到达驱动程序的,必须维护一些回调
在我的情况下,它的基于 GPIO 的看门狗驱动程序和 gpio_wdt.c 可能有这个回调。
但我真的无法弄清楚它是如何发生的
任何人都可以帮我找出这个用户空间到内核空间的链接。
go - 如何使用 GO 读写通用输入输出?
我找不到任何关于此的文档。有人可以指出我正确的方向吗?