4878|17

2947

帖子

4

TA的资源

五彩晶圆(中级)

楼主
 

stm32g431的boot0引脚如何复用为I2C [复制链接]

 

我是用STM32CubeMX设置PB8和PB7为I2C引脚,但是芯片无法工作,因为PB8默认为Boot0引脚,电路上需要就GND,所以使用STM32 ST-LINK Utility设置后可以使用了,但是I2C工作一直不正常,不知道还需要怎么设置。

 上图既是设置的项目,我在设置好之后,PA8引脚只是设置成I2C其它没有设置。I2C的引脚我已经上拉4.7K电阻。

 

 我测量了引脚PB7为高电平,但是PB8确是低电平GND。这好像不正常。

此帖出自stm32/stm8论坛

最新回复

BOOT0,一看到这大名就感觉不好惹   详情 回复 发表于 2022-12-6 00:30
点赞 关注
 

回复
举报

6168

帖子

4

TA的资源

版主

沙发
 
本帖最后由 damiaa 于 2022-11-24 16:01 编辑

按资料上讲设置了配置位启动就没PB8的事了。 

就算PB8做启动选择IO口,那也是输入,不至于一直低电平高不上来。

你把它做过简单的gpio 测试一下,让它翻转看行不。

如果可以。再看i2C的事。

 

还有BFB2的事:楼主可以了解一下,没玩过。

When the device boots from SRAM, in the application initialization code, you have to

relocate the vector table in SRAM using the NVIC exception table and the offset register.

When booting from the main Flash memory, the application software can either boot from

bank 1 or from bank 2 (only for category 3 devices). By default, boot from bank 1 is selected.

To select boot from Flash memory bank 2, set the BFB2 bit in the user option bytes. When

this bit is set and the boot pins are in the boot from main Flash memory configuration, the

device boots from system memory, and the boot loader jumps to execute the user

application programmed in Flash memory bank 2. For further details, please refer to

AN2606

 

此帖出自stm32/stm8论坛

点评

BFB2好像和BOOT0没有毛的关系,资料上说G4系列nSWBOOT0是用来决定BOOT0信号源是内部还是外部地,如果是内部boot0就由nBoot0来决定了。  详情 回复 发表于 2022-11-24 17:16
我怀疑是因为引脚没有初始化为I2C的原因,也不知道为什么STM32G431的Cube生成的程序都没有指定GPIO复用,串口、PWM、ADC等等都一样可是串口工作正常。  详情 回复 发表于 2022-11-24 16:12
 
 

回复

2947

帖子

4

TA的资源

五彩晶圆(中级)

板凳
 
damiaa 发表于 2022-11-24 15:25 按资料上讲设置了配置位启动就没PB8的事了。  就算PB8做启动选择IO口,那也是输入,不至于一直低电 ...

我怀疑是因为引脚没有初始化为I2C的原因,也不知道为什么STM32G431的Cube生成的程序都没有指定GPIO复用,串口、PWM、ADC等等都一样可是串口工作正常。

此帖出自stm32/stm8论坛

点评

指定了呢。 [attachimg]659747[/attachimg] BFB2那个位好像是做双启动用的, 用户要升级程序等场景用的,具体你看一下手册。是不是和它有关?  详情 回复 发表于 2022-11-24 16:35
 
 

回复

6168

帖子

4

TA的资源

版主

4
 
bigbat 发表于 2022-11-24 16:12 我怀疑是因为引脚没有初始化为I2C的原因,也不知道为什么STM32G431的Cube生成的程序都没有指定GPIO复用, ...

指定了呢。

BFB2那个位好像是做双启动用的, 用户要升级程序等场景用的,具体你看一下手册。是不是和它有关?

此帖出自stm32/stm8论坛

点评

无论怎么设置都是低电平,我把PIN设置成输出置成高 ,复用模式、开漏模式。都是低。看来BOOT0真不能复用啊 GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_  详情 回复 发表于 2022-11-24 17:06
 
 
 

回复

7494

帖子

2

TA的资源

版主

5
 

先检测PB8能不能正常拉高,如果可以,估计就是初始化IIC有问题。可以先用软件IIC。

此帖出自stm32/stm8论坛
 
 
 

回复

2947

帖子

4

TA的资源

五彩晶圆(中级)

6
 
damiaa 发表于 2022-11-24 16:35 指定了呢。 BFB2那个位好像是做双启动用的, 用户要升级程序等场景用的,具体你看一下手册。是不 ...

无论怎么设置都是低电平,我把PIN设置成输出置成高 ,复用模式、开漏模式。都是低。看来BOOT0真不能复用啊

	GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_7;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
	HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

 

此帖出自stm32/stm8论坛

点评

BFB2 看了没有?  详情 回复 发表于 2022-11-24 17:14
 
 
 

回复

6168

帖子

4

TA的资源

版主

7
 
本帖最后由 damiaa 于 2022-11-24 17:16 编辑

STM32 ST-LINK Utility设置 里面的BFB2 看了没有?不过我没玩过这个板子,BFB2这里没搞过。你自己看看。摸索一下。

此帖出自stm32/stm8论坛
 
 
 

回复

2947

帖子

4

TA的资源

五彩晶圆(中级)

8
 
damiaa 发表于 2022-11-24 15:25 按资料上讲设置了配置位启动就没PB8的事了。  就算PB8做启动选择IO口,那也是输入,不至于一直低电 ...

BFB2好像和BOOT0没有毛的关系,资料上说G4系列nSWBOOT0是用来决定BOOT0信号源是内部还是外部地,如果是内部boot0就由nBoot0来决定了。

此帖出自stm32/stm8论坛
 
 
 

回复

6168

帖子

4

TA的资源

版主

9
 
本帖最后由 damiaa 于 2022-11-25 11:15 编辑

这个选了吗?图片上好像没选。当nBOOT_SEL为1时,启动模式完全由Option Bytes控制。

 

按理讲是应该可以复用的。st不至于这么low。

这个只有STM32G系列可以boot0启动由Option Bytes控制。 F0系列看了一下。还没这个功能。

此帖出自stm32/stm8论坛

点评

nBOOT_SEL是不可选的,手册DataSheet上说nSWBOOT0来控制,是不是这个和nBOOT_SEL是一样的作用  详情 回复 发表于 2022-11-25 11:51
 
 
 

回复

2947

帖子

4

TA的资源

五彩晶圆(中级)

10
 
damiaa 发表于 2022-11-25 11:12 这个选了吗?图片上好像没选。当nBOOT_SEL为1时,启动模式完全由Option Bytes控制。   按理讲是 ...

nBOOT_SEL是不可选的,手册DataSheet上说nSWBOOT0来控制,是不是这个和nBOOT_SEL是一样的作用

此帖出自stm32/stm8论坛

点评

确实 手册上说了 Flash option register (FLASH_OPTR)   Bit 26 nSWBOOT0: Software BOOT0 0: BOOT0 taken from the option bit nBOOT0 1: BOOT0 taken from PB8/BOOT0 pin 有时间我找给st  详情 回复 发表于 2022-11-25 12:42
 
 
 

回复

6168

帖子

4

TA的资源

版主

11
 
本帖最后由 damiaa 于 2022-11-25 12:58 编辑
bigbat 发表于 2022-11-25 11:51 nBOOT_SEL是不可选的,手册DataSheet上说nSWBOOT0来控制,是不是这个和nBOOT_SEL是一样的作用

确实 不同型号不一样  STM32G4参考手册上说了

Flash option register (FLASH_OPTR)

Bit 26 nSWBOOT0: Software BOOT0

0: BOOT0 taken from the option bit nBOOT0

1: BOOT0 taken from PB8/BOOT0 pin

有时间我找块stm32g系列板子试试看。

 

自己做的板子还是官方的开发板?硬件部分量过没有?比如PB8和gnd是否是短路的。。。。

 

此帖出自stm32/stm8论坛

点评

PB8和GND没有短路,也没有虚焊的现象,但是PB8无论怎么设置都不起作用。这个让我很是疑惑。板子是我自己做的,而且没有富裕的引脚,要不我是不会使用PB8这样的引脚的。 还有一个现象,就是PA15也就是I2C的原生脚  详情 回复 发表于 2022-11-25 13:47
 
 
 

回复

2947

帖子

4

TA的资源

五彩晶圆(中级)

12
 

PB8和GND没有短路,也没有虚焊的现象,但是PB8无论怎么设置都不起作用。这个让我很是疑惑。板子是我自己做的,而且没有富裕的引脚,要不我是不会使用PB8这样的引脚的。

还有一个现象,就是PA15也就是I2C的原生脚接在BELL上,有时在调试加载时会出现蜂鸣器声音较小的现象。

此帖出自stm32/stm8论坛

点评

PA15也就是I2C的原生脚接在BELL上 ?驱动电流不够吧?搞个三极管放大一下试试。  详情 回复 发表于 2022-11-25 14:36
 
 
 

回复

6168

帖子

4

TA的资源

版主

13
 

PA15也就是I2C的原生脚接在BELL上 ?驱动电流不够吧?搞个三极管放大一下试试。

此帖出自stm32/stm8论坛

点评

PA15是接到光耦上,然后隔离后进行工作。所以不影响PA15的驱动,大部分的时间BELL都是正常地,只是调试的时候加载后会出现声音小的情况。  详情 回复 发表于 2022-11-25 15:47
 
 
 

回复

2947

帖子

4

TA的资源

五彩晶圆(中级)

14
 
damiaa 发表于 2022-11-25 14:36 PA15也就是I2C的原生脚接在BELL上 ?驱动电流不够吧?搞个三极管放大一下试试。

PA15是接到光耦上,然后隔离后进行工作。所以不影响PA15的驱动,大部分的时间BELL都是正常地,只是调试的时候加载后会出现声音小的情况。

此帖出自stm32/stm8论坛
 
 
 

回复

6168

帖子

4

TA的资源

版主

15
 

今天测试了一块nucleo-g491re:

nucleo-g491re的sWBBOOT0选1  PB8-BOOT也可以不接地 悬空可以。

                           和sWBBOOT0选0 nBOOT0 选1 效果一样

 

推挽输出控制pb8。PB8-BOOT始终为0. 

此帖出自stm32/stm8论坛

点评

就是说pb8不可以推挽输出是吗?我这里也是PB8无论什么输出都是0,很是郁闷。即使我把引脚调整过来也不行了。不知道论坛中有没有ST的人,问问怎么回事。  详情 回复 发表于 2022-11-28 13:26
 
 
 

回复

2947

帖子

4

TA的资源

五彩晶圆(中级)

16
 
damiaa 发表于 2022-11-28 11:51 今天测试了一块nucleo-g491re: nucleo-g491re的sWBBOOT0选1  PB8-BOOT也可以不接地 悬空可以。 ...

就是说pb8不可以推挽输出是吗?我这里也是PB8无论什么输出都是0,很是郁闷。即使我把引脚调整过来也不行了。不知道论坛中有没有ST的人,问问怎么回事。

此帖出自stm32/stm8论坛

点评

应该是什么都不可以。因为没拉电阻。搞个推挽输出测试一下。  详情 回复 发表于 2022-11-28 14:21
 
 
 

回复

6168

帖子

4

TA的资源

版主

17
 
bigbat 发表于 2022-11-28 13:26 就是说pb8不可以推挽输出是吗?我这里也是PB8无论什么输出都是0,很是郁闷。即使我把引脚调整过来也不行 ...

应该是什么都不可以。因为没拉电阻。搞个推挽输出测试一下。 是不是有些版本这样? 看到处资料都说可以。

此帖出自stm32/stm8论坛
 
 
 

回复

224

帖子

0

TA的资源

一粒金砂(高级)

18
 

BOOT0,一看到这大名就感觉不好惹

此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表