watershade 发表于 2015-7-5 22:54:36

用MX验证了一下,默认情况下在F4上PA9配置的是VBUS_FS,PA10连接的是OTD_FS_ID。而且有别针锁住,说明硬件有关联。和楼主的说法一致。但是PB6其实也连接到audio相关的CS43L22上了。尚不清楚为什么配置到PB6没问题。

不过我坚持以为是外围电路引起的。请注意PA9充当的是VBUS,也连接到了EMIF02-USB03F2这个芯片。这个片子是USB保护芯片,如果你想确认是不是它影响的话你可以尝试吧PA9设置成浮空输出看看电平是什么样子。我还没做实验,不过我估计很难拉低。不过没有试验过。

没有实验就没有发言权,以上只能算是估计。
祝你好运,你自己的板子PA9和PA10的状态看了吗?

watershade 发表于 2015-7-5 23:08:43

不好意思,我的分析有问题:PA9当然能拉底。可能是受图中电路影响。如果方便可以焊去R56试试。

wenyangzeng 发表于 2015-7-6 07:41:35

本帖最后由 wenyangzeng 于 2015-7-6 09:52 编辑

应该是C49充电把PA9一直拉高而出现锯齿波。20楼中的图2锯齿波可以很好解释C49在其中所起的关键作用。

北斗光寒 发表于 2015-7-6 08:51:50

貌似有些意思   回头试试

发表于 2015-7-6 09:10:05

从波形来看,还有硬件电路的分析,应该是外设影响的。楼主可以测试一下接收是否正常。如果接收正常,说明发送引脚受到外设影响。

wjandsq 发表于 2015-7-6 10:04:38

USB FS 和USART1(PA9 PA10)能同时用,本人已经测试过。

本帖最后由 wjandsq 于 2015-7-6 10:08 编辑

USART1(PA9 PA10)不可能有问题。连接OUT的线割掉就好了,电容影响发送。

wenyangzeng 发表于 2015-7-6 22:29:05

本帖最后由 wenyangzeng 于 2015-7-6 22:45 编辑

为真正找出问题所在,临时编制一小段代码,每100mS让GPIOC_9翻转一次,用示波器观察波形周期。
while(1)
{
delay_ms(100);
GPIOC->ODR ^=0X0200;
};

图1 STM32F407-STM32F4-DISCOVERY上的正确波形


         图2 故障机上的波形:2个延时周期只有7.2格
   现在终于能看到“庐山真面目”了,故障机MCU的工作周期比STM32F407-STM32F4-DISCOVERY缩短了1.2倍左右。这是导致故障机波特率偏高的原因。更换一只晶振后故障排除。就是还有点不明白的是用示波器直接测量晶振的工作频率(参见20楼的图6、 图7)为何2机的结果却都非常接近?
    至此,本贴终于得到圆满解决。换一只晶振所花费的时间不足1分钟,查找故障所花费的时间累计不少于24小时。虽然表面上看比例太悬殊。但能有一次这样的过程,机会实在难得,让我们长进不少。同时还节外生枝,导出对STM32F407-STM32F4-DISCOVERY的误判。;P   期间得到版主和许多网友的热情帮助。非常感谢!



watershade 发表于 2015-7-10 22:32:05

wenyangzeng 发表于 2015-7-6 07:41
应该是C49充电把PA9一直拉高而出现锯齿波。20楼中的图2锯齿波可以很好解释C49在其中所起的关键作用。 ...

你说的很有可能,毕竟4.9uF也不小了。试过了吗?

watershade 发表于 2015-7-10 22:36:08

wenyangzeng 发表于 2015-7-6 22:29
为真正找出问题所在,临时编制一小段代码,每100mS让GPIOC_9翻转一次,用示波器观察波形周期。
while(1)
{


楼主我不明白,那为什么你说PB可以PA不可以。难道你说的是你之前板子的晶振有问题?
又及,你换的是同一批次的还是更换了别的型号的?

wenyangzeng 发表于 2015-7-12 08:53:31

watershade 发表于 2015-7-10 22:36
楼主我不明白,那为什么你说PB可以PA不可以。难道你说的是你之前板子的晶振有问题?
又及,你换的是同一 ...
回复楼上,故障经过大概是这样的:我的工程板绘制时USART1是接PA口,无法改接PB口进行验证。8M晶振频率偏高导致通讯失败后,用一片STM32F407DISCOVERY板来对比调试,恰好这片板的PA9连接了一部分外设,其中就有那只C49的电解电容,由于这只电容的滤波作用让PA口输出波形严重失真,得到这片板上的PA口接USART1也是失败的结论,而PB口由于没有那只滤波电容所以通讯成功。
      因为找到STM32F407DISCOVERY板PA口通讯错误的原因,才回过头来查找到工程板是晶振不良引起通讯失败的原因。同样是PA口通讯失败,原因却是不同的。
页: 1 2 [3]
查看完整版本: STM32F407的USART1只能映射到PB6-7,如果选择PA9-10就乱码