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.

[参考译文] TRF7970A:从 MSP430G2553移植到 MSP430F2370

Guru**** 665180 points
Other Parts Discussed in Thread: TRF7970A, MSP430F2370, MSP-EXP430G2ET
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1211023/trf7970a-porting-from-msp430g2553-to-msp430f2370

器件型号:TRF7970A
主题中讨论的其他器件: MSP430F2370MSP-EXP430G2ET

您好!

我有一个基于 msp430f2370 和 TRF7970A 的项目板。 我正在修改  用于 MSP430G2553的 sloc297代码 、以与 msp430f2370配合使用

想要知道我是否必须在移植代码时特别注意任何事情?  

当我在更改配置后运行仿真时、程序会卡住。

该程序在红色框中循环运行。

主代码卡滞 VLO 校准。

  • 我的主要功能如下

空 main (void)

uint8_t ui8VLOCalibCount;

// TODO:如果使用 G2 LaunchPad 上的 LED2跳线,请将其移除,否则 SPI 将不起作用。

//停止看门狗计时器,
WDTCTL = WDTPW + WDTHOLD;

//选择 DCO 为8MHz
MCU_initClock ();
MCU_delayMillisecond (10);

//校准 VLO
MCU_calculateVLOFreq ();

//将 SPI SS 设置为高电平
SLAVE_SELECT_PORT_SET;
SLAVE_SELECT_HIGH;

//根据 TRF7970A 数据表,将 SS 拉高到 EN 接高电平之间存在4毫秒的延迟
MCU_delayMillisecond (4);

//将 TRF 使能引脚设置为高电平
TRF_ENABLE_SET;
TRF_ENABLE;

//等待 TRF 系统时钟启动
MCU_delayMillisecond (5);

//设置 TRF 初始设置
TRF79xxA_initialSettings();
TRF79xxA_setTrfPowerSetting (TRF79xxA_3V_FULL_POWER);

#ifdef enable_host
//设置 UART
uart_setup();
#endif

//初始化所有启用的技术层
NFC_init ();

//启用全局中断
__ bis_SR_register (GIE);

//启用 IRQ 引脚
IRQ_ON;

#ifdef enable_host
UART_putIntroReaderMsg (rfid_reader_fw_version、rfid_reader_fw_date);
#endif

while (1)

//轮询 NFC 标签
NFC_findTag ();

// VLO随温度和时间的推移而漂移,因此必须定期重新校准每隔25次NFC轮询程序校准VLO
// VLO 随温度和时间漂移,因此必须定期重新校准
//每运行25次 NFC 轮询例程校准一次 VLO
ui8VLOCalibCount++;
如果(ui8VLOCalibCount == 25)

//校准 VLO
MCU_calculateVLOFreq ();
//重置校准计数器
ui8VLOCalibCount = 0;
}
}
}

  • VLO 校准源代码如下所示

.cdecls C、list、"msp430f2370.h"

;函数
.def TI_measureVLO
;变量
.bss TI_8MHz_COUNTS_PER_VLO_Clock、2.
.align 2.
.text

; device_type .set 2 ;带有 Timer_A3的2xx 设备
device_type .set 3;2xx 器件,带 Timer_A2

.if device_type = 3;对于 Timer_A2器件
TACCTLx。设置 TACCTL0
TACCRX .SET TACCR0
.else
TACCTLx。设置 TACCTL2
TACCRX .SET TACCR2
.endif

优点:
TI_measureVLO
;返回: r12.
;-int 表示一个 VLO 周期内8MHz 时钟脉冲的数目
;-this value 与放入 TI_8MHz_COUNTS_PER_VLO_Clock 的数字相同
优点:
MOV.b &BCSCTL1,R15;保留以前的设置
MOV.b &DCOCTL、r14
PUSH.b &BCSCTL2
PUSH.b &BCSCTL3
PUSH.b &P2SEL
bic.b #0xC0,&P2SEL;清除 P2SEL 位以避免 XTAL 干扰。
MOV.b &CALDCO_1MHz,&BCSCTL1;设置范围
MOV.b &CALDCO_1MHz,&DCOCTL;设置 DCO 步长+调制
MOV.w #CM_1+CCIS_1+CAP、&TACCTLx;CAP、ACLK
MOV.w #tassel_2+MC_2+TACLR、&TACTL;SMCLK、续模式、清除
MOV.b #LFXT1S_2、&BCSCTL3;ACLK = VLO
CLR.b &BCSCTL2
BIS.b #DIVA_3、&BCSCTL1;ACLK=VLO/8
bic.w #CCIFG、&TACCTLx;清除捕获标志
EDGE_ONE BIT.w #CCIFG、&TACCTLx;跳过第一个信号的测试捕获标志
JZ EDGE_ONE
bic.w #CCIFG、&TACCTLx;清除捕获标志
EDGE_2 bit.w #CCIFG、&TACCTLx;跳过第二个信号的测试捕获标志
JZ edge_Two;
MOV.w &TACCRX,R13;保存硬件捕获的值
bic.w #CCIFG、&TACCTLx;清除捕获标志
EDGE_3bit.w #CCIFG、&TACCTLx;用于捕获良好时钟的测试捕获标志
JZ edge_three ;
bic.w #MC_3,&TACTL ;停止计时器
MOV.w &TACCRX、R12
SUB.W R13、R12
MOV.w R12、&TI_8MHz_COUNTS_PER_VLO_Clock
MOV.b R15、&BCSCTL1
MOV.b r14、&DCOCTL
pop.b &P2SEL
pop.b &BCSCTL3
pop.b &BCSCTL2
修订

结束

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、客户:

    我建议在两个 MSP430器件的数据表中比较它们之间的可用外设。 另请比较两种器件的寄存器命名。 我认为还需要将 VLO_Library.asm 中第61行的头文件修改为 msp430f2370.h 然后将寄存器名称与新器件进行比较和更新。

    此致、

    Andreas。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉这么晚才回复。 现在我阻止了 VLO 代码、项目似乎正常工作。 但射频标签将于4月1日送达、然后即可进行测试

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Andreas Mueller:

    我已经阻止了 VLO、现在我的程序有一个问题:当读取器发送搜索命令时、它会收到发送错误。

    main.c nf_findTag ()->NFC_appIso14443a ()->ISO14443A_selectTag (REQA)->ISO14443A_sendPollCmd (ui8Command)

    ->TRF79xxA_waitRxData (3、10)->TRF79xxA_waitTxIRQ (ui8TxTimeout)->g_sTrfStatus = TX_ERROR。

    我想知道导致此错误的原因是什么以及如何解决它。

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很难猜测自定义代码的效果。 但我建议检查时间安排。 它或许有助于使用逻辑分析仪分析信号(SPI、EN、EN2、IRQ)、并比较采用 MSP-EXP430G2ET 的已知有效解决方案与采用 MSP430F2370的实施方案。

    此致、

    Andreas。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我解决了我的问题、因为我没有注意到 IRQ SEL。

    谢谢你。