This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
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发送信号示波器是可以采集到的,麻烦给我解决一下吧这个问题已经纠结了几天了。反复的问也没得到较好的解决。
辛苦了!
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?
不知您使用的是哪个版本的launchpad?我手边这个是MCU025A,原理图如下
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
使用can_ex4_simple_transmit发送数据卡在 while(((HWREGH(CANA_BASE + CAN_O_ES) & CAN_ES_TXOK)) != CAN_ES_TXOK),是没有接收么?
是没有发送成功,若是发送成功的话,CAN_ES_TXOK是会置1的
建议您检查下硬件配置。另外您是否确保 USB CAN 分析仪上的比特率设置为与 MCU 匹配?
1 请将您的开发板和USBCAN分析仪以及两者之间的连线拍照
2 对USBCAN分析仪软件的配置部分截图
3 说明一下您现在使用的例程以及是否有进行修改
我会在汇总给出的信息之后咨询下相关的同事
1、将28377s的can_ex4_simple_transmit原程序移植进280049C中完全没有改动。我手里有28377卡发版也试过can_ex4_simple_transmit这个程序了同样的效果。
2、与USBCAN接线图片
3、USBCAN的界面状况完全收不到消息,如果能收到消息上图中的绿灯会闪烁。
我的这个USBCAN跟280049连接不上怎么办呢?
我之前看到一篇帖子跟我的差不多了,但是最后不了了之了。我的这个一定要解决掉,我在等着做课题呢。麻烦一定要给一个方案解决的
将28377s的can_ex4_simple_transmit原程序移植进280049C中完全没有改动
还是需要更改CAN的引脚的,两者开发板的CANTX/CANRX引脚是不同的
28377S:
您需要根据您的l280049 launchpad版本来查找原理图中的CAN引脚
我这个是USB-CAN的上位机发送数据给28379D launchpad,28379D launchpad可以成功进入接收函数
接收到的,就是USB-CAN的上位机发送的数据
你好麻烦你问一下,GPIO_70_CANRXA;GPIO_71_CANTXA的复用是怎么弄的啊。不会用啊,可以麻烦把您的那个程序如何配置发给我么?发到邮箱就可以了。谢谢了不知道您是用的库函数么?
可以麻烦把您的那个程序如何配置发给我么?
这个在文档内有说明的 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
麻烦你看一下:
#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
这个只是给出了定义,您可以看一下device.h内的定义
//############################################################################# // // FILE: device.h // // TITLE: Device setup for examples. // //############################################################################# // $TI Release: F2837xD Support Library v3.11.00.00 $ // $Release Date: Sun Oct 4 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_LED1 31U // GPIO number for LD10 #define DEVICE_GPIO_PIN_LED2 34U // GPIO number for LD9 #define DEVICE_GPIO_CFG_LED1 GPIO_31_GPIO31 // "pinConfig" for LD10 #define DEVICE_GPIO_CFG_LED2 GPIO_34_GPIO34 // "pinConfig" for LD9 #else #define DEVICE_GPIO_PIN_LED1 31U // GPIO number for LD2 #define DEVICE_GPIO_PIN_LED2 34U // GPIO number for LD3 #define DEVICE_GPIO_CFG_LED1 GPIO_31_GPIO31 // "pinConfig" for LD2 #define DEVICE_GPIO_CFG_LED2 GPIO_34_GPIO34 // "pinConfig" for LD3 #endif // // SCI for USB-to-UART adapter on FTDI chip // #ifdef _LAUNCHXL_F28379D #define DEVICE_GPIO_PIN_SCIRXDA 43U // GPIO number for SCI RX #define DEVICE_GPIO_PIN_SCITXDA 42U // GPIO number for SCI TX #define DEVICE_GPIO_CFG_SCIRXDA GPIO_43_SCIRXDA // "pinConfig" for SCI RX #define DEVICE_GPIO_CFG_SCITXDA GPIO_42_SCITXDA // "pinConfig" for SCI TX #else #define DEVICE_GPIO_PIN_SCIRXDA 28U // GPIO number for SCI RX #define DEVICE_GPIO_PIN_SCITXDA 29U // GPIO number for SCI TX #define DEVICE_GPIO_CFG_SCIRXDA GPIO_28_SCIRXDA // "pinConfig" for SCI RX #define DEVICE_GPIO_CFG_SCITXDA GPIO_29_SCITXDA // "pinConfig" for SCI TX #endif // // CANA // #define DEVICE_GPIO_PIN_CANTXA 31U // GPIO number for CANTXA #define DEVICE_GPIO_PIN_CANRXA 30U // GPIO number for CANRXA // // CAN External Loopback // #define DEVICE_GPIO_CFG_CANRXA GPIO_30_CANRXA // "pinConfig" for CANA RX #define DEVICE_GPIO_CFG_CANTXA GPIO_31_CANTXA // "pinConfig" for CANA TX #define DEVICE_GPIO_CFG_CANRXB GPIO_17_CANRXB // "pinConfig" for CANB RX #define DEVICE_GPIO_CFG_CANTXB GPIO_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_FREQ 10000000U // // 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_FREQ 20000000U // // 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_PARALLEL 0x00000000U #define C1C2_BROM_BOOTMODE_BOOT_FROM_SCI 0x00000001U #define C1C2_BROM_BOOTMODE_BOOT_FROM_SPI 0x00000004U #define C1C2_BROM_BOOTMODE_BOOT_FROM_I2C 0x00000005U #define C1C2_BROM_BOOTMODE_BOOT_FROM_CAN 0x00000007U #define C1C2_BROM_BOOTMODE_BOOT_FROM_RAM 0x0000000AU #define C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH 0x0000000BU // // Other macros that are needed for the Device_bootCPU2 function // #define BROM_IPC_EXECUTE_BOOTMODE_CMD 0x00000013U #define C1C2_BROM_BOOTMODE_BOOT_COMMAND_MAX_SUPPORT_VALUE 0x0000000CU #define C2_BOOTROM_BOOTSTS_C2TOC1_IGNORE 0x00000000U #define C2_BOOTROM_BOOTSTS_SYSTEM_START_BOOT 0x00000001U #define C2_BOOTROM_BOOTSTS_SYSTEM_READY 0x00000002U #define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_ACK 0x00000003U #define C2_BOOTROM_BOOTSTS_C2TOC1_BOOT_CMD_NAK_STATUS_NOT_SUPPORTED 0x00000004U #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_FAIL 0x0001 #define STATUS_PASS 0x0000 //***************************************************************************** // // 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 #endif extern 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 //