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/MSP-EXP430FR5994:BOOSTXL-AUDIO_430BOOS-SHARP96_FFT_FIR_LEA_MSP430FR5994产品中的数据记录器

Guru**** 2589280 points
Other Parts Discussed in Thread: MSP-EXP430FR5994, BOOSTXL-AUDIO, MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/618534/ccs-msp-exp430fr5994-data-logger-inside-boostxl-audio_430boost-sharp96_fft_fir_lea_msp430fr5994-proyect

部件号:MSP-EXP430FR5994
主题中讨论的其他部件: BOOSTXL-音频MSP430FR5994

工具/软件:Code Composer Studio

大家好,我是Marcos。

我与 MSP-EXP430FR5994合作了一个月,所以我一直在学习示例项目。 我知道谁要用"out of box"在SD卡中写入,但现在我在尝试在另一个产品中实现它时遇到了问题。

我要使用 OUT_OF_BOX中的库将Proyect BOOSTXL-AUDIO_430BOOS-SHARP96_FFT_FIR_LEA_MSP430FR5994显示在SD卡内的LCD上的数据保存。

作为第一步,我尝试保存一些数字。 在 void runFftWithLea (void)函数内的FFT.c中将其无限循环´s。 因此,我调用inside while (keepAppRunning){....} 函数来写入数据:

void sdcardLog()(无效sdcardLog())

//插件SDCard接口到SDCard库
SDCardLib_init (&sdCardLib,&sdIntf_MSP430FR5994LP);

//检测SD卡
SDCardLib_Status st = SDCardLib_detectCard (&sdCardLib);

rc = f_open (&fil,文件名,fa_write | fa_open_existing);

rc = f_lseek(&fil, f_size(&F));

f_puts ("1",&fil);
f_putc (',&fil);

f_puts ("2",&fil);
f_puts("\r\n",&fil);
rc = f_close(&fil);

SDCardLib_unInit (&sdCardLib);

}

如果我这样做,信息将写入SD卡,但任何信息都将显示在LCD上。 如果我对 void sdcardLog()函数的调用进行注释,我可以在屏幕上再次看到信息。 任何问题,只有一些建议。

我不知道为什么,你能帮我吗?

非常感谢。

Marcos。

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

    SD卡使用eUSI_B0,因此它本身不应造成任何硬件混淆,尽管430BOOST-SHARP96和BOOSTXL-音频都共享eUSI_B1,但上述项目能够轻松地使用这两种卡。 不过,您应该确保sdcardLog()函数没有对LCD使用的SPI,时钟,计时器或pin寄存器进行任何更改。 最坏的情况是您在写入SD卡后重新初始化LCD以重置正确的设置。

    此致,
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经被调试了,我发现问题出在液晶屏上。 问题出在缓冲区。 如果我添加sdcardlog,则ADC读取所在的缓冲区不会更新,因此LCD alwats显示相同的数据。

    现在我处于同样的情况,我不知道为什么会发生这种情况。

    Marcos。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    然后,上述相同的建议仍然适用,确保没有从sdcardLog更改ADC寄存器,最坏的情况是重新初始化ADC模块。 原始sdcardLog函数使用ADC,您需要确保没有剩余的代码保留。

    此致,
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我几乎每个细节都已处理好,但我无法解决。 我将构建一个新项目,将SdCardLogger和FFT结合起来。

    谢谢。
    Marcos。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还尝试将数据记录到与您相同的项目中的SDCard。 我遇到了同样的问题,但尚未解决。 您是否能够解决该问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    n´t,我不能解决问题。 我´m从0重写,但很难。 我希望TI团队分享一个如何在SDCARD FFT数据中存储的示例。 它将帮助人们为更多项目选择此设备。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SDCard库通过在通信过程中禁用所有中断来确定帧读取/发送的优先级,但是这会使音频集合发生混乱,因为它使用计时器触发器和DMA来自动存储ADC转换。 尝试删除HAL_SDCard.c中的两个__disable_interrupt()实例,并观察这对操作的影响。 如果SD卡必须禁用中断才能有效通信,则在调用sdcardLog()后,您还可以重新配置DMA和ADC。

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

    您好,Ryan:

    感谢您的解释,节省了我的时间。

    我确实尝试在HAL_SDCard函数中保持启用中断,代码没有挂起,等待DMA中断唤醒事件,但SDCard不写入数据。

    这似乎是由于从ADC到DMA的中断丢失所致。

    我发现如果我禁用了ADC,它就完成了SD写入,然后立即重新启用,一切都很好。

    (我预先创建了日志文件,以便在禁用ADC的情况下不会花费太多时间)

    可能会有一些数据缺口,但对于这种快速而肮脏的测试,它是可以的。

    Kevin