-
GD32芯片采样ADC和CAN通讯的影响 sos
GD32芯片用RTT操作系统的话,交流采样ADC,频繁的ADC采样和DMA传输,ADC的中断会影响或打断CAN的正常通讯吗??
1098浏览量 0回复量 关注量 -
HC32F460 CAN通讯错误掉线后如何恢复,错误中断如何配置
各位大佬,我在项目中用F460发生CAN掉线,设备重启后CAN恢复,知道是内部can控制掉线了,要等待128个持续隐形电平,才能恢复。问题1:手册里说通过错误中断可以知道是否掉线,那么MCU该如何配置错误中断的回调函数? 问题2:这128个持续隐形电平该怎么去判断?
1445浏览量 2回复量 关注量 -
有关HC32F460的CAN通讯问题
我尝试使用HC32F460来进行CAN通讯,但是在使用例程的时候始终无法进行正常的CAN通讯,想请教一下是不是哪里配置错误导致的问题。 选用的是20MHz外部晶振,主频与例程相同配至200MHz。 以下是有关CAN的配置 static void CanInitConfig(void) { stc_can_init_config_t stcCanInitCfg; stc_can_filter_t astcFilters[CAN_FILTERS_COUNT] = \ { {0x00000000ul, 0x1FFFFFFFul, CanFilterSel1, CanAllFrames} }; //<< Enable can peripheral clock and buffer(ram) PWC_RamOpMdConfig(HighSpeedMd); PWC_RamPwrdownCmd(PWC_RAMPWRDOWN_CAN, Enable); PWC_Fcg1PeriphClockCmd(PWC_FCG1_PERIPH_CAN, Enable); //<< CAN GPIO config 这里是自己配置的两个端口 PORT_SetFunc(PortB, Pin02, Func_Can1_Rx, Disable); PORT_SetFunc(PortB, Pin10, Func_Can1_Tx, Disable); //64pin没有PD15,所以屏蔽了以下两句 //PORT_ResetBits(PortD, Pin15); //PORT_OE(PortD, Pin15, Enable); MEM_ZERO_STRUCT(stcCanInitCfg); //<< Can bit time config 这边跟例程相同选用1MHz波特率 stcCanInitCfg.stcCanBt.PRESC = 1u-1u; stcCanInitCfg.stcCanBt.SEG_1 = 5u-2u; stcCanInitCfg.stcCanBt.SEG_2 = 3u-1u; stcCanInitCfg.stcCanBt.SJW = 3u-1u; stcCanInitCfg.stcWarningLimit.CanErrorWarningLimitVal = 10u; stcCanInitCfg.stcWarningLimit.CanWarningLimitVal = 16u-1u; stcCanInitCfg.enCanRxBufAll = CanRxNormal; stcCanInitCfg.enCanRxBufMode = CanRxBufNotStored; stcCanInitCfg.enCanSAck = CanSelfAckEnable; stcCanInitCfg.enCanSTBMode = CanSTBFifoMode; stcCanInitCfg.pstcFilter = astcFilters; stcCanInitCfg.u8FilterCount = CAN_FILTERS_COUNT; CAN_Init(&stcCanInitCfg); } 因为通讯不上,我又尝试使用CAN内部回环模式通信的例程,想看看能不能进行内部通讯,但是仍然失败,且一直在while (false == CAN_Irq**Get(CanTxPrimaryIrq**))这一句循环,没有发送成功。因此想请教一下可能是什么原因造成的呢?
9746浏览量 26回复量 关注量 -
电源中的CAN通讯电路是否需要共模电感?
大家好!我最近做了一个1kw的电源,需要用到CAN通讯电路和上位机对接,看到很多资料说CAN电路的外围搭载有51uH典型值的共模电感和一些TVS之类的保护器件,当然也包括这个120Ω电阻和适当的消噪小电容。但是我也看到有人说不要这个共模电感,因为这个东西会影响到差分信号传输的波形质量,容易引发波形畸变从而通讯异常。请问大家怎么看这个问题?谢谢指点
8991浏览量 3回复量 关注量 -
CAN通讯电阻不匹配是否会导致通讯失效?
[color=#333333][backcolor=rgb(255, 255, 255)][font="]最近做的一款充电器周不时的出现偶尔停机,监控发现有时候充电报文无端端的凭空消失,即相当于下位机不见了ID,后来排查了CAN总线总电阻,发现这个阻值为40Ω,再检查发现充电器端一个120Ω,仪表一个[/font][/backcolor][/color][color=rgb(51, 51, 51)][backcolor=rgb(255, 255, 255)][font="]120Ω,整车控制器一个[/font][/backcolor][/color][color=rgb(51, 51, 51)][backcolor=rgb(255, 255, 255)][font="]120Ω,合起来就是40Ω。请问会是这个电阻不匹配导致的问题吗?[/font][/backcolor][/color]
15996浏览量 9回复量 关注量 -
CAN通讯多帧连续发送与接收问题(done)
[i=s] 本帖最后由 muyichuan2012 于 2021-3-25 08:45 编辑 [/i] 主机CAN连续发5帧数据(8字节为1帧),从机接收的数据量正确,但是顺序错乱。 下载视频 主机发(HEX): 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 05 00 00 00 00 从机收到(HEX): 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 03 00 00 00 00 芯片:STM32F103C8T6 HK32F103CBT6A AT32F407VGT7 这3款芯片都存在这种现象(HAL与标准库都尝试过)。 1.主机发送的数据已经多次确认,是按1.2.3.4.5的顺序发送的,顺序正确。 2.每帧之间加延时会好 3.fifoPriority = ENABLE/DISABLE不会好 4.各位大佬有没有遇到这种问题,怎么解决接收的顺序问题?
2816浏览量 4回复量 关注量