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.

[参考译文] EK-TM4C123GXL:使用 USB TM4C123G 安装 SDCard 的时间

Guru**** 2454020 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/637870/ek-tm4c123gxl-time-to-mount-an-sdcard-using-usb-tm4c123g

器件型号:EK-TM4C123GXL

我有问题、找不到解决方案。

首先、我制作了一个 USB+SDCard 读取器项目(带有 fatfs)用于测试、然后在 launchpad 上进行了闪存。
Windows 将检测到大约5秒的新器件、它的工作效果非常完美。

然后、我在自己的板上使用了相同的项目。
Windows 会检测到大约30秒的新设备、它的工作效果非常完美。

这不是硬件问题、因为它与 LaunchPad 相同。

有任何提示吗?

我的初始化代码是:


void USB_MSC_Initialize (void)
{
USBIntRegister (USB0_BASE、USB0DeviceIntHandler);
//USBIntEnableControl (USB0_BASE、USB_INTCTRL_ALL);
//ROM_IntPrioritySet (USB0_BASE、0x00);

//
//将 USB 堆栈模式设置为不带 VBUS 监控的设备模式。
//
USBStackModeSet (0、eUSBModeForceDevice、0);

//
//将我们的器件信息传递到 USB 库并放置器件
//在总线上。
//
USBDMSCInit (0、(tUSBDMSCDevice*)&g_sMSCDevice);
}


void USB_MSC_Config (void)
{
//
//配置和启用 UDMA
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UDMA);
ROM_SysCtlDelay (10);
ROM_uDMAControlBaseSet (&sDMAControlTable[0]);
ROM_uDMAEnable();

//
//启用外设时钟
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_USB0);
ROM_SysCtlUSBPLLEnable();
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
ROM_SysCtlDelay (10);

//
//为 USB0 USB0DP 启用引脚 PD5
//
ROM_GPIOPinTypeUSBAnalog (GPIO_PORTD_BASE、GPIO_PIN_5);

//
//针对 USB0 USB0DM 的使能引脚 PD4
//
ROM_GPIOPinTypeUSBAnalog (GPIO_PORTD_BASE、GPIO_PIN_4);

} 

int main (空)


   //
   //将时钟设置为以50MHz 的频率从 PLL 运行
   //
   ROM_SysCtlClockSet (SYSCTL_SYSDIV_3 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz);

   USB_MSC_Config ();
   USB_MSC_Initialize();



   while (1)
   {

   }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果硬件完全相同、软件完全相同、部件完全相同、则运行方式完全相同。 由于您的系统运行方式不同、我建议您不要完全相同。 虽然您的硬件设计可能与 EK-TM4C123GXL 类似、但可能存在设计或组装差异(有意或无意)。 我建议您创建一个简单的项目来切换 I/O 引脚。 比较您的电路板和 EK-TM4C123GXL 之间的结果。 查看从复位释放到第一次切换的时间以及切换频率。 这有助于验证正确的启动和工作频率。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Andres_dalmati"]…… 我自己的板...  Windows 需要大约30秒-工作完美。   这不是硬件问题、因为 它与 Launchpad 相同(与)。

    如果-在您写的时候-您的"自己的板"(实际上)与 LPAD 相同-为什么要投入这样的时间/成本/精力?   (在重塑"已知合格"车轮时?)

    反复-海报的"忽略或严重低估"技能和精力要求-生产基于 MCU 的合适且稳健的 PCB 所需。   "效率更高的方法"是否可以将您的"自己的电路板"视为仅承载应用所需的那些"特殊组件"、并将这些信号传回"已知良好" LPAD?

    在以下路径中、最常有"隐藏的回报":

    • 您的有限度更高-要求更低-更小的"自有 PCI"享有更大的"成功机会"
    • 当您的主板加入并正常工作/组合时、"改进的方法、组件选择和其他效率"将"提升"、从而提高性能(在主板旋转2时)

    "一切都好"-先去-证明是极不可能的。   (正如您(和此处的其他人)观察到的...)

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

    您好、Bob、感谢您的回答。

    很抱歉犯了一个“相同”的错误;)

    我的板不同。
    我的板具有 SD 卡、加速计、GPS、显示屏、WiFi 和射频模块。 一切正常。

    我的意思是、这些轨道与 LaunchPad 中的轨道相同。 中间没有任何组件。

    我进行了新的测试、结果发现"问题"与 SD 有关。 对于某些 SD、它的工作速度更快、而对于其他 SD、工作速度更慢。 无论它们的尺寸大小如何。

    测试结果(在 launchpad 和我的电路板上进行了测试):


    1- SDHC 4GB Kingston C4。 中等安装。
    2- SDHC 8GB 逐字 C4。 ~20sg。
    3- SDHC Ultra 8GB SandDisk C10。 ~20sg。
    4- SDHC 16GB Kingston C4。 ~6段

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

    正是“你”认为“同样”是“可怕的错误”。   (这里的其他人(我相信两人)对一致性的"主张"提出了温和的异议。)    您同意(部分)需要注意细节。   现在-非常好地提供了。

    您的演示文稿(具有清晰的细节)对许多人都很有帮助、因此感谢您的努力、我感谢您。

    您的帖子表明"问题"源于(可能)"与初始测试条件的意外偏差"。    应记录所有此类测试条件-简化为写入并确认-以便保持"苹果对苹果"比较/对比...

    根据公司/我的经验、容量更大更新的 SDHC 卡可能会成为一项挑战。   (在这种情况下、由于这些设备提供了"最高存储成本比"、因此您可能希望现在将测试扩展到32GB、甚至更高。)

    再次感谢大家的关注、细致周到/深思熟虑、让团队受益、 "跟进"。