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.

[参考译文] CCS/MSP432P401R:基于[MSP 经典寄存器]的 MSP432接口 SDCard

Guru**** 2589245 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/592914/ccs-msp432p401r-msp432-interface-sdcard-based-on-msp-classic-registers

器件型号:MSP432P401R

工具/软件:Code Composer Studio

大家好、我正在尝试仅使用 SDCARD 来重新编制数据。 我的所有项目都是使用"MSPClassic Registers"完成的、因此我在论坛中看到了一个 Bluehash 帖子、但在 CMSIS 中、在模式下、为了满足我的项目、我尝试更改一些文件。 现在、我在完成他的工作时遇到了一些问题、有人可以帮助我?我需要 一些非常简单的东西、只需确认是否加载了该卡并保存数据即可。   我正在使用 MSP432。 但我不使用 Booster Pack、它是一个简单的 SDCard 屏蔽、 这个代码有一个 LCD 连接来进行简单的调试。

连接、对于 LCD 和 SDCard、端口|引脚连接:

MSP432--- >液晶屏      MSP432--- > SDcard

J4.                               JP2.6---- >D4       P1.5 ---------- >CLK        

P2.4------- >D5.       P4.6---- >CS/SS

P5.6 ---------------- >D6.          J2

P6.6- >D7.       P1.6 -------- >MOSI

P2.3---- >E         P1.7---- > MISO

P6.7---- > RS  

文件 v.2:

e2e.ti.com/.../3443.config.h

e2e.ti.com/.../1884.diskio.c

e2e.ti.com/.../5518.diskio.h

e2e.ti.com/.../8233.integer.h

e2e.ti.com/.../6675.lcd.c

e2e.ti.com/.../1300.lcd.h

e2e.ti.com/.../1300.main.c

e2e.ti.com/.../8741.main.h

e2e.ti.com/.../2465.pff.c

e2e.ti.com/.../4532.pff.h

e2e.ti.com/.../4532.spi.c

e2e.ti.com/.../7245.spi.h

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

    我可以尝试并帮助您解决此问题、但我没有您所讨论的特定硬件、因此我将尽力从远处提供帮助。 有关您的帮助请求。 我需要更多详细信息、您究竟需要什么帮助?

    关于硬件、我还将确保您使用的是红色 LaunchPad。 红色 MSP432 LaunchPad 为 Rev2.0、包含 Rev C 器件。 黑色 LaunchPad 具有 XMS Rev B 芯片、建议不再使用该芯片、因为它是预发布材料。

    为了帮助您、在我看来、有两个方向可以帮助您。 您可以继续使用这个在我们将所有内容更新为 CMSIS 之前编写的旧项目、现在将您的代码转换为 CMSIS。 如果您选择了此选项、则可以使用第3部分(特别是3.1.1及更高版本)来帮助指导您完成代码更新过程、使其达到 CMSIS 标准。

    www.ti.com/.../slaa700a.pdf

    如果使用红色 Launchpad、则可以从另一个位置开始、即使用 SimpleLink MSP432 SDK TI 驱动程序读取 SD 卡。 下面有一个简单的示例。 有关 SimpleLink SDK 的更多信息、请访问 www.ti.com/simplelink

    dev.ti.com/.../

    以上示例使您能够在 SD 卡(SPI 接口)上读取和写入数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、下面是一个有关如何将寄存器名称从 MSP 经典更改为符合 CMSIS 标准的基本示例。

    P2OUT = 0x02;// MSP Classic
    P2->OUT = 0x02;// CMSIS 

    以上链接也是一个很好的资源。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    HelloEvan、我会为您提供更多信息
    我使用的是 MSP432 Black、问题是我没有太多时间提交此工作、 MSP432 RED 的购买和交付会限制我的时间。是的、我将更新 CMSIS 的整个代码如果您能帮我、我在微控制器领域是一个很新的人。 我想继续使用不带 driverlib 的标准 CMSIS
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Armandeferr、

    MSP432的所有寄存器级示例均位于该文件夹中、且均符合 CMSIS 标准。 当您将代码移植为符合 CMSIS 标准时、这应该是一个很好的起点。

    dev.ti.com/.../

    如果您有具体问题、请随时提问!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Evan Wakefield、

    我想更改 CMSIS 的语法、并且我已经使用 SDCard 获得了结果、但是在初始化 SDCard 时遇到了一些困难、我无法在 SDCard 内创建文件、我尝试了所有操作、能帮我吗?

    我的代码:

    /*define the size of the buffer that hold the path*/
    unsigned int offsetBuffer=0;
    volatile unsigned int buffer[1024];
    /*define the work directory buffer*/
    
    ********* //*******
    结构 小图标 /
    // /
    unsigned char tmp = 0;
    
    volatile FRESULT res;
    static FIL FSRC、fdst;/*文件源|文件目标*/
    
    
    
    
    
    /********* //*******
    自定义字符 小图标 /
    // /
    
    
    
    // //*******
    主程序 小图标 /
    // /*
    
    
    
    
    * main
    */
    int main (void){
    /*暂停 WDT 并禁用主中断*/
    WatchDogHold();
    /*配置 LCD 端口*/
    LCD_PortConfig();
    /*初始化 LCS*/
    LCD_Initialize();
    /*清除所有 LCD 字符*/
    lcd_clear();
    /*WELCOMME 开始消息*/
    Welcomme();
    /*initialize SDcard*/
    sdcard_Initialize();
    
    while (1){
    
    }
    
    }
    
    
    
    /图标 //*******
    全局函数 小图标 /
    // /
    
    void WatchDogHold (void)
    {
    WDTCTL = WDTPW + WDTHOLD;
    }
    
    /*初始化 SDCARD*/
    void SDCARD_Initialize (){
    FATFS g_sFatFS;
    word bw;
    
    /*CONFIGUURE SPI 类似主器件*/
    spiMasterConfig();
    /*打开 SPI 通信*/
    SPI_Open ();
    /*使用本地磁盘装入文件系统*/
    RES = f_mount (0、&g_sFatfs);
    /*验证磁盘是否为 MONTED */
    if (res!= FR_OK){
    LCD_SetText ("无 SDCARD"、4、0);
    }否则{
    LCD_SetText ("SDCARD OK "、4、0);
    /*在 SDCARD 内创建一个文件以在其中写入*/
    RES = f_open (&fdst、"tete.txt"、fa_create_new| fa_read);
    
    if (res == FR_OK){
    LCD_SetText ("文件已创建"、4、1);
    RES = f_open (&FSRC、"tete.txt"、fa_open_existing | fa_write);
    
    RES = f_write (&FSRC、buffer、1024、&bw);
    //f_printf (&FSRC、"%6d、%3D%%"、-200、5)---
    //f_printf (&FSRC、"%6d、%3D%%%"、-200、5);
    
    /*bw = 0;
    LIN[0]=66;
    LIN[1]= 65;
    LIN[3]='\0';*/
    //res = f_write (&fil、buffer、1024、&bw);
    
    //f_write (0、0、&bw);
    }
    }
    
    
    
    void SDCARD_Close(){f_close(&fdst)
    ;
    f_close(&FSRC);
    }
    
    void Welcomme(void){LCD_SetText("Welcome",4,0);
    
    } 

    我出了什么问题?

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

    如果没有您使用的特定硬件、我只能测试您发送的内容、但我可以提供建议。 您能不能详细介绍一下您在说您已经尝试过所有操作时已经完成了哪些操作? 这将帮助我获得更好的起点、以便能够提出可能出错的问题。 您能描述一下您遇到的错误吗? 您是否使用了逻辑分析仪来确保 SPI 按预期工作?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Armandeferr、

    我们确实有一个使用 TI 驱动程序的 SD 卡示例、您也可以尝试该示例、看看它是否起作用。
    dev.ti.com/.../
    在该示例中、您可以将数据读取并写入 SD 卡(SPI 接口)。 我将确保您在项目中使用的 SPI 线路与本示例中使用的 SPI 引脚相同、如果不是、您可以轻松地修改代码以针对您使用的 SPI 引脚进行调整。

    使用自述文件了解如何使用该示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的项目遇到了一些问题、我需要创建数据记录器来注册一些特殊的采集数据。 我用 SDCard 数据记录器 bluehash 发布的 SDcard BoosterPack 完成了这项工作。 但是出现了问题,如果 sdcard 插槽没有卡,他会向我显示 SDCARD_OK,当我放置卡时,也会显示相同的内容,我所做的是错误的。 我可以做些什么来改变这个问题。 我使用 CMSIS 标准将原始文件更新为我的新版本。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    阿曼多弗尔

    关于调试代码的能力、我不能在这方面为您提供帮助、因为我没有您的硬件。 我猜您的 f_mount 函数可能会返回错误的值。 首先、我将使用逻辑分析仪来查看您在通过 SPI 与 SD 卡通信时是否可以发现任何异常、然后从那里继续。

    此外、我建议您查看我们提供的使用 TI RTOS 的 SD 卡示例。 dev.ti.com/.../

    这个示例我们自己构建、知道它可以正常工作。 我将研究如何修改此示例以使用您的 SD 卡。

    为了运行上述示例、由于黑色 launchpad 上的 XMS 器件和红色 launchpad 上的器件发生了软件更改、因此您需要使用红色 LaunchPad。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此问题已得到解决。 我用 CMSIS 编写了一个代码、使用 FATFS 库的一部分、我让 SDCard 工作。 储罐