TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F280049C: 接口问题

Part Number:TMS320F280049COther Parts Discussed in Thread:LAUNCHXL-F280049C

1、我使用LAUNCHXL-F280049C与USBCAN进行连接,我使用的USBCAN的CANL与28004的CANL相连接,USBCAN的CANH与28004的CANH相连接。这种接法是否是对的?

2、我查看芯片手册LAUNCHXL-F280049C的CANA的gpio引脚是:CANA的TX是GPIO32=51引脚,RX是GPIO33=73引脚,我是该用gpio还是CANL和CANH?

3、我使用的LAUNCHXL-F280049C的发送程序can_ex4_simple_transmit,是不是可以通过示波器看到输出波形?现在没有波形是不是不对?如果不对是什么地方出现了问题呢?

我的示波器应该接什么地方能够采集到波形,是CANL和CANH?还是接GPIO?还是怎么接可以给一个结论么?

4、使用can_ex4_simple_transmit发送数据卡在  while(((HWREGH(CANA_BASE + CAN_O_ES) & CAN_ES_TXOK)) !=  CAN_ES_TXOK),是没有接收么?我之前问过这个问题你们回复是没有接收,但是我接的USBCAN和示波器都采集不到你们的信号。我用USBCAN发送信号示波器是可以采集到的,麻烦给我解决一下吧这个问题已经纠结了几天了。反复的问也没得到较好的解决。

辛苦了!

Susan Yang:

shipeng huang 说:1、我使用LAUNCHXL-F280049C与USBCAN进行连接,我使用的USBCAN的CANL与28004的CANL相连接,USBCAN的CANH与28004的CANH相连接。这种接法是否是对的?

是的,这样连接是正确的

shipeng huang 说:2、我查看芯片手册LAUNCHXL-F280049C的CANA的gpio引脚是:CANA的TX是GPIO32=51引脚,RX是GPIO33=73引脚,我是该用gpio还是CANL和CANH?

不知您使用的是哪个版本的launchpad?我手边这个是MCU025A,原理图如下

shipeng huang 说:3、我使用的LAUNCHXL-F280049C的发送程序can_ex4_simple_transmit,是不是可以通过示波器看到输出波形?现在没有波形是不是不对?如果不对是什么地方出现了问题呢?

您可以看一下

https://www.ti.com.cn/cn/lit/an/sprace5a/sprace5a.pdf 

Figure 2-5 depicts the waveform on the CANTXA pin

shipeng huang 说:使用can_ex4_simple_transmit发送数据卡在  while(((HWREGH(CANA_BASE + CAN_O_ES) & CAN_ES_TXOK)) !=  CAN_ES_TXOK),是没有接收么?

是没有发送成功,若是发送成功的话,CAN_ES_TXOK是会置1的

建议您检查下硬件配置。另外您是否确保 USB CAN 分析仪上的比特率设置为与 MCU 匹配?

,

shipeng huang:

我把USBCAN的比特率所有的都是测试了还是不对,现在不知道到底是说明原因了。可以帮忙想一下办法能解决这个问题么?

,

Susan Yang:

1 请将您的开发板和USBCAN分析仪以及两者之间的连线拍照

2 对USBCAN分析仪软件的配置部分截图

3 说明一下您现在使用的例程以及是否有进行修改

我会在汇总给出的信息之后咨询下相关的同事

,

shipeng huang:

1、将28377s的can_ex4_simple_transmit原程序移植进280049C中完全没有改动。我手里有28377卡发版也试过can_ex4_simple_transmit这个程序了同样的效果。

2、与USBCAN接线图片

3、USBCAN的界面状况完全收不到消息,如果能收到消息上图中的绿灯会闪烁。

,

shipeng huang:

USBCAN与280049开发板连接,USBCAN进行环回测试是可以收到数据的,但是给DSP发数据DSP收不到。DSP发数据USBCAN也收不到。

,

Susan Yang:

shipeng huang 说:与USBCAN接线图片

GND没有连接?

,

shipeng huang:

是的没接GND,有影响?

,

shipeng huang:

我的这个USBCAN跟280049连接不上怎么办呢?

我之前看到一篇帖子跟我的差不多了,但是最后不了了之了。我的这个一定要解决掉,我在等着做课题呢。麻烦一定要给一个方案解决的

,

Susan Yang:

shipeng huang 说:将28377s的can_ex4_simple_transmit原程序移植进280049C中完全没有改动

还是需要更改CAN的引脚的,两者开发板的CANTX/CANRX引脚是不同的

28377S:

您需要根据您的l280049 launchpad版本来查找原理图中的CAN引脚

,

shipeng huang:

哪我用28377S的板卡也不好用啊,怎么办呢?我手里2块280049和一块28377S和串口连接都不好用啊。怎么办?

,

Susan Yang:

另外使用launchpad的话需要添加预编译

无论哪个launchpad,您都需要根据开发板原理图来查看CAN引脚并在例程中进行确认、修改

,

Susan Yang:

下面是我用28379D launchpad接收 USB-CAN分析仪发送数据的截图,可以成功进入接收

,

shipeng huang:

您好:您这个是2块板卡跑到收发么?然后成功的收发到了是么?

,

Susan Yang:

我这个是USB-CAN的上位机发送数据给28379D launchpad,28379D launchpad可以成功进入接收函数

接收到的,就是USB-CAN的上位机发送的数据

,

shipeng huang:

您是直接接的CANL和CANH引脚这么做的是吧?

,

Susan Yang:

我查看了手边的USB-CAN,接线是直接接的CANL和CANH引脚,也接了地线

您需要查看您USB-CAN的相关文档来确认接线

,

shipeng huang:

好吧,你这边成功了我要看一下自己的到底是是么问题。您的程序也是官方的没有改动的是吧?

,

Susan Yang:

如之前所说,需要根据您实际开发板的版本对照原理图来修改例程内的CAN引脚,其他没有改动

,

shipeng huang:

非常感谢您的帮助,我在找一下问题所在!

,

Susan Yang:

不客气,期待您的反馈

,

shipeng huang:

你好可以上传一张你的USBCAN的型号或照片么。我准备在买一个USBCAN,不知道是谁的问题了。

,

Susan Yang:

我的也是很古老的型号了,建议您买一下比较流行的大众款就好了

建议您阅读一下您现在USBCAN的说明书,是否有需要特殊配置的地方

,

shipeng huang:

USBCAN在发送数据状态我测量canl和canh与没有发送数据状态电压一样是不是不对呢?

,

shipeng huang:

你好麻烦你问一下,GPIO_70_CANRXA;GPIO_71_CANTXA的复用是怎么弄的啊。不会用啊,可以麻烦把您的那个程序如何配置发给我么?发到邮箱就可以了。谢谢了不知道您是用的库函数么?

,

Susan Yang:

shipeng huang 说:可以麻烦把您的那个程序如何配置发给我么?

这个在文档内有说明的 https://www.ti.com.cn/cn/lit/an/sprace5a/sprace5a.pdf  

在我28379D的程序中

// // Configure GPIO pins for CANTX/CANRX // GPIO_setPinConfig(DEVICE_GPIO_CFG_CANRXB); GPIO_setPinConfig(DEVICE_GPIO_CFG_CANTXB);

根据原理图使用的是

在device.h内修改语句

#define DEVICE_GPIO_CFG_CANRXB GPIO_17_CANRXB // "pinConfig" for CANB RX#define DEVICE_GPIO_CFG_CANTXB GPIO_12_CANTXB // "pinConfig" for CANB TX

,

shipeng huang:

您好由于我用的是28377S

我看了一下程序里关与这个引脚的定义是复用的,由于之前用的是ADI。现在刚转用TI,所以不太懂你们这个复用引脚该如何定义和调用。

,

Susan Yang:

shipeng huang 说:我看了一下程序里关与这个引脚的定义是复用的

请给出代码。例程内是没有被复用的

,

shipeng huang:

麻烦你看一下:

#define GPIO_70_GPIO70 0x00860C00U#define GPIO_70_EM1D14 0x00860C02U#define GPIO_70_EMU0 0x00860C03U#define GPIO_70_CANRXA 0x00860C05U#define GPIO_70_SCITXDB 0x00860C06U#define GPIO_70_SPISOMIC 0x00860C0FU

#define GPIO_71_GPIO71 0x00860E00U#define GPIO_71_EM1D13 0x00860E02U#define GPIO_71_EMU1 0x00860E03U#define GPIO_71_CANTXA 0x00860E05U#define GPIO_71_SCIRXDB 0x00860E06U#define GPIO_71_SPICLKC 0x00860E0FU

,

Susan Yang:

这个只是给出了定义,您可以看一下device.h内的定义

//#############################################################################
//
// FILE:device.h
//
// TITLE:Device setup for examples.
//
//#############################################################################
// $TI Release: F2837xD Support Library v3.11.00.00 $
// $Release Date: Sun Oct4 15:55:24 IST 2020 $
// $Copyright:
// Copyright (C) 2013-2020 Texas Instruments Incorporated - http://www.ti.com/
//
// Redistribution and use in source and binary forms, with or without// modification, are permitted provided that the following conditions// are met:
////Redistributions of source code must retain the above copyright//notice, this list of conditions and the following disclaimer.
////Redistributions in binary form must reproduce the above copyright
//notice, this list of conditions and the following disclaimer in the//documentation and/or other materials provided with the//distribution.
////Neither the name of Texas Instruments Incorporated nor the names of
//its contributors may be used to endorse or promote products derived
//from this software without specific prior written permission.
//// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// $
//#############################################################################//
// Included Files
//
#include "driverlib.h"#if (!defined(CPU1) && !defined(CPU2))
#error "You must define CPU1 or CPU2 in your project properties.Otherwise, \
the offsets in your header files will be inaccurate."
#endif#if (defined(CPU1) && defined(CPU2))
#error "You have defined both CPU1 and CPU2 in your project properties.Only \
a single CPU should be defined."
#endif//*****************************************************************************
//
// Defines for pin numbers and other GPIO configuration
//
//*****************************************************************************
//
// LEDs
//
#ifdef _LAUNCHXL_F28379D
#define DEVICE_GPIO_PIN_LED131U// GPIO number for LD10
#define DEVICE_GPIO_PIN_LED234U// GPIO number for LD9
#define DEVICE_GPIO_CFG_LED1GPIO_31_GPIO31// "pinConfig" for LD10
#define DEVICE_GPIO_CFG_LED2GPIO_34_GPIO34// "pinConfig" for LD9
#else
#define DEVICE_GPIO_PIN_LED131U// GPIO number for LD2
#define DEVICE_GPIO_PIN_LED234U// GPIO number for LD3
#define DEVICE_GPIO_CFG_LED1GPIO_31_GPIO31// "pinConfig" for LD2
#define DEVICE_GPIO_CFG_LED2GPIO_34_GPIO34// "pinConfig" for LD3
#endif//
// SCI for USB-to-UART adapter on FTDI chip
//
#ifdef _LAUNCHXL_F28379D
#define DEVICE_GPIO_PIN_SCIRXDA43U// GPIO number for SCI RX
#define DEVICE_GPIO_PIN_SCITXDA42U// GPIO number for SCI TX
#define DEVICE_GPIO_CFG_SCIRXDAGPIO_43_SCIRXDA // "pinConfig" for SCI RX
#define DEVICE_GPIO_CFG_SCITXDAGPIO_42_SCITXDA // "pinConfig" for SCI TX
#else
#define DEVICE_GPIO_PIN_SCIRXDA28U// GPIO number for SCI RX
#define DEVICE_GPIO_PIN_SCITXDA29U// GPIO number for SCI TX
#define DEVICE_GPIO_CFG_SCIRXDAGPIO_28_SCIRXDA // "pinConfig" for SCI RX
#define DEVICE_GPIO_CFG_SCITXDAGPIO_29_SCITXDA // "pinConfig" for SCI TX
#endif//
// CANA
//
#define DEVICE_GPIO_PIN_CANTXA31U// GPIO number for CANTXA
#define DEVICE_GPIO_PIN_CANRXA30U// GPIO number for CANRXA//
// CAN External Loopback
//
#define DEVICE_GPIO_CFG_CANRXAGPIO_30_CANRXA// "pinConfig" for CANA RX
#define DEVICE_GPIO_CFG_CANTXAGPIO_31_CANTXA// "pinConfig" for CANA TX
#define DEVICE_GPIO_CFG_CANRXBGPIO_17_CANRXB// "pinConfig" for CANB RX
#define DEVICE_GPIO_CFG_CANTXBGPIO_12_CANTXB// "pinConfig" for CANB TX//*****************************************************************************
//
// Defines related to clock configuration
//
//*****************************************************************************
//
// Launchpad Configuration
//
#ifdef _LAUNCHXL_F28379D//
// 10MHz XTAL on LaunchPad. For use with SysCtl_getClock().
//
#define DEVICE_OSCSRC_FREQ10000000U//
// Define to pass to SysCtl_setClock(). Will configure the clock as follows:
// PLLSYSCLK = 10MHz (XTAL_OSC) * 40 (IMULT) * 1 (FMULT) / 2 (PLLCLK_BY_2)
//
#define DEVICE_SETCLOCK_CFG(SYSCTL_OSCSRC_XTAL | SYSCTL_IMULT(40) |\SYSCTL_FMULT_NONE | SYSCTL_SYSDIV(2) |\SYSCTL_PLL_ENABLE)//
// 200MHz SYSCLK frequency based on the above DEVICE_SETCLOCK_CFG. Update the
// code below if a different clock configuration is used!
//
#define DEVICE_SYSCLK_FREQ((DEVICE_OSCSRC_FREQ * 40 * 1) / 2)//
// ControlCARD Configuration
//
#else//
// 20MHz XTAL on controlCARD. For use with SysCtl_getClock().
//
#define DEVICE_OSCSRC_FREQ20000000U//
// Define to pass to SysCtl_setClock(). Will configure the clock as follows:
// PLLSYSCLK = 20MHz (XTAL_OSC) * 20 (IMULT) * 1 (FMULT) / 2 (PLLCLK_BY_2)
//
#define DEVICE_SETCLOCK_CFG(SYSCTL_OSCSRC_XTAL | SYSCTL_IMULT(20) |\SYSCTL_FMULT_NONE | SYSCTL_SYSDIV(2) |\SYSCTL_PLL_ENABLE)//
// 200MHz SYSCLK frequency based on the above DEVICE_SETCLOCK_CFG. Update the
// code below if a different clock configuration is used!
//
#define DEVICE_SYSCLK_FREQ((DEVICE_OSCSRC_FREQ * 20 * 1) / 2)#endif//
// 50MHz LSPCLK frequency based on the above DEVICE_SYSCLK_FREQ and a default
// low speed peripheral clock divider of 4. Update the code below if a
// different LSPCLK divider is used!
//
#define DEVICE_LSPCLK_FREQ(DEVICE_SYSCLK_FREQ / 4)//*****************************************************************************
//
// Macro to call SysCtl_delay() to achieve a delay in microseconds. The macro
// will convert the desired delay in microseconds to the count value expected
// by the function. \b x is the number of microseconds to delay.
//
//*****************************************************************************
#define DEVICE_DELAY_US(x) SysCtl_delay(((((long double)(x)) / (1000000.0L /\(long double)DEVICE_SYSCLK_FREQ)) - 9.0L) / 5.0L)//
// The macros that can be used as parameter to the function Device_bootCPU2
//
#define C1C2_BROM_BOOTMODE_BOOT_FROM_PARALLEL0x00000000U
#define C1C2_BROM_BOOTMODE_BOOT_FROM_SCI0x00000001U
#define C1C2_BROM_BOOTMODE_BOOT_FROM_SPI0x00000004U
#define C1C2_BROM_BOOTMODE_BOOT_FROM_I2C0x00000005U
#define C1C2_BROM_BOOTMODE_BOOT_FROM_CAN0x00000007U
#define C1C2_BROM_BOOTMODE_BOOT_FROM_RAM0x0000000AU
#define C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH0x0000000BU//
// Other macros that are needed for the Device_bootCPU2 function
//
#define BROM_IPC_EXECUTE_BOOTMODE_CMD0x00000013U
#define C1C2_BROM_BOOTMODE_BOOT_COMMAND_MAX_SUPPORT_VALUE0x0000000CU
#define C2_BOOTROM_BOOTSTS_C2TOC1_IGNORE0x00000000U
#define C2_BOOTROM_BOOTSTS_SYSTEM_START_BOOT0x00000001U
#define C2_BOOTROM_BOOTSTS_SYSTEM_READY0x00000002U
#define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_ACK0x00000003U
#define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_NAK_STATUS_NOT_SUPPORTED0x00000004U
#define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_NAK_STATUS_BUSY_WITH_BOOT 0x00000005U//
// Macros used as return value by the Device_bootCPU2 function
//
#define STATUS_FAIL0x0001
#define STATUS_PASS0x0000//*****************************************************************************
//
// Defines, Globals, and Header Includes related to Flash Support
//
//*****************************************************************************
#ifdef _FLASH
#include <stddef.h>extern uint16_t RamfuncsLoadStart;
extern uint16_t RamfuncsLoadEnd;
extern uint16_t RamfuncsLoadSize;
extern uint16_t RamfuncsRunStart;
extern uint16_t RamfuncsRunEnd;
extern uint16_t RamfuncsRunSize;#define DEVICE_FLASH_WAITSTATES 3#endifextern uint32_t Example_PassCount;
extern uint32_t Example_Fail;//*****************************************************************************
//
// Function Prototypes
//
//*****************************************************************************
extern void Device_init(void);
extern void Device_enableAllPeripherals(void);
extern void Device_initGPIO(void);
extern void Device_enableUnbondedGPIOPullupsFor176Pin(void);
extern void Device_enableUnbondedGPIOPullupsFor100Pin(void);
extern void Device_enableUnbondedGPIOPullups(void);
#ifdef CPU1
extern void Device_configureTMXAnalogTrim(void);
extern uint16_t Device_bootCPU2(uint32_t ulBootMode);
#endif
extern void __error__(char *filename, uint32_t line);
extern void Example_setResultPass(void);
extern void Example_setResultFail(void);
extern void Example_done(void);//
// End of file
//

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049C: 接口问题
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1