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.
使用普通的闪灯程序例程可以点亮或闪烁LED灯,接在GPIO37脚上。C:\ti\controlSUITE\device_support\f2806x\v135\F2806x_examples\timed_led_blink
目前想利用proj_lab12a来识别转动惯量,但motorware_1_01_00_18里面提供的例程居然无法闪烁我的LED灯,不但无法闪烁,连点亮都无法成功。C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_motion\boards\hvkit_rev1p1\f28x\f2806xM\projects\ccs\proj_lab12a
请教是下怎么回事,PCB板是正常的,28069M的DSP感觉也是正常的,怀疑是motorware里面的工程有问题,但不知道是什么原因。
//这个是proj_lab12a的例程,屏蔽了其它,这里只拉低GPIO来点亮LED灯,但无法成功
void main(void)
{
uint_least8_t estNumber = 0;
///*
HAL_Obj *obj = (HAL_Obj *)halHandle;
EALLOW;
GPIO_setMode(obj->gpioHandle,GPIO_Number_37,GPIO_37_Mode_JTAG_TDO);
GPIO_setDirection(obj->gpioHandle,GPIO_Number_37,GPIO_Direction_Output);//设计方向为输出
obj->gpioHandle->GPBCLEAR = (uint32_t)1 << (GPIO_Number_37 - GPIO_Number_32);
EDIS;
{
//HAL_setGpioLow(halHandle,GPIO_Number_37);
}
}
//下面这个是普通controlsuitej里面的例程,能点亮LED灯
void main(void)
{
///*
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 0;
GpioCtrlRegs.GPBDIR.bit.GPIO37 = 1;
EDIS;
GpioDataRegs.GPBCLEAR.bit.GPIO37 = 1;
}
Hi,您试下下面的配置:
GPIO_setPullUp(myGpio, GPIO_Number_37, GPIO_PullUp_Enable);
GPIO_setHigh(myGpio, GPIO_Number_37);
GPIO_setMode(myGpio, GPIO_Number_37, GPIO_37_Mode_GeneralPurpose);
GPIO_setDirection(myGpio, GPIO_Number_37, GPIO_Direction_Output);
依然点不亮啊,设置模式时,只有GPIO_37_Mode_JTAG_TDO,它也是0相当GeneralPurpose。proj_lab12a是一个很强大的工程,它中断直接有闪灯程序,只是闪不了,我才屏蔽了全部程序,只在初始化那里尝试拉低GPIO37点亮。我使用28027F的例程可以正常操作我另一块板子啊闪灯转电机都完全正常的。我严重怀疑是proj_lab12a调用了什么链接或者编译了什么库导致28069M根本没工作,我用普通的TI例程不带M的那些例程,是完全能闪灯或者只点亮灯的,很困惑啊。
对于28069M这个芯片,不带M的TI例程是可以点亮或者闪LED灯的,带M的例程完全没反应,编译没报错。例程是官网下载的,新版本是motorware_1_01_00_18
前一个版本motorware_1_01_00_17直接编译proj_lab12a居然还会报错,在hal.h那里存在很明显的错误导致编译出错,新版本motorware_1_01_00_18修正了,编译不报错了,但没运行。
GPIO_37_Mode_JTAG_TDO=0, //!< Denotes a JTAG_TDO function
GPIO_37_Mode_Rsvd_1, //!< Denotes a reserved function
GPIO_37_Mode_Rsvd_2, //!< Denotes a reserved function
GPIO_37_Mode_Rsvd_3, //!< Denotes a reserved function
void main(void)
{
///*
HAL_Obj *obj = (HAL_Obj *)halHandle;
EALLOW;
GPIO_setPullup(obj->gpioHandle,GPIO_Number_37,GPIO_Pullup_Enable);
GPIO_setMode(obj->gpioHandle,GPIO_Number_37,GPIO_37_Mode_JTAG_TDO);//GPIO_37_Mode_JTAG_TDO=0
GPIO_setDirection(obj->gpioHandle,GPIO_Number_37,GPIO_Direction_Output);//设计方向为输出
EDIS;
HAL_setGpioLow(halHandle,GPIO_Number_37);
/*
GPIO_setPullUp(myGpio, GPIO_Number_37, GPIO_PullUp_Enable);
GPIO_setHigh(myGpio, GPIO_Number_37);
GPIO_setMode(myGpio, GPIO_Number_37, GPIO_37_Mode_GeneralPurpose);
GPIO_setDirection(myGpio, GPIO_Number_37, GPIO_Direction_Output);
*/
}
没有GPIO_37_Mode_GeneralPurpose枚举定义。
您在测试的时候,JTAG接口的TRST信号是什么电平的?如果是高电平,功能是JTAG TDO,没法用过GPIO。
所以,建议您将仿真器拿下来,然后测一下TRST电平,如果低电平,看一下有没有反转。
验证1、C:\ti\controlSUITE\device_support\f2806x\v135\F2806x_examples\timed_led_blink
使用上面的普通工程,不带M的工程,我们除了GPIO37是接到LED灯上,GPIO16,17,18是通用输出,编译了下面的程序 ,写进去,验证是正确的,GPIO16,17,18,37都能拉低。
void main(void)
{
///*
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 0;
GpioCtrlRegs.GPBDIR.bit.GPIO37 = 1;
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO16 = 1;
GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO17 = 1;
GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO18 = 1;
EDIS;
GpioDataRegs.GPBCLEAR.bit.GPIO37 = 1;
GpioDataRegs.GPASET.bit.GPIO16 = 1;
GpioDataRegs.GPASET.bit.GPIO17 = 1;
GpioDataRegs.GPASET.bit.GPIO18 = 1;
}
验证2、c:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_motion\boards\hvkit_rev1p1\f28x\f2806xM\projects\ccs\proj_lab12a
验证2 是一个GPIO都没有被拉低,拉低方法没错的,我在28027F上面也是这样子拉低的是没问题的。但这个28069M的工程proj_lab12a却不行,proj_lab5C,proj_lab6A也不行,我现在已经没办法了。
void main(void)
{
///*
HAL_Obj *obj = (HAL_Obj *)halHandle;
EALLOW;
GPIO_setPullup(obj->gpioHandle,GPIO_Number_37,GPIO_Pullup_Enable);
GPIO_setMode(obj->gpioHandle,GPIO_Number_37,GPIO_37_Mode_JTAG_TDO);//GPIO_37_Mode_JTAG_TDO=0
GPIO_setDirection(obj->gpioHandle,GPIO_Number_37,GPIO_Direction_Output);//设计方向为输出
GPIO_setMode(obj->gpioHandle,GPIO_Number_16,GPIO_16_Mode_GeneralPurpose);//
GPIO_setDirection(obj->gpioHandle,GPIO_Number_16,GPIO_Direction_Output);//设计方向为输出
GPIO_setMode(obj->gpioHandle,GPIO_Number_17,GPIO_17_Mode_GeneralPurpose);//
GPIO_setDirection(obj->gpioHandle,GPIO_Number_17,GPIO_Direction_Output);//设计方向为输出
GPIO_setMode(obj->gpioHandle,GPIO_Number_18,GPIO_18_Mode_GeneralPurpose);//
GPIO_setDirection(obj->gpioHandle,GPIO_Number_18,GPIO_Direction_Output);//设计方向为输出
EDIS;
HAL_setGpioLow(halHandle,GPIO_Number_37);
HAL_setGpioLow(halHandle,GPIO_Number_16);
HAL_setGpioLow(halHandle,GPIO_Number_17);
HAL_setGpioLow(halHandle,GPIO_Number_18);
}
28069M的芯片
希望能在instaspin_motion里面的工程proj_lab12a或者其它工程,编译一个拉低GPIO16,17,18,37的程序,然后给我一个.hex下载进去看看,究竟是我的Code Composer Studio 6.2.0,Compiler version TI v15.12.3.LTS的问题还是什么问题。
我邮箱:lhrace@163.com
多谢