tomato

tomato

36个粉丝

161

问答

601

专栏

187

资料

tomato  发布于  2023-01-31 11:43:52
采纳率 1%
161个问答
===============
837

Hi3520D V400 GPIO管脚上电后会有一个异常的电平转换

   

【问题描述】:
硬件是使用的是SPI NAND flash 的板子,项目中使用到了 SPI_CSN0/GPIO5_3 SPI_CSN1/GPIO8_7 的2个GPIO脚,uboot里面复用为了GPIO,然后设置为输出模式,固定设置为0,控制外设, 因为这2个IO控制的外设最终要控制屏的输出,现在屏在每次重启的时候都会闪烁,使用示波器测试发现,这2个脚会在上电时候有一个高电平输出,见附件的图。 修改的代码部分参见附件的board.c

【所处环境】:
修改文件为uboot/board/hi3520dv400/board.c (配置了管脚复用为GPIO并设置为输出拉底) ,具体修改代码见附件boadrd.c

【初步分析】:
搜索了uboot里面关于这2个GPIO和SPICSN相关发现都没有操作到,现在不知道是哪里输出的这个高电平。

【定位信息】:
示波器抓下的图图见附件,是个固定的37.42ms的脉冲。

易百纳技术社区文件: board.c
下载
我来回答
回答2个
时间排序
认可量排序

Debug

14个粉丝

44

问答

41

专栏

25

资料

Debug 2023-02-08 13:49:52
认可0

测试波形中的37.42ms的正脉冲,测试的时间是在启动的哪个阶段?对于GPIO5_3和GPIO8_7这两个脚,在上电过程中分为几个阶段:
阶段1 CORE未上电,IO上电,此阶段是PD,即下拉状态,表现为低电平;
阶段2 CORE上电,IO上电,芯片在复位阶段,此阶段是Z,即高阻态,是输入,如果外部有上拉或下拉,那么电平由外部电路决定,如果是悬空的,电平不定的,可能为高也可能为低;
阶段3 芯片复位结束,在UBOOT启动之前,此阶段的电平由BOOTROM的代码决定,BOOTROM代码不可修改。
阶段4 UBOOT启动,UBOOT表格和代码,决定了管脚状态。

tomato
tomato   回复   Debug  2023-02-11 10:33:02
0

通过大量的测试,应该是在阶段3 bootrom 里面被拉高了,我在阶段4里面有控制,改复用并拉低IO脚。

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区