主题中讨论的其他器件: RF430FRL152H
大家好!
我现在使用 RF430FRL152HEVM 与另一个使用 SPI 协议中的 EVM 传输数据的模块进行通信、在该模块中、我使用引脚1.0至引脚1.3。
除了通信要求外、该模块还需要 MCU 的另一个引脚(在我的项目中、它应该是 RF430FRL152H)、以便输出高电平或低电平以重置模块。 考虑到 RF430FRL152H 只有8个引脚、并且左侧的4个引脚用于 JTAG 编程(这种方式我加载我的代码)、我正在确定如何从 JTAG 功能中释放这些引脚中的一个、使其变为正常的 IO 端口并输出预期的电平。
我已经运用 EVM (SPI 中的主器件)和 MSP‑EXP430G2ET (SPI 中的从器件)来测试 SPI 通信和将 JTAG 相关引脚转换为正常输出端口是否可行。 我使用 MSP‑EXP430G2ET 通过 UART 将接收到的 SPI 数据发送到计算机。
以下是有关如何将引脚1.5连接到输出 IO 端口的代码、当我使用万用表测试引脚1.5上的电压时、代码效果良好。
void JTAGPinHigh(void) { asm ( " CALL #0x5CDA "); // Call ROM function ( Initialize function pointers) asm ( " CALL #0x5CAC "); // Call ROM function ( Check part configuration) /*P1.4-->JTAG_TCK, P1.5-->JTAG_TDI, P1.6-->JTAG_TDO, P1.7-->JTAG_TMS*/ P1SEL0 &= ~0xF0; //no JTAG P1SEL1 &= ~0xF0; //no JTAG P1DIR |= BIT5;//set pin1.5 as output P1OUT |= BIT5;//set p1.5-TDI high }
但是、当我在"主"函数中使用该函数时、就会出现问题。 如果我 在 SPI 通信后禁用 JTAG 功能、数据传输没有在计算机上显示错误。 但是、如果我将该函数放在 SPI 通信之前、计算机上显示的数据 是错误的。
在我的代码中、主器件向从器件发送0x00至0x0F。 错误的数据显示为"C0 57 F8 56 3A 4C 34 5B AC 5C 04 5B 20 59 52 5C "、如果我重新启动通信、它将稳定显示。
我想知道如果我想在项目的中间禁用 JTAG、如何解决这个通信问题。 我已经尝试添加'P1SEL0 |= 0xF0;P1SEL1 |= 0xF0;'来恢复 JTAG 功能、但它仍然显示错误的数据。
提前感谢您的帮助。
蔡华轩