请问那个知道SCI通信设置地址位模式呢?我在使用HCG软件中没有看到,是我忽略了?
RM46L852芯片的SCI通信
RM44L552 HET1N19管脚电平无法检测
现在公司用RM44L552做了一个电机控制器,使用HET1N19这个管脚来产生中断。使用Hercules Code Generator生成项目代码。现在问题是当管脚接高电平以后,调用读管脚电平的接口,发现电平value还是0。并且无法产生中断。而HET1N15、HET1N24、HET1N26这几个管脚都没有问题。
还请有相关经验的前辈能给些指导,谢谢!
DRV8323一个引脚可以驱动两个csd19532mos管吗
mos管最高25mA,DRV驱动能力够吗?
RM48L952和XRM48952的区别
Tms570不加电,电压倒灌
两片TMS570,一片做冷备不加电,两片的Can通信口通过各自的TJa1040后直接连在了一起,与外部通信。现在加电工作的570的Can线上的电压返回到了不加电的570上,测量其MIBSPI口有1V左右电压输出,请问如何解决
bootloader不能进入主函数,跳到异常中断
我要将 N2HET1[21] 配置成一个普通的IO,怎样驱动这个IO的输出。
我要将 N2HET1[21] 配置成一个普通的IO,驱动一个LED,用哪个函数驱动这个IO?
谢谢
TMS570的PWM输入捕获无法识别断路故障
大家好!我在用HalCoGen里配置TMS570的PWM输入捕获功能,调用void capGetSignal(hetRAMBASE_t * hetRAM, uint32 cap, hetSIGNAL_t *signal)获取捕获的周期的占空比,调节输入信号的周期和占空比,可以实现准确测量。当断开输入的PWM时,发现调用void capGetSignal(hetRAMBASE_t * hetRAM, uint32 cap, hetSIGNAL_t *signal)得到得的值还是断开前的数值,请问软件上怎样做可以检测这种断线故障?
基于TMS570平台Bootloader设计说明书
看各位都在研究TMS570的Bootloader程序,分享一下本人在TMS570的Boot设计文档。
1.1 Flash地址分配
TMS570系列Flash地址从0x00000000开始,从地址其实开始必须先存放系统生成的intvecs函数。RAM地址从0x08000000开始具体的RAM和Flash大小根据不同芯片类型确定。一下分配地址以TMS570LS0232为例。
Bootloader使用:
VECTORS (X) : origin=0x00000000 length=0x00000020
BOOT_LOAD (RX) : origin=0x00000020 length=0x00001200
FLASH_API (RX) : origin=0x00001220 length=0x00001200
FLASH0 (RX) : origin=0x00002420 length=0x00005BE0
SRAM (RW) : origin=0x08002000 length=0x00005E00
STACK (RW) : origin=0x08000000 length=0x00001FF0
APP使用:
VECTORS (X) : origin=0x00008000 length=0x00000020
FLASH0 (RX) : origin=0x00008020 length=0x00017FE0
STACKS (RW) : origin=0x08000000 length=0x00001500
RAM (RW) : origin=0x08001500 length=0x00006B00
1.2 跳转命令
Bootloader跳转到APP指令:
g_ulTransferAddress = (uint32_t)APP_START_ADDRESS;
((void (*)(void))g_ulTransferAddress)();
APP跳转到Bootloader指令:
g_ulTransferAddress = (uint32_t)BOOT_START_ADDRESS;
((void (*)(void))g_ulTransferAddress)();
1.3 相关说明
由于TMS570芯片对于Flash操作不能同时读写,所以有关对Flash操作的都需要将代码Copy到RAM中执行,需要在一下位置进行修改。
1. 在CMD文件中把相应的代码指定放入相应的区域,代码如下;
2. 在工程中的sys_core.asm文件中加入Copy功能函数
3. 需要在.h中声明该Copy函数。并在启动代码中调用执行。
1.1 Bootloader软件流程
1.1 App软件流程
1.2 APP程序集成Boot步骤:
1. 修改CMD文件,修改方法如2.1所示。
2. 添加文件xx.c和xx.h文件到工程。
3. 工程目录添加F021驱动文件夹\F021 Flash API\02.01.01\include。
4. 工程目录添加F021_API_CortexR4_BE.lib路径及其Lib文件。
6. 集成Bootloader APP软件,在CAN驱动中增加接收扩展帧MessegeBox。
7. CAN接收中断,引用xx.h。
8. 在sys_startup.c文件中屏蔽以下内容:
9. CCS编译生成Hex文件,需要如下设置:
tms570 on chip bootloader
请教两个问题:
1、spnu118t 中图3-1 说到在上电之后,进入c_int00之前,有一个on chip bootloader,那么对于tms570ls3137而言,是否有这个片上启动?
有的话,他做了哪些事情?
2、编译生成的.map文件中,.bss .data是直接分配到了ram,这一点怎么理解?
下载out文件的时候是只写flash吧?但是这两个段在flash中没有分配啊!
猜测是从flash中拷贝到ram中,那么是什么时候拷的呢?
tms470r1b1m的flash读写操作
我现在用tms470r1b1m这款单片机,打算实现把串口接收到的数据写入flash再读取出来,官方技术人员可以给找一份例程吗?裸机,iar编译,谢谢。
tms470mf04207 Bootloader Flash擦除不成功
bootloader中如何设置,在断电重启后直接进入app?(tms570HDK)
大家好,请教一下:
如题,在BootLoader中,如果需要跳转到app,则通过一个软件复位,这样通过判断SYSESR可以进入APP。
那么在断电重启之后呢,怎么设置一个标志,判断一下,然后进入APP。
请高人支招,先谢谢啦!
另外还有一个问题,app中如何设置调回BootLoader呢,因为boot到App是用的软复位,app再到boot 还用的话就会死循环了,又进入app。
这个互相跳转一般都是怎么做的啊?
谢谢!
tms470MF04207 bootloader 后 跳转到0x10000 报Usage_Fault(),是何问题?
我用tms470MF04207 boot程序在bank1中sector0中,把app写入了bank0中的sector3(0x10000)中
用((void(*)(void))App_start_Address)();执行跳转,后报Usage_Fault()
请问 我是否有什么地方设置不对,还是哪的问题?
我自己写的项目,直接用的F035的API。 只用了擦除和写入。
tms470mf04207 bootloader cmd与intvecs 如何设置
我用4207 编写的bootloader程序
bootloader程序VECTORS放在了0x0到0x100里 执行程序放在了bank1的0x80000 开头了
主程序VECTORS放在了0x10000到0x10100中,程序放在了0x10100开头
两个工程的CMD修改了,但是两个程序的sys_intvecs.asm没有修改
现在boot完能够跳转到绝对地址0x10000,但跑起来就会进入_Usage_Fault()中
请问两个程序的sys_intvecs.asm需要配置么,该如何配置?
SM470r1b1m的flash读写操作
请问是否有SM470r1b1m的flash读写操作例程或是相关参考资料?谢谢!
申请TMS470的开发工具及代码生成工具
你好!
之前量产的项目有使用TI 的TMS470,现需要需要新建工程,以及使用SDK环境,请帮我们提供一下TMS470开发需要的开发环境和代码生成工具,谢谢
F05Flash的API函数
请问F05Flash的API函数(F05a.A)是否可以在IAR开发环境中直接调用呢?谢谢!
launchPad TMS570ls12x 的SCI始终无输出
硬件平台:launchPad TMS570ls12x
软件:我是按照HAL code generator 的帮助文档中的教程操作的,结果成功了,串口功能使用正常,但是该教程是针对SCI2的,
如图一:
所以我照葫芦画瓢,重新新建了CCS工程,以及使用HAL code generator 使能了SCI,
如图二
main.c代码如下
/* USER CODE BEGIN (0) */
/* USER CODE END */
/* Include Files */
#include "sys_common.h"
/* USER CODE BEGIN (1) */
#include "gio.h"
#include "reg_sci.h"
#include "sci.h"
#define TSIZE1 10
uint8 TEXT1[TSIZE1]= {'H','E','R','C','U','L','E','S',' ',' '};
#define TSIZE2 18
uint8 TEXT2[TSIZE2]= {'M','I','C','R','O','C','O','N','T','R','O','L','L','E','R','S',' ',' '};
#define TSIZE3 19
uint8 TEXT3[TSIZE3]= {'T','E','X','A','S',' ','I','N','S','T','R','U','M','E','N','T','S','\n','\r'};
void sciDisplayText(sciBASE_t *sci, uint8 *text, uint32 length);
void wait(uint32 time);
#define UART sciREG
/* USER CODE END */
/** @fn void main(void)
* @brief Application main function
* @note This function is empty by default.
*
* This function is called after startup.
* The user can use this function to implement the application.
*/
/* USER CODE BEGIN (2) */
void wait(uint32 time);
/* USER CODE END */
int main(void)
{
/* USER CODE BEGIN (3) */
gioInit();
sciInit();
while(1)
{
sciDisplayText(UART,&TEXT1[0],TSIZE1); /* send text code 1 */
sciDisplayText(UART,&TEXT2[0],TSIZE2); /* send text code 2 */
sciDisplayText(UART,&TEXT3[0],TSIZE3); /* send text code 3 */
gioToggleBit(gioPORTB, 1);
gioToggleBit(gioPORTB, 2);
wait(5000000);
}
/* USER CODE END */
return 0;
}
/* USER CODE BEGIN (4) */
void sciDisplayText(sciBASE_t *sci, uint8 *text,uint32 length)
{
while(length--)
{
while ((UART->FLR & 0x4) == 4); /* wait until busy */
sciSendByte(UART,*text++); /* send out text */
};
}
void wait(uint32 time)
{
while(time)
{
time--;
}
}
/* USER CODE END */
然后生成了代码,并在main函数中参照SCI2修改了相应的代码.但是用示波器测量SCITX端口发现始终为低电平,没有任何数据信号.
请教一下大家,SCI的使用跟SCI2有什么需要特别注意的地方么?