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.
工具/软件:TI C/C++编译器
您好!
我对 MSP430F6779上的 SPI 有疑问。 我想在4线制模式下将 MSP430F6779用作 SPI 从器件。 这意味着 MSP 必须观察低有源芯片选择(CS)线路、并且仅当它为低电平时(这意味着 MSP430由 SPI 总线上的主器件处理)、才允许它在其 MISO (在 TI 中称为 SOMI)上移出数据 具有接收到的移位时钟信号的线路-否则 SOMI 必须为高阻抗输入。 这是一个典型的具有 CS 线路的 SPI 从器件设置、没什么特别的。
我已经在 MSP430F5529 LaunchPad 上实现了这一点(SPI 处于4线制模式、CS 和2通道 DMA 用于发送/接收一组字节)、并且其工作正常。 在这里、我在 SPI 模式下使用 USCI_B0接口、将 SIMO、SOMI、CLK 和 UCB0_STE 引脚用作 ChipSelect。
现在、我确实想将该解决方案传输到 MSP430F6779。 但没有 UCxSTE 引脚??? 或者我是否错过了什么? 我在数据表中找不到该引脚作为替代功能。 哪些引脚可在 F6779中用作从 CS 引脚(UCxSTE 引脚)? (请记住:我想将 F6779用作 SPI 从设备。 SPI 主器件可以使用任何 GPIO 作为 CS 引脚来选择从器件。 SPI 从器件无法执行此操作、因为如果未选中、硬件必须关闭 SOMI 线)
背景:我正在使用 EVM MSP430F6779三相能量计、我希望通过 SPI 连接到外部主器件。
此致
Patrick
尊敬的 Patrick:
感谢您的详细博文! 我想我已经弄清楚了您的问题的答案。 基本上、MSP430F6779 (虽然对于生产、我们建议改进的引脚对引脚兼容 MSP430F6779A)具有端口映射功能、允许将某些功能映射到各种端口引脚。 有关 STE 引脚功能、请参阅数据表中的表15、特别是值4、8、12、16、20、 和24。 请注意、对于右侧的输入/输出列、说明方向由 USCI 模块控制。 因此、这应该消除了您对将 MSP430F6779用作 SPI 从器件的担忧!
Jens-Michael Gross 在以下帖子中对该功能进行了一些很好的讨论。
此致、
James
您好 James、
感谢您的回答。 现在、我发现了端口映射函数、研究了数据表、driverlib 和示例。
因此、我编写了必要代码的草稿-请参阅下面的 SNI4。
代码尚未验证、因此对于所有开发人员而言、请勿将其用作温度。 如果经过测试和测试、我会回来的。
还有几个问题:
1) 1)引脚外设功能的激活通过进行
// P2.1 - PM_UCB1STE
// P2.5 - PM_UCB.S.
// P2.6 - PM_UCB0SDA
GPIO_setPeripheralModulesFunctionOutputPin (
GPIO_PORT_P2、
GPIO_PIN1 + GPIO_PIN5 + GPIO_PIN6);
对于已激活的引脚、我必须在端口映射中选择所需的功能。
端口映射功能是按端口而不是按引脚配置的。 这意味着、即使只想配置一个引脚、也必须为整个端口制定规格。 为了选择引脚的外设功能、我必须定义端口的映射
//端口 P2:
const uint8_t port_mapping []={
PM_NONE、 // P2.0
PM_UCB1STE、 // P2.1 RF_CS 用作 UCB1的 SPI CS 引脚
PM_NONE、 // P2.2 RF_GPIO2
PM_NONE、 // P2.3 RF_GPIO1
PM_NONE、 // P2.4 LED6
PM_UCB.S.、 // P2.5 SCL
PM_UCB0SDA、 // P2.6 SDA
PM_NONE、 // P2.7 LED5
};
并使用激活它
//端口映射
//配置端口-传递 port_mapping 数组,start @ P2MAP01,初始化
//单个端口,不允许端口映射的运行时重新配置
PMAP_initPortsParam initPortsParam ={0};
initPortsParam.portMapping = port_mapping;
initPortsParam.pxMAPy =(uint8_t *)&P2MAP01;
initPortsParam.numberOfPorts = 1;
initPortsParam.portMapReconfigure= PMAP_disable_reconfiguration;
PMAP_initPorts (PMAP_CTRL_base、&initPortsParam);
是这样吗? 由于外设函数未被激活、PM_NONE 的定义无论如何会被忽略。
问题:如果为一个引脚激活了外设功能并且没有给出端口映射信息、那么默认外设功能是否有效?
示例:使用激活端口4中的外设功能
GPIO_setPeripheralModulesFunctionOutputPin (
GPIO_PORT_P4、
GPIO_PIN4 + GPIO_PIN5 + GPIO_PIN6);
功能
// SPI:UCB1
// P4.4 PM_UCB1_SOMI
// P4.5 PM_UCB1_SIMO
// P4.6 PM_UCB1_CLK
即使没有端口映射、也是如此、因为这是该引脚的默认外设配置。 还是必须如上所述定义显式端口映射?
2) 2)有关 EVM 三相电能 MSP430F6779的问题
我要用于访问 SPI 接口的连接器 RF2 (RF1)。 这些是间距较小(1.2mm?)的公头
您是否有女性同行的器件型号?
谢谢、致以诚挚的问候
Patrick
尊敬的 Patrick:
您是否能够使端口映射正常工作? 关于 RF1和 RF2接头以及相关连接、您可以在 《智能电表设计指南》中的实现 Wi-Fi 连接中了解有关它们的更多信息。 但是、其 BOM 表不提供器件型号、只是"连接器插头20POS 1.27mm GLD SMD"。 但是、我认为我在启用 Wi-Fi 的1级2级电动汽车服务设备设计指南中的图20中找到了器件型号。
此致、
James