解决Quartus Primer中USB-Blaster连接下载器蓝屏重启问题
解决Quartus Primer中USB-Blaster连接下载器蓝屏重启问题(不限Quartus Primer的版本)
1、问题描述
在开发altera FPGA过程中,在quartus开发环境中使用USB-Blaster下载器下载代码至开发板的时候,当我们接上usb-blaster后,没过一会儿电脑就必蓝屏重启!也就是下面这东西:
就是这个东西,我们一接上后电脑就无限蓝屏重新启动。
2、解决方法
一、卸载默认驱动
这个默认驱动一般是quartus自带的驱动,即在D:…\intelFPGA\18.1\quartus\drivers有quartus安装时就已经装好的驱动。我们这里有个问题:即就是我们插上才显示的usb-blaster驱动,很难在电脑蓝屏重启前的短时间内在设备管理器中完成卸载操作,而且一插上之后电脑就会重新启动。
这里我选用命令行工具进行删除计算机上的USB-Blaster驱动。经评论区提醒,我们需要使用管理员权限打开CMD。如果我们不使用管理员打开的话会提示拒绝访问。
在CMD中输入 pnputil 就会List相应的用法:
命令:
/add-driver <filename.inf | *.inf> [/subdirs] [/install] [/reboot]
将驱动程序包添加到驱动程序存储中。
/subdirs - 遍历驱动程序包的子目录。
/install - 在任何匹配的设备上安装/更新驱动程序。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
添加驱动程序包:
pnputil /add-driver x:\driver.inf
添加多个驱动程序包:
pnputil /add-driver c:\oem\*.inf
添加和安装驱动程序包:
pnputil /add-driver device.inf /install
/delete-driver <oem#.inf> [/uninstall] [/force] [/reboot]
从驱动程序存储中删除驱动程序包。
/uninstall - 从任何使用驱动程序包的设备中卸载驱动程序包。
/force - 删除驱动程序包,即使有设备正在使用它。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
删除驱动程序包:
pnputil /delete-driver oem0.inf
强制删除驱动程序包:
pnputil /delete-driver oem1.inf /force
/export-driver <oem#.inf | *> <目标目录>
从驱动程序存储中将驱动程序包导出到目标目录中。
示例:
导出驱动程序包:
pnputil /export-driver oem6.inf .
导出所有驱动程序包:
pnputil /export-driver * c:\backup
/enum-drivers
枚举驱动程序存储中的所有第三方驱动程序包。
示例:
枚举所有 OEM 驱动程序包:
pnputil /enum-drivers
/disable-device <实例 ID> [/reboot]
禁用系统上的设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
禁用设备:
pnputil /disable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
/enable-device <实例 ID> [/reboot]
启用系统上的设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
启用设备:
pnputil /enable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
/restart-device <实例 ID> [/reboot]
重启系统上的设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
重启设备:
pnputil /restart-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
/remove-device <实例 ID> [/subtree] [/reboot]
尝试从系统中删除设备。
/subtree - 删除整个设备子树,包括任何子设备。
/reboot - 根据需要重新启动系统以完成此操作。
示例:
删除设备:
pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"
/scan-devices [/instanceid <实例 ID>] [/async]
扫描系统以查找任何设备硬件更改。
/instanceid <实例 ID> - 在设备子树中扫描更改。
/async - 异步扫描更改。
示例:
扫描设备:
pnputil /scan-devices
/enum-devices [/connected | /disconnected] [/instanceid <实例 ID>]
[/class <name | GUID>] [/problem [<code>]] [/ids] [/relations]
[/drivers]
枚举系统上的所有设备。
/connected | /disconnected - 按连接的设备筛选或
按断开连接的设备筛选。
/instanceid <实例 ID> - 按设备实例 ID 筛选。
/class <名称 | GUID> - 按设备类名称或 GUID 筛选。
/problem [<代码>] - 按出现问题的设备筛选或
按特定问题代码筛选。
/ids - 显示硬件 ID 和兼容 ID。
/relations - 显示父级和子级设备关系。
/drivers - 显示匹配的驱动程序和已安装的驱动程序。
示例:
仅枚举系统上已连接的设备:
pnputil /enum-devices /connected
枚举具有特定实例 ID 的设备:
pnputil /enum-devices /instanceid "ACPI\PNP0A08\1"
枚举具有特定类的所有设备:
pnputil /enum-devices /class Display
pnputil /enum-devices /class {4d36e97d-e325-11ce-bfc1-08002be10318}
枚举具有特定问题代码的所有设备:
pnputil /enum-devices /problem 28
pnputil /enum-devices /problem 0xA
枚举具有问题的所有设备并显示硬件/兼容 ID:
pnputil /enum-devices /problem /ids
/enum-interfaces [/enabled | /disabled] [/class <GUID>]
枚举系统上的所有设备接口。
/enabled | /disabled - 按启用的接口筛选或
按禁用的接口筛选。
/class <GUID> - 按接口类 GUID 筛选。
示例:
仅枚举系统上的已启用接口:
pnputil /enum-interfaces /enabled
枚举具有特定接口类 GUID 的所有接口:
pnputil /enum-interfaces /class {884b96c3-56ef-11d1-bc8c-00a0c91405dd}
/?
显示使用情况屏幕。
示例:
pnputil.exe -a a:\usbcam\USBCAM.INF -> 添加 USBCAM.INF 指定的程序包
pnputil.exe -a c:\drivers\*.inf -> 添加 c:\drivers\ 中的所有程序包\
pnputil.exe -i -a a:\usbcam\USBCAM.INF -> 添加和安装驱动程序包
pnputil.exe -e -> 枚举所有第三方程序包
pnputil.exe -d oem0.inf -> 删除程序包 oem0.inf
pnputil.exe -f -d oem0.inf -> 强制删除程序包 oem0.inf
pnputil.exe -? -> 此用法屏幕
我们使用的时候就需要两步操作:
1、先枚举所有第三方程序包:
pnputil /enum-drivers
这里的命令都是看我们自己去刚刚用pnputil查的命令。
在这些安装的程序包中找到下面这个,也就是由Altera提供的这个程序安装包,记住它的发布名称。
2、上面的信息可以看出我的USB-Blaster的信息为 oem123.inf ,所以接下来是卸载,卸载有两种删除程序包和强制删除程序包:
C:\pnputil.exe -d oem123.inf -> 删除程序包 oem35.inf
C:\pnputil.exe -f -d oem123.inf -> 强制删除程序包 oem35.inf
假如用这两个可能我们删除不了,那我们就去进入到安全模式下去删除这个程序包。
在我们成功删除驱动程序,这时再插上usb-blaster就不会再蓝屏了。
二、重装驱动
现在我们来重新装驱动。
首先下载一个可用的驱动程序,亲测可用驱动下载链接:usb-blaster
下载解压后将其放置一个容易寻找的目录
然后连接上usb-blaster,打开设备管理器,此时usb-blaster上面是一个小感叹号,说明驱动异常。
右键usb-blaster并选择更新驱动程序 > 浏览我的计算机并查找驱动程序 > 如下图所示选中驱动程序文件夹勾选子文件夹并点击下一步即可。
此时如果安装不成功,显示哈希值错误之类的,就需要进入安全模式进行安装。
一、Windows无法安装USB-Blaster。
二、文件的哈希值不在指定的目录文件中。
下面以上提供两个问题的完整解决办法,Win7、Win8、Win10系统的解决过程是类似的,只是界面不一样而已。
问题一:Windows无法安装USB-Blaster
解决办法:
1、进入,计算机–>>设备管理器。
2、找到设备USB-Blaster,此时是带有黄色感叹号的。
3、右键,更新驱动程序软件。
4、要选择“浏览计算机以查找驱动程序软件®”,如选择自动搜索是不能安装成功的,一定要手动搜索。
Quartus II 安装完成后自带有USB-Blaster的驱动程序,因此不用再到网上去特意下载USB-Blaster的驱动程序,只需在Quartus II 安装目录下找到USB-Blaster的文件夹即可。
我的USB-Blaste文件夹的路径为:C:\altera\11.0\quartus\drivers\usb-blaster。一定不能是usb-blaster的子文件夹(如C:\altera\11.0\quartus\drivers\usb-blaster\x32或C:\altera\11.0\quartus\drivers\usb-blaster\x64),否则会提示找不到驱动程序。
后面就可以了。
问题二:文件的哈希值不在指定的目录文件中
解决办法:
1、 Windows键+R→shutdown.exe /r /o /f /t 00→确定
Windows会重启进入下图:
2、选择“疑难解答”
3、”高级选项”→”启动设置”→”重启”
4、重启的时候就出来安全模式列表→选择“禁用驱动程序强制签名”
5、重新更新驱动,参照问题一解决办法。
6、更新驱动时会出现Windows安全提示窗口,选择“始终安装此驱动程序软件(I)”。
7、OK,驱动程序安装完成,原来的黄色感叹号消失。
在我们完成驱动安装后电脑就不会在我们接上USB-Blaster后蓝屏重新启动,问题解决。
参考
https://blog.csdn.net/sinat_31206523/article/details/89204980
https://blog.csdn.net/qin_feiyu/article/details/80520669
https://blog.csdn.net/qq_40598297/article/details/115415949