完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我正在使用 TLE7258SJXUMA1 收发器和 TRAVEO T2G。 我连接了 Lin RX 端口 5.0 和 Tx 端口 5.1。 配置如下
#define LIN_RX_PORT GPIO_PRT5#define LIN_RX_PIN 0u#define LIN_RX_PIN_MUX P5_0_LIN0_LIN_RX7#define LIN_TX_PORT GPIO_PRT5#define LIN_TX_PIN 1u#define LIN_TX_PIN_MUX P5_1_LIN0_LIN_TX7#define LIN_EN_PORT GPIO_PRT5#define LIN_EN_PIN 2u#define LIN_EN_PIN_MUX P5_2_LIN0_LIN_EN7#define LIN_TYPE LIN0_CH7#define LIN_PCLK PCLK_LIN0_CLOCK_CH_EN7#define LIN_IRQN lin_0_interrupts_7_IRQn#define LIN_TYPE LIN0_CH7#define LIN_PCLK PCLK_LIN0_CLOCK_CH_EN7#define LIN_IRQN lin_0_interrupts_7_IRQn 我想把收发器用作从属设备。 我有 microchip 的 Lin 分析仪工具。 static const stc_lin_config_t lin_config ={ .bMasterMode = false, //If TRUE, corresponding channel = master mode, If FALSE, slave mode. .bLinTransceiverAutoEnable = true, //If TRUE, corresponding LIN channel transceiver is enabled automatically, If FALSE, firmware has to handle the transceiver enable signal manually .u8BreakFieldLength = 11u, //Break field length .enBreakDelimiterLength = LinBreakDelimiterLength1bits, //Break delimiter length {LinBreakDelimiterLength1bits = 1-bit length} .enStopBit = LinOneStopBit, //Stop bit length { LinOneStopBit = 1, LinTwoStopBit = 3 } .bFilterEnable = true//If TRUE, lin_rx_in filter operates. Median 3 operates on the last three "lin_rx_in" values};void Lin_init(){ /* Note: * LIN IP does oversampling and oversampling count is fixed 16. * Therefore LIN baudrate = LIN input clock / 16. */ Cy_SysClk_PeriphAssignDivider(LIN_PCLK, CY_SYSCLK_DIV_16_BIT, 0u); Cy_SysClk_PeriphSetDivider(CY_SYSCLK_DIV_16_BIT, 0u, (195u-1u)); // 60 MHz / 195 / 16 (oversampling) = 19231 Hz Cy_SysClk_PeriphEnableDivider(CY_SYSCLK_DIV_16_BIT, 0u); /* Initialize port settings */ PortInit(); Cy_Lin_Init(LIN_TYPE, lin_config); Cy_Lin_Enable(LIN_TYPE); lin_state = LIN_STATE_IDLE; /* Register LIN interrupt handler and enable interrupt */ Cy_SysInt_InitIRQ( lin_irq_cfg); Cy_SysInt_SetSystemIrqVector(lin_irq_cfg.sysIntSrc, LIN0_IntHandler); NVIC_SetPriority(CPUIntIdx7_IRQn, 7u); NVIC_ClearPendingIRQ(CPUIntIdx7_IRQn); NVIC_EnableIRQ(CPUIntIdx7_IRQn); /* LIN operation */ lin_state = LIN_STATE_RX_HEADER; Cy_Lin_SetInterruptMask(LIN_TYPE, CY_LIN_INTR_RX_HEADER_DONE | CY_LIN_INTR_RX_RESPONSE_DONE | CY_LIN_INTR_ALL_ERROR_MASK_SLAVE); Cy_Lin_SetCmd(LIN_TYPE, CY_LIN_CMD_RX_HEADER_RX_RESPONSE);}这是我的代码。 lin 工具在未连接 traveo 时会发送信号,但一旦我将其连接到 traveo,lin 信号就会消失,通信也不会发生。 我的代码中没有中断。 lin 工具在未连接 traveo 时会发送信号,但一旦我将其连接到 traveo,lin 信号就会消失,通信也不会发生。 中断不来 |
|
相关推荐
1个回答
|
|
根据您提供的信息,您正在尝试将 TLE7258SJXUMA1 收发器与 TRAVEO T2G 连接,并配置 LIN RX 端口。如果 LIN 信号在连接后消失,您可以尝试以下步骤来解决问题:
1. 检查硬件连接:确保 TLE7258SJXUMA1 收发器与 TRAVEO T2G 的 LIN RX 和 TX 端口之间的连接正确无误。检查是否有任何断线或接触不良的情况。 2. 检查 TLE7258SJXUMA1 收发器的配置:确保收发器的配置正确,包括电源、地线和 LIN 信号线。查看 TLE7258SJXUMA1 的数据手册,以确保您遵循了正确的配置步骤。 3. 检查 TRAVEO T2G 的配置:确保 TRAVEO T2G 的 LIN 端口配置正确。根据您的代码,您已经定义了 LIN_RX_PORT、LIN_RX_PIN 和 LIN_RX_PIN_MUX。请确保这些定义与您的硬件设置相匹配。 4. 检查软件驱动:确保您的软件驱动程序支持 TLE7258SJXUMA1 收发器和 TRAVEO T2G。如果需要,更新驱动程序以获得更好的兼容性。 5. 使用示波器或逻辑分析仪:使用示波器或逻辑分析仪检查 LIN 信号在连接前后的状态。这将帮助您确定问题是否出在硬件连接或信号质量上。 6. 检查 LIN 协议:确保您的系统遵循 LIN 协议规范。如果可能,请与其他 LIN 设备进行通信测试,以排除协议兼容性问题。 7. 寻求技术支持:如果以上步骤都无法解决问题,建议您联系 TLE7258SJXUMA1 收发器和 TRAVEO T2G 的制造商,寻求技术支持。 通过以上步骤,您应该能够找到并解决 LIN 信号消失的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5362 浏览 2 评论
4071 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3588 浏览 9 评论
1203 浏览 8 评论
3491 浏览 7 评论
409浏览 2评论
241浏览 2评论
350浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5369浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
411浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 19:31 , Processed in 0.678716 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号