找回密码
 立即注册
楼主: 游龙***

单片机是否有办法运行U盘或SD卡上的程序,或将单片机产生的数据以文档形式保存在sd卡

[复制链接]
  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 44 天

    [LV.5]常住居民I

    1

    主题

    10

    回帖

    205

    积分

    中级会员

    积分
    205
     楼主| 发表于 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,通过上位机实现。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    6

    主题

    15

    回帖

    136

    积分

    注册会员

    积分
    136
    发表于 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的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 44 天

    [LV.5]常住居民I

    1

    主题

    10

    回帖

    205

    积分

    中级会员

    积分
    205
     楼主| 发表于 2024-3-27 15:26:53 | 显示全部楼层
    zdg102 发表于 2024-3-27 13:43
    你说的这些十几年前我上学那会就做过了, 用STC的芯片。 外置了一个SRAM, 通过 SPI 读取SD卡,汇编解析f ...

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

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 122 天

    [LV.7]常住居民III

    9

    主题

    39

    回帖

    945

    积分

    高级会员

    积分
    945
    发表于 2024-3-28 10:16:19 | 显示全部楼层
    51单片机读写 常量,数组,字库,图片数据到SD(TF)卡容易些,运行卡上的程序可能比较难。曾经用12C5A60S2软模拟SPI读写 1G的TF卡,还是很顺利的。 读写U盘用过沁恒的375也只是(文本、字节)数据。现在STC带USB的操作U盘还得努力学习
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 18:57
  • 签到天数: 91 天

    [LV.6]常住居民II

    3

    主题

    60

    回帖

    566

    积分

    荣誉版主

    积分
    566
    发表于 2024-3-29 17:06:04 | 显示全部楼层
    只要能把程序二进制机器码塞进ram里面,并且程序指针能指向Ram,并执行那里的代码就可以实现,你的程序负责把sd卡里面的程序读出写进ram执行,但是很遗憾stc的8051内核,数据和程序是两个彼此独立的空间,不能实现,你能实现的功能就是,写一段bootloader, 运行的时候在sd卡寻找程序,用ISP方式写到flash,再跳转Flash里面执行
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-24 20:10 , Processed in 0.060455 second(s), 45 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表