游龙在线 发表于 2024-3-27 09:01:35

21cnsound 发表于 2024-3-26 15:15
SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而S ...

那是难实现,才使用场景少吧?如果能像设置一个USB接口、设置一个pwm输出一样简单,使用场景会少吗?单片机虽然有内部存储,但对长时间采集数据,还是太小。只是用单片机的人,都知道这一点,所以都想办法规避这个问题。最简单的方法,就是告诉客户,这个功能不能实现。要实现,需要接台PC,通过上位机实现。

zdg102 发表于 2024-3-27 13:43:29

游龙在线 发表于 2024-3-27 09:01
那是难实现,才使用场景少吧?如果能像设置一个USB接口、设置一个pwm输出一样简单,使用场景会少吗?单片 ...

你说的这些十几年前我上学那会就做过了, 用STC的芯片。 外置了一个SRAM, 通过 SPI 读取SD卡,汇编解析fat32文件系统, 加载SD卡上的程序文件到 SRAM,然后跳转执行SD卡上的程序。要实现这个,对于51单片机,只有一个关键点,就是SRAM的电路需要处理一下,把代码和数据的访问都映射到SRAM。时间太久了,具体细节忘得一干二净了。 当时还神奇的发现,对于这种硬件电路设计,KEIL支持在线调试51单片机,设断点,单步执行之类的。

当时还搞了个 液晶屏,搞了一个PS键盘,输入命令,整的和dos有点类似。

毕业很多年后,有次无聊,给当年的板子换了一个STC新型号,发现反倒运行不了。 虽然新型号性能更强,但是也阉割了部分功能。

言归正传,本质是还使用场景少,才导致的越来越难以实现。 用的少的功能,慢慢阉割,用的少的芯片慢慢淘汰。你说的这种运行SD卡上的程序 , 不会上51的, STM32 都不会, 我会选个能跑linux的。

游龙在线 发表于 2024-3-27 15:26:53

zdg102 发表于 2024-3-27 13:43
你说的这些十几年前我上学那会就做过了, 用STC的芯片。 外置了一个SRAM, 通过 SPI 读取SD卡,汇编解析f ...

因为实现起来麻烦,所以用得少或刻意避开这个用法。因为用得少,所以连相关功能也可能被阉割。不过貌似stc并没阉割这个功能,只是后面出的芯片,使用外部Ram的ALE/PROG脚成为了复用脚,需要在程序中指定功能,才能使用。

wjhhhhh 发表于 2024-3-28 10:16:19

51单片机读写 常量,数组,字库,图片数据到SD(TF)卡容易些,运行卡上的程序可能比较难。曾经用12C5A60S2软模拟SPI读写 1G的TF卡,还是很顺利的。 读写U盘用过沁恒的375也只是(文本、字节)数据。现在STC带USB的操作U盘还得努力学习

yefeng 发表于 2024-3-29 17:06:04

只要能把程序二进制机器码塞进ram里面,并且程序指针能指向Ram,并执行那里的代码就可以实现,你的程序负责把sd卡里面的程序读出写进ram执行,但是很遗憾stc的8051内核,数据和程序是两个彼此独立的空间,不能实现,你能实现的功能就是,写一段bootloader, 运行的时候在sd卡寻找程序,用ISP方式写到flash,再跳转Flash里面执行

BFMIPBWVFP 发表于 2024-7-26 16:42:35

51单片机的内存太小,挂载文件系统不大现实,不过可以先在sd卡里创建议好文件,对文件进读写还是没有问题的。用spi方式就行。如果只读sd还可以用模拟SDIO的方法,我写有个贴子。模拟sdio读取文件速度还可以,而且可以用DMA来转移数据,相当转移数据不用占用cpu时间,只要读完数据就完事了。也可以用spi方式读取数据,用SPIdma读取,速度也还行。

soma 发表于 2024-7-26 17:53:50

类似插卡游戏机的机制吗?

晓飛飛 发表于 2024-7-26 23:09:40

21cnsound 发表于 2024-3-26 15:15
SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而S ...

需要长时间记录数据的场合还是蛮多的,比如心电图Holter

ofela 发表于 2024-7-27 08:23:01

用老姚的话讲,你这是外行

_NCY_ 发表于 2024-7-28 20:34:27

zdg102 发表于 2024-3-27 13:43
你说的这些十几年前我上学那会就做过了, 用STC的芯片。 外置了一个SRAM, 通过 SPI 读取SD卡,汇编解析f ...

其实STC51确实可以,而且不用拓SRAM🤭
页: 1 [2] 3
查看完整版本: 单片机是否有办法运行U盘或SD卡上的程序,或将单片机产生的数据以文档形式保存在sd卡