Quantcast
Channel: Hercules™︎ 安全微控制器论坛 - 最近的话题
Viewing all 775 articles
Browse latest View live

RM46L852芯片的SCI通信

$
0
0

请问那个知道SCI通信设置地址位模式呢?我在使用HCG软件中没有看到,是我忽略了?


RM44L552 HET1N19管脚电平无法检测

$
0
0

现在公司用RM44L552做了一个电机控制器,使用HET1N19这个管脚来产生中断。使用Hercules Code Generator生成项目代码。现在问题是当管脚接高电平以后,调用读管脚电平的接口,发现电平value还是0。并且无法产生中断。而HET1N15、HET1N24、HET1N26这几个管脚都没有问题。

还请有相关经验的前辈能给些指导,谢谢!

DRV8323一个引脚可以驱动两个csd19532mos管吗

$
0
0

mos管最高25mA,DRV驱动能力够吗?

RM48L952和XRM48952的区别

$
0
0

1.RM48L952和XRM48952的区别是什么,

2.XRM48952是否可以下单

如下图是命名规则,我不明白为什么不合格的也有料号,这个可以下单吗

Tms570不加电,电压倒灌

$
0
0

两片TMS570,一片做冷备不加电,两片的Can通信口通过各自的TJa1040后直接连在了一起,与外部通信。现在加电工作的570的Can线上的电压返回到了不加电的570上,测量其MIBSPI口有1V左右电压输出,请问如何解决

bootloader不能进入主函数,跳到异常中断

$
0
0

这是ti的bootloader的例程,在CCS调试时,发现其不会进入main函数,会跳到异常中断,也就是ARM的未定义指令模式。检查过cmd文件的地址分配,也试过改动,应该不是这里的问题。在startup文件的_c_int00初始化函数里设置断点,发现程序似乎也未运行到这里。请问这会是什么原因导致的?找了好几天,不知道问题出在哪里

我要将 N2HET1[21] 配置成一个普通的IO,怎样驱动这个IO的输出。

$
0
0

我要将 N2HET1[21] 配置成一个普通的IO,驱动一个LED,用哪个函数驱动这个IO?

谢谢

TMS570的PWM输入捕获无法识别断路故障

$
0
0

大家好!我在用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设计说明书

$
0
0

看各位都在研究TMS570的Bootloader程序,分享一下本人在TMS570的Boot设计文档。

1.1      Flash地址分配

TMS570系列Flash地址从0x00000000开始,从地址其实开始必须先存放系统生成的intvecs函数。RAM地址从0x08000000开始具体的RAMFlash大小根据不同芯片类型确定。一下分配地址以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操作的都需要将代码CopyRAM中执行,需要在一下位置进行修改。

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.cxx.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

$
0
0

请教两个问题:

1、spnu118t 中图3-1 说到在上电之后,进入c_int00之前,有一个on chip bootloader,那么对于tms570ls3137而言,是否有这个片上启动?

有的话,他做了哪些事情?

2、编译生成的.map文件中,.bss  .data是直接分配到了ram,这一点怎么理解?

    下载out文件的时候是只写flash吧?但是这两个段在flash中没有分配啊!

    猜测是从flash中拷贝到ram中,那么是什么时候拷的呢?

tms470r1b1m的flash读写操作

$
0
0

我现在用tms470r1b1m这款单片机,打算实现把串口接收到的数据写入flash再读取出来,官方技术人员可以给找一份例程吗?裸机,iar编译,谢谢。

tms470mf04207 Bootloader Flash擦除不成功

$
0
0

4207只能使用 F035API么? 

执行代码为

Erase_flag = Flash_Erase_Sector_B((UINT32*)START_ADDRESS,4,FLASH_CORE0,FLASH_SECT4,40,(FLASH_ARRAY_ST)FLASH_CONTROL_REGISTER_ADDRESS);

START_ADDRESS = 0x20000 

要擦除bank0 的Sector4 ,大小随便写的 

FLASH_CONTROL_REGISTER_ADDRESS = 0xFFF87000

执行这行代码后flash内存就全部刷成乱码了 如图

代码如下 ,能否看看是哪出现问题?

bootloader中如何设置,在断电重启后直接进入app?(tms570HDK)

$
0
0

大家好,请教一下:

如题,在BootLoader中,如果需要跳转到app,则通过一个软件复位,这样通过判断SYSESR可以进入APP。

那么在断电重启之后呢,怎么设置一个标志,判断一下,然后进入APP。

请高人支招,先谢谢啦!


另外还有一个问题,app中如何设置调回BootLoader呢,因为boot到App是用的软复位,app再到boot 还用的话就会死循环了,又进入app。

这个互相跳转一般都是怎么做的啊?

谢谢!

tms470MF04207 bootloader 后 跳转到0x10000 报Usage_Fault(),是何问题?

$
0
0

我用tms470MF04207  boot程序在bank1中sector0中,把app写入了bank0中的sector3(0x10000)中

用((void(*)(void))App_start_Address)();执行跳转,后报Usage_Fault()

请问 我是否有什么地方设置不对,还是哪的问题? 

我自己写的项目,直接用的F035的API。 只用了擦除和写入。

tms470mf04207 bootloader cmd与intvecs 如何设置

$
0
0

我用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读写操作

$
0
0

请问是否有SM470r1b1m的flash读写操作例程或是相关参考资料?谢谢!

申请TMS470的开发工具及代码生成工具

$
0
0

你好!

之前量产的项目有使用TI 的TMS470,现需要需要新建工程,以及使用SDK环境,请帮我们提供一下TMS470开发需要的开发环境和代码生成工具,谢谢

F05Flash的API函数

$
0
0

请问F05Flash的API函数(F05a.A)是否可以在IAR开发环境中直接调用呢?谢谢!

launchPad TMS570ls12x 的SCI始终无输出

$
0
0

硬件平台: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有什么需要特别注意的地方么?

请问CCS7.4不支持GCC么?在language options 中找不到 Enable support for GCC extensions 选项

$
0
0

大家好,我是在做tms570ls1224 芯片freertos移植的时候发现这个问题,我参照HALCoGen软件的帮助文档一步一步的操作

但是到 Enable support for GCC extensions 这个选项的时候始终无法找到该选项,请问我该如何处理这个情况是需要重新装CCS么?

我的CCS版本为7.4

按照图中帮助文档的路径,我的CCS显示出来的下图这样的

Viewing all 775 articles
Browse latest View live