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.

[参考译文] MSP430G2553:如何在使用 micro SD 卡时降低功耗。

Guru**** 2563960 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/604414/msp430g2553-how-to-reduce-power-consumption-while-using-micro-sd-card

器件型号:MSP430G2553

我使用 micro SD 卡记录从连接到微控制器(MSP430G2553)的四个力传感器读取的数据。 控制器每15分钟记录一次 SD 卡读数并进入睡眠模式。 我使用的是1000 mAh 电池、电池使用寿命长达一周以上。 是否可以降低功耗、使其持续一个月。  

(#)即使微控制器休眠15分钟、SD 卡仍在持续耗电。  

(#)写入过程需要几 mA 的电流。

帮助提出任何建议以大幅降低功耗。  

原理图如下所示、 原理图后面插入了代码。  

#include 
#include 

/*------------------
将文件 Log.txt 从该文件的位置复制到
SD 卡的根目录。

//

#include "spi.h"
#include "pfatfs.h"
#define cs_pin 8. //芯片选择引脚
#define READ_BUFFER 128 //读取缓冲区的大小(以字节为单位)
//#define LOG_DELAY 200 // 5000ms -> 5sec

unsigned short int bw、br;
char buffer[read_buffer];
int rc;
DIR dir;/*目录对象*/
FILINFO fno;/*文件信息对象*/
uint32_t sensor1;
uint32_t sensor2;
uint32_t sensor3;
uint32_t Sensor4;
uint8_t StringLength = 0;
char buf[50];
uint32_t counter = 0;uint32_t intc



= 0;t intt intt intt count = 0;t unsigned time int t intt intt intt intt intt intt 长度= 0;t intt intt 计数

uint32_t T1 = 0;
uint32_t T2 = 0;
uint32_t T3 = 0;
uint32_t T4 = 0;

void setup ()

{
analogReference (INTERNAL2V5);
引脚模式(9、输出);
引脚模式(10、输出);
Serial.begin(9600);
FatFs.begin(cs_pin);
serial.print ("\n 串行输出\n\r\n);
}

/*停止并显示死亡消息*/
void 裸片(int pff_err)
{
Serial.println();
Serial.print("FAILED with RC=");
Serial.print(pff_err,DEC);
for (;;);
}
void printdec (UINT32_t ui)
{
Serial.print(ui/10,DEC);
Serial.print(".");
Serial.print(ui.print");Serial.print(<.print)<.10(ui);seri%10(ui)

void loop()
{if

(c=1)
{digitalWrite(10,
high);
delay(300);
digitalWrite(10, low);
delay(300);delay(300);
C++;
}

sensor1 = analogRead (2);
delay (5);
t1 = sensor1;

Sensor2 = analogRead (3);
延迟(5);
T2 = sensor2;

sensor3 = analogRead (5);
延迟(5);
T3 = sensor3;

Sensor4 = analogRead (6);
延迟(5);
T4 = Sensor4;

if (d=5)
{{
{RC = Fatfs.open ("log.TXT");
if (RC) die (RC);
delay (5);
bw=0;
sprintf (buf、"%lu 输出为%lu、%lu、%lu、%lu、%lu\r\n"、counter、t1、t2、t3、t4);
counter+

(stringf+);stringbuf+(strtlf);stringf.pringf+(串行长度);

RC = Fatfs.lseek (AccStringLength);
IF (RC) DIE (RC);
AccStringLength = AccStringLength + 1024;

RC = FatFs.write (buf、StringLength、&bw);

if (RC) die (RC);
RC = FatFs.write (0、0、&bw);//完成 if
(RC) die (RC)的写入;
RC = FatFs.close (); //关闭文件
IF (RC)裸片(RC);

D=0;
}}
{
d=d+1;
}
digitalWrite (9、low);
SLEEP (7500);
digitalWrite (9、high);

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Tapas、
    SD 卡的消耗是多少?

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

    https://electronics.stackexchange.com/questions/312152/how-to-reduce-power-consumption-while-using-micro-sd-card-with-microcontroller 的副本

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、是的。 我在堆栈交换中获得的响应比在 e2e 中更快。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这很容易使 FatFS 在只有512字节 RAM 的 G2553上工作。 但您的原理图显示了具有1K 的器件(G2152)。

    我看不到任何证据表明您已经采取了任何措施来最大限度地降低功耗。 《家庭指南》(slau144)中有一节关于此主题的内容、您应该阅读它。  (2.4和2.5)

    一旦 MCU 的功耗受到控制、您就可以担心如何确保 SD 卡空闲电流最小化。

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

    我正在使用 Petit FAT 文件系统模块、它比 FatFs 小。 该库的唯一缺点是用户必须在 PC 上的 SD 卡上预创建文件、然后才能在 Launchpad 上使用该文件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有4个 micro SD 卡,电流消耗在1.2mA 至2.5mA 之间。 在写入操作期间、它将增加0.5mA。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是仅 SD 卡的电流、还是包含 MCU?

    我怀疑您的测量值是平均值、因为 SD 卡写入电流可能高达100mA。