pl022调试备忘
来源:互联网 发布:2016淘宝返利网排名 编辑:程序博客网 时间:2024/05/19 12:17
记住把地址0x67800030第17位置1。目的是打开spi1的所在的那一组GPIO(数据线,时钟线以及片选线对应的GPIO供电)的芯片内部供电,这一路供电叫vdd_nfs。要注意在v2的DVB板上这一路供电可以通过跳线JP12直接提供,所以如果直接通过跳线由外部提供一个1v8的电压后spi1也是可以使用的。
以上问题的发现是因为测试中总是发现spi1没有clk输出,对应的其他数据线也没有信号。而当修改spi1控制器对应的寄存器后发现寄存器的值都是正常变化的,由此断定spi1控制器本身已经在正常工作了,只是其对应的gpio没有拉动。那么可是gpio功能配置错误,但是检查了gpio功能配置的相关寄存器后发现这几个gpio功能选择都是正常的。继而想办法确定这几个gpio的硬件是否正常,方法是将这几个gpio的功能配置为功能1,即普通的gpio,然后再配置其为输出方向,然后设置相关寄存器让它拉高拉低,发现竟然不动。如此看来真有点儿怀疑是gpio的硬件出了问题。但是专门针对gpio的测试时却发现这几个gpio都是正常的。因此推断肯定是我对gpio的配置有些问题。另外一个同事是专门做gpio测试的,和他沟通后,他指出可能是spi1所用的哪一组gpio没有被供电。解决问题!
顺便说下gpio的功能选择和配置。
每16个gpio分为一组。假设你要配置gpio_70,那么用70除以16,商4余6.所以这个gpio在第四组,在组内的寄存器偏移量是6,也就是第6位。
每一组gpio涉及80个32bit的寄存器。假设gpio对应的寄存器开始于寄存器0x6E000000,也就是第0组始于0x6E000000,那么第一组始于0x6E000080,第二组始于0x6E000100,第三组始于0x6E000180,第四组始于0x6E000200.以此类推。
首先在0x6F000000位置选择gpio的功能(见GPD选项卡)。绝大多数gpio都各自有4中功能可以配置。
对于gpio_70的具体功能选择在0x6F000084寄存器的[ 27:26 ] 两个位。
功能选择完成后(这里我们选择的是第一功能,即gpio功能,这样我们才需要第二步)
第二步是配置gpio的
方向: 设置寄存器0x6E000200的第6位为1表示输出
掩码:设置寄存器0x6E000204的第6位为1,这是掩码,就不说了。
拉高拉低; 设置寄存器0x6E000208的第6位为1,这个表示拉高。
完了。
0x67800040的 [5:6] 都设置为1可以配置芯片的VIO电压为3.3V
- pl022调试备忘
- pl022 ssp 驱动调试笔记
- Serial Peripheral Interface Bus · Motorola SPI ARM PL022 控制器驱动移植 SPI接口的SD卡调试
- GDB调试入门备忘
- java 远程调试备忘
- GDB调试基础备忘
- CGAL调试备忘
- GDB调试基础备忘
- CC430F5137 IAR调试备忘
- php调试备忘
- fortran 调试备忘
- gdb调试技巧备忘
- PCL安装调试备忘
- SPI 适配器调试笔记: 关键字 pl022 DMA配置 中断配置 SPI主从模式配置 mater slaver SSP配置 中断嵌套 底半部 顶半部
- 调试华为MML协议备忘
- vc6.0调试技巧[备忘]
- gdb调试 简单命令(备忘)
- 备忘:使用无线连接adb调试
- POJ 2935 Basic Wall Maze BFS
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- 《那些年啊,那些事——一个程序员的奋斗史》——65
- 多线程操作UI
- 少妇、伟哥与猪之间不得不说的经济故事
- pl022调试备忘
- hibernate的多条件查询——Criteria Query的应用
- Notification Manager 总结
- 当session过期,跳出iframe框架到登录页面?
- VB内部控件总结(三)
- 求解:为什么会出现错误代码?
- 螺旋打印数字矩阵
- 下载数据库文件时会出现中文文件名乱码,解决方法
- mmap 的理解