想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
囧:
在motorware的以下目录有ECAN的寄存器定义和一些内联库函数C:\TI\motorware\motorware_1_01_00_16\sw\drivers\can\src\32b\f28x\f2806x
想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
ming chen3:
回复 囧:
该目录下只有can.h头文件,假如使用controlsuit中的历程,不同的编程风格是否支持。
想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
Kancheng Huang:
回复 ming chen3:
如果你看一下ControlSuit和Motorware里的can.h,会发现两边是一样的,Motorware只是照抄了ControlSuit而已,你直接参照ControlSuit的例程写一个can.c就好了。
想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
ming chen3:
回复 Kancheng Huang:
我使用controlduite中的can历程,
C:\ti\controlSUITE\device_support\f2806x\v150\F2806x_examples_ccsv5\ecan_back2back
在f2806x_ECan.c作如下修改:满足 90 MHz SYSCLKOUT,45 MHz CAN module clock Bit rate = 500 kbps
/* The following block is for 90 MHz SYSCLKOUT. (45 MHz CAN module clock Bit rate = 500 kbps See Note at end of file. */
ECanaShadow.CANBTC.bit.BRPREG = 4;//45M/5/(13+2+3)=500k ECanaShadow.CANBTC.bit.TSEG2REG = 2; ECanaShadow.CANBTC.bit.TSEG1REG = 13;
运行程序,死在
for(;;) {
ECanaRegs.CANTRS.all = 0x0000FFFF; // Set TRS for all transmit mailboxes while(ECanaRegs.CANTA.all != 0x0000FFFF ) {} // Wait for all TAn bits to be set..//程序死在这里 ECanaRegs.CANTA.all = 0x0000FFFF; // Clear all TAn MessageReceivedCount++;
这是什么原因,历程有问题吗?谢谢~
想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
Kancheng Huang:
回复 ming chen3:
你把CANBTC改到适应90Mhz,那实际上你的SYSCLK那一段代码也改了么? 你动过这个函数了么 InitSysCtrl();
想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
ming chen3:
回复 Kancheng Huang:
谢谢你的回答。是的,我在改了。10M*18/2 = 90M.
只改了这两个位置。
打开USB转CAN,程序运行没有数据刷新。
不知道问题出在哪里
想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
deping long:
回复 ming chen3:
您好,不好意思打扰了。最近我也在做往motorware的程序中添加CAN通信的内容,也遇到了相同的问题,不知道您当时是怎么解决的?
我将controlsuite中CAN通信例程中关于ECan模块的寄存器初始化、设置、位域结构定义文件(F2806x_GlobalVariableDefs.c,只保留CAN的部分), 寄存器内存分配的cmd文件(F2806x_Headers_nonBIOS.cmd,只保留Can的部分)都添加到lab20中,GIPO设置使用的是原来motorware中的hal.c文件。测试通信时也程序也是卡在确认发送成功这一部分。改成自测试模式后也是卡在发送确认部分。感觉是设置的寄存器值并没有生效。但又不知道是什么原因。
请问您当时是怎么解决的呢?谢谢了!
想在FAST例程中添加can通讯。。找不到eCan模块的库函数文件。只能找到controlsuite中的寄存器文件。
user1303469:
回复 deping long:
我想用28027 外加一个can模块,有参考吗?