[原创] 英飞凌电机套件 EVAL-IMOTION2GO 学习笔记五

我的学号   2023-2-20 00:32 楼主

上一份笔记对 T038 的UART模式和软件编程做了介绍,但在准备动手时却发现一个问题:

T038 上有 RX0/TX0 和 RX1/TX1 两对串口,其中 TX0/RX0 已用于和PC 通信的调试器

TX1/RX1 则仅有测试点引出,若要验证UART 功能,需要上烙铁飞线

 

image.png  

为与手上的 USB 转串口工具连接,用杜邦线飞出 T038 上的PIN19(TX1), PIN20(RX1),PIN25(VSS) 和PIN(VDD)信号,如下所示

image.png

模块接上PC ,按之前的教程,编写如下代码调试

#SET SCRIPT_USER_VERSION (1.00) /*Script version value should be 255.255*/
#SET SCRIPT_TASK0_EXECUTION_PERIOD (100) /*Script execution time for Task0 in mS, maximum value 65535*/
#SET SCRIPT_TASK1_EXECUTION_PERIOD (1) /*Script execution time for Task1 in 10mS, maximum value 65535*/
#SET SCRIPT_START_COMMAND (0x3) /* Start command, Task0 : Bit0, Task1 : Bit1; if bit is set, script executes after init */
#SET SCRIPT_TASK0_EXECUTION_STEP (1) /* Script Task0 step, This defines number of lines to be executed every 1mS*/
#SET SCRIPT_TASK1_EXECUTION_STEP (200) /* Script Task1 step, This defines number of lines to be executed every 10mS*/
/*********************************************************************************************************************/
int sVar0;
/*********************************************************************************************************************/
/*Task0 init function*/
Script_Task0_init()
{
sVar0=0;
}
/******************************************************************************************************************/
/*Task0 script function*/
Script_Task0()
{
sVar0 = sVar0+1;
if(sVar0<10)
{
GPIO7_OUT =0;
}
if((sVar0>10)&&(sVar0<20))
{
GPIO7_OUT =1;
}
if(sVar0>20)
{
sVar0 =0;
}
}
/******************************************************************************************************************/
/*Task1 init function*/
Script_Task1_init()
{
UART_DriverInit(1,0,0,115200,8,0,1);
UART_BufferInit(0,3,0,0,0xA5,0x5A,8,8);
}
/******************************************************************************************************************/
/*Task1 init function*/
Script_Task1()
{
const int START_TX_BYTE =0x5A;
const int LOW_BYTE_MASK =0xFF;
int checksum_rx;
int checksum_tx;
int status;
if(status & 0x0100)
{
checksum_rx =(-(0xA5 +UART_RxBuffer(0)+UART_RxBuffer(1)+UART_RxBuffer(2)))&0xFF;
if(checksum_rx ==UART_RxBuffer(3))
{
if(UART_RxBuffer(0) ==1)
{
TargetSpeed =UART_RxBuffer(1) |(UART_RxBuffer(2)<<8);
Command =1;
PFC_Command =1;
checksum_tx =(-(START_TX_BYTE+(TargetSpeed>>8)+(TargetSpeed&LOW_BYTE_MASK)+(Command&LOW_BYTE_MASK)+(PFC_Command&LOW_BYTE_MASK)))&LOW_BYTE_MASK;
UART_TxBuffer(0,TargetSpeed>>8);
UART_TxBuffer(1,TargetSpeed & LOW_BYTE_MASK);
UART_TxBuffer(2,Command & LOW_BYTE_MASK);
UART_TxBuffer(3,PFC_Command & LOW_BYTE_MASK);
UART_TxBuffer(4,0x00);
UART_TxBuffer(5,0x00);
UART_TxBuffer(6,0x00);
UART_TxBuffer(7,checksum_tx);
}
if(UART_RxBuffer(0) ==2)
{
Command =0;
PFC_Command =0;
TargetSpeed =MinSpd;
checksum_tx = (-(START_TX_BYTE + (TargetSpeed>>8)+(TargetSpeed&LOW_BYTE_MASK) +(Command&LOW_BYTE_MASK) +(PFC_Command&LOW_BYTE_MASK))) & LOW_BYTE_MASK;
UART_TxBuffer(0,TargetSpeed>>8);
UART_TxBuffer(1,TargetSpeed & LOW_BYTE_MASK);
UART_TxBuffer(2,Command & LOW_BYTE_MASK);
UART_TxBuffer(3,PFC_Command & LOW_BYTE_MASK);
UART_TxBuffer(4,0x00);
UART_TxBuffer(5,0x00);
UART_TxBuffer(6,0x00);
UART_TxBuffer(7,checksum_tx);
}
if(UART_RxBuffer(0) ==3)
{
checksum_tx = (-(START_TX_BYTE + (TargetSpeed>>8)+(TargetSpeed&LOW_BYTE_MASK) +(Command&LOW_BYTE_MASK) +(PFC_Command&LOW_BYTE_MASK))) & LOW_BYTE_MASK;
UART_TxBuffer(0,TargetSpeed>>8);
UART_TxBuffer(1,TargetSpeed & LOW_BYTE_MASK);
UART_TxBuffer(2,Command & LOW_BYTE_MASK);
UART_TxBuffer(3,PFC_Command & LOW_BYTE_MASK);
UART_TxBuffer(4,0x00);
UART_TxBuffer(5,0x00);
UART_TxBuffer(6,0x00);
UART_TxBuffer(7,checksum_tx);
}
}
else
{
UART_TxBuffer(0,checksum_tx);
UART_TxBuffer(1,0xEE);
UART_TxBuffer(2,0xEE);
UART_TxBuffer(3,checksum_tx);
UART_TxBuffer(4,0x00);
UART_TxBuffer(5,0x00);
UART_TxBuffer(6,0x00);
UART_TxBuffer(7,0x00);
}
UART_Control(0x0500);
}
}

按照代码内容,通过上位机选择通信串口,选择 115200 的通信波特率,写入特定数据开发板将返回对应信息;实际串口只显示数据发送而没有数据接收

没能找到实时查询寄存器内容的地方,具体在哪里调试以及如何调试,还需要再找多些资料补充

 

本帖最后由 我的学号 于 2023-2-20 00:31 编辑
君应有语,渺万里层云,千山暮雪,知向谁边?

回复评论 (2)

动手能力真强呀!为什么不整个针或者测试夹呀。
点赞  2023-2-20 07:33

转起来转起来,就想看转起来。

默认摸鱼,再摸鱼。2022、9、28
点赞  2023-3-21 10:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复