请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5994 大家好
我有一个 MSP430FR5994 Launchpad、正在集成 Maxim Integrated 的 DS1620+温度传感器。 我目前是位拆裂(不支持 I2C 或 SPI、没有额外的硬件)、以初始化传感器以进行连续转换、然后在无限循环中写入"读取温度"命令。 我正在切换一个引脚以检查示波器上的速度。 仅写入"rese"命令时、以40kHz 的速率发生。 当我实际存储数据时、这会降至10kHz、当我预期数据达到~20kHz 时(写入8位命令、读取9位数据)。 是否有人知道这种情况的原因? 速度是该项目的关键因素、因此我需要尽可能快地完成该项目。
我已经注意到、传感器的数据表指出最大时钟频率为1.75MHz、这可能是一个因素吗(尽管我不会想到、因为我没有达到这些速度)?
此外、我已将主时钟设置为8MHz、但当我将该频率加倍至16MHz 时、速度大约为一半(存储数据时、速度低于5kHz)。 我无法理解这种情况的原因、因为在另一程序中使用 SD 卡时也会发生这种情况。 我已经注意到、FRAM 只能以8MHz 的最大速度运行、在这些情况下是否会发生类似的情况?
我在下面附加了无限循环、并具有数据存储。
while (1){ //---- 开始交谈--- // P4OUT = 0x08;//CLK 高电平 P2OUT = 0x20;// RST 高电平有效 //发送'Read temp'命令(0b 1010、LSB 优先) P4OUT = 0x08; P4OUT = 0x00; P4OUT = 0x08; P4OUT = 0x0C; P4OUT = 0x04; P4OUT = 0x0C; P4OUT = 0x08; P4OUT = 0x00; P4OUT = 0x08; P4OUT = 0x0C; P4OUT = 0x04; P4OUT = 0x0C; P4OUT = 0x08; P4OUT = 0x00; P4OUT = 0x08; P4OUT = 0x0C; P4OUT = 0x04; P4OUT = 0x0C; P4OUT = 0x08; P4OUT = 0x00; P4OUT = 0x08; P4OUT = 0x0C; P4OUT = 0x04; P4OUT = 0x0C; //---- 开始读数--- // P4DIR = 0x08;//将 P4.2 (DQ)设置为输入 //收集位 对于(n=0;n<9;n++){ P4OUT = P4IN & 0xF7; INT STATUS = P4IN & 0x04; if (status =0x04){ RawData[n]= 1; } 如果(status == 0x00){ RawData[n]= 0; } P4OUT = P4IN | 0x08; } P4DIR = 0x0C;//将 P4.2 (DQ)设置为输出 P2OUT = 0x00;// RST 低电平 //---- 停止交谈--- // P8OUT ^= 0x02;//切换示波器引脚 }