我正在尝试使用定制 PCB,该 PCB 使用 FTDI FT232RL 与我的计算机(运行 OSX 10.11 El Capitan 的 MacBookPro)通信,用于硬件项目。我正在使用 Matlab 发送串行命令,在那里遇到了一些问题,ClearToSend (CTS) 引脚似乎处于“高”状态(关闭),但那是另一个故事。
但是我现在的问题是,拔下设备后,我的 Mac 不会“释放”(不知道该怎么称呼它)。我可以拔下设备并将其放在另一条 USB 总线上,但我实际上只能这样做一次,因为如果我拔下设备,同样的事情会再次发生——这让我的开发变得困难,因为我发现解决这个问题的唯一方法是重新启动整个计算机。我该如何释放/重置/清除这些设备?
如果我打开系统信息>硬件>USB,我基本上可以看到同一个设备在设备树上列出两次。
这使得当我尝试ls /dev/tty.*
(在 Matlab 或终端中)时,设备未列出,它基本上被阻止了,即使它已插入并在设备树上出现了两次。我该怎么办?
我已经安装了 2.3 版 FTDI 驱动程序,但似乎可以正常工作。请告诉我我可以提供哪些其他信息来彻底解决这个问题。谢谢
答案1
我遇到了同样的问题,尽管是在 Sierra 上,与 Arduino Nano 克隆(也使用 FTDI FT232RL 桥)对话。
/Library/Extensions/FTDIUSBSerialDriver.kext
在发现 Apple 随操作系统本身附带了 FTDI 驱动程序 ( ) 后,对我来说似乎有用的实际上是删除 FTDI 驱动程序 ( ) /System/Library/Extensions/AppleUSBFTDI.kext
。
我认为同时激活两个驱动程序会引起冲突,从而占用 USB 端口。
答案2
MacOS High Sierra 10.13.3 FTDI 驱动程序修复 - 2018 年 1 月 31 日
作者:Garrett Johnson 厌倦了你的开发板无法在崭新的 MacBook 上识别?你是在责怪那些该死的 C 端口吗?问题:FTDI 设备在 MacOS High Sierra 中不可用。就我个人而言,我在将 FT232R 芯片设备连接到带有 C 端口的 2016 Macbook Pro 时遇到了麻烦。这些设备出现在我的 USB 设备树中(系统信息 -> 硬件 -> USB),但未使用 Arduino 或 Coolterm 显示为串行设备。- 注意:在终端中使用命令 (ls /dev/cu*) 或 (ls /dev/tty*) 时,它们均未出现
解决方案:
3)从 FTDI 网站下载 2.4.2 驱动程序http://www.ftdichip.com/Drivers/VCP.htm 并安装。安装将成功,但由于 Apple 内置的 FTDI 驱动程序,它们将无法工作。
2)重新启动计算机并进入恢复模式通过关闭电源并在重启时按住 CMD + R。
3)在恢复模式下,从屏幕顶部的实用程序打开终端,然后输入以下内容以暂时禁用系统完整性保护:
csrutil disable
计算机将提示您重新启动以使更改生效。
4)重启时我们现在需要禁用 Apple FTDI 驱动程序(注意:这可以随时撤消,所以不用担心)。 - 打开终端并输入以下内容。
cd /system/library/extensions
sudo mv AppleUSBFTDI.kext AppleUSBFTDI.disabled
sudo touch /System/Library/Extensions
chgrp -R wheel FTDIUSBSerialDriver.kext
sudo mv D2zzHelper.kext D2xxHelper.disabled
现在您将成功禁用 Apple 的内置 FTDI 驱动程序并将其替换为 FTDI v2.4。
5) 以恢复模式重启电脑。关机,按住 Command + R 并在“实用程序”选项卡中打开终端。输入以下内容以重新启用 Apple 的系统完整性保护
csrutil enable
**注意:我已在装有 MacOS 10.13.3 的 2016 Macbook Pro 上使用以下设备/应用程序进行了测试:1) 终端内的屏幕、CoolTerm、Bus Pirate V3.6、JTAGulator、Arduino Uno、Adafruit Mega AT、Arduino Mega 克隆。
答案3
我想提供一个额外的答案来解决我遇到的另一个难题。即使按照 Garrett Johnson 上述的出色回答,我的 FTDI 驱动程序仍然无法正常工作。事实证明 - 我知道这听起来很疯狂 - 我的系统偏好设置“安全和隐私”选项卡不接受触控板单击“允许”按钮以允许驱动程序加载。在安装日志中看到此消息后,我找到了这条路径:
2018-09-15 16:21:04-04 host installd[1160]: kextcache: Kext rejected due to system policy: <OSKext 0x7f869ab80530 [0x7fff87e7aaf0]> { URL = "file:///Library/StagedExtensions/Library/Extensions/FTDIUSBSerialDriver.kext/", ID = "com.FTDI.driver.FTDIUSBSerialDriver" }
当然,我点击了“允许”,但似乎什么也没发生。按钮记录了点击,但我没有弹出任何窗口或其他任何形式的确认信息。在互联网上搜索后,我在 Karabiner 的 github 页面上发现了这个冗长的帖子,讨论了强制系统偏好设置允许鼠标点击的几种解决方案:
https://github.com/tekezo/Karabiner-Elements/issues/1017
显然,我运行了一些软件,这些软件拦截了触控板活动。与列表中的几个人不同,在我的情况下,它不是 chrome。我不知道它是什么,这有点令人担忧。对我有用的解决方案是启用鼠标键,然后按“I”单击鼠标,使其位于“允许”按钮上。此时,会弹出一个窗口,我可以允许 FTDI 驱动程序加载。
我还是摇头!
答案4
我也遇到了同样的问题。我通过 Creality Ender 3 安装说明中的链接安装了 FTDI 驱动程序,该链接安装了版本 2.2.18,适用于 OS X 10.8 及以下版本。(我正在运行 Sierra,10.12)。该驱动程序可以运行,但无法发布。我删除了该驱动程序sudo rm /System/Library/Extensions/FTDIUSBSerialDriver.kext/
,然后下载并安装了版本 2.4.2。现在一切正常。