极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15881|回复: 1

【Ameba Arduino】实战:用Ameba读写SD卡

[复制链接]
发表于 2016-6-9 12:19:34 | 显示全部楼层 |阅读模式
本帖最后由 Ameba_Arduino 于 2016-6-9 14:59 编辑

Ameba (RTL8195AM)提供SD Host的功能,可以處理接上SD device的應用。讀寫SD Card是常見的應用,讓Ameba可以在SD Card上面讀取或紀錄資料。

材料准备
        Ameba x 1
        SD card or MicroSD card x 1
        SD sniffer x 1 (optional)

資料的格式使用常見的FAT,所以當Ameba讀寫完SD Card之後,可以在電腦上經由讀卡機存取。
因為使用SD介面,所以可以直接接線到SD Card,不需要額外購買經由SPI介面的SD模組。底下是常見的SD Card的接腳:



這些接腳可以直接焊線接上Ameba
注意:D1和D0分别对应WP和CD,需要分别接地,SD host控制器会根据这两根引脚判断SD card状态。
WPCD状态说明:
Low: GND
High: Vcc
  
WP
  
  
CD
  
  
  
  
High
  
  
High
  
  
没有插入SD card
  
  
High
  
  
Low
  
  
插入SD card,写保护
  
  
Low
  
  
Low
  
  
插入SD card,无写保护
  



如果不想焊線在SD Card上面,市面上也有一些轉接板:
SD Sniffer:
https://www.sparkfun.com/products/11468
SD Breakout:
https://www.sparkfun.com/products/12941
但不論焊線或是使用轉接板,不可以將連接的線拉的過長,線的長短會影響傳輸品質。範例裡使用的線材是20公分的杜邦線。
底下是SD轉接板的接線,其中多了WP與CD的接線,這兩根是卡槽的功能,所以沒有出現在SD Card上:

另外,MicroSD的接法也是類似,可以直接接線、使用轉接板、或是使用SD轉接卡。底下是一般MicroSD的pin腳:

接線之後,打開範例 “File” -> “Examples” -> “AmebaSdFatFs” -> “file_read_write”,  需要更新SDK到version 1.1.0。
這個範例裡,會新增文字檔案 “test.txt”,內容是 “hello world!”,編輯完成之後關閉檔案。然後再打開它,讀出內容,並且印在Serial Monitor上。

接著將SD Card放入讀卡機,在電腦上確認一下是否成功。


程式碼說明
程式碼宣告了SdFatFs類別的物件來管理SD Card上面的Fat File System
SdFatFs fs;

接著呼叫begin()來對Fat FS初始化,包括對SD Host初始化,以及掛載檔案系統
fs.begin()

接著打開檔案,呼叫open()函數,參數裡填的路徑是絕對路徑,回傳值是SdFatFile類別的物件,用來操作這個被打開的檔案。
SdFatFile file =fs.open(absolute_filename);

SdFatFile這個類別繼承了Stream類別,所以可以直接使用println對檔案做寫入
file.println(write_content);

寫完之後關閉檔案
file.close()

讀的方式也是使用Stream的函數,所以我們再將檔案打開,做讀的動作:
file.read(buf, sizeof(buf));

將讀出來的資料印在SerialMonitor上面之後,最後將Fat File System關閉
fs.end();

关于更多介绍请访问官方主页:http://ameba.realsil.com.cn/
QQ交流群:Ameba Arduino 技术交流群(184666894
论坛干货:
【新品推荐】Ameba Arduino全功能IoT解决方案
【Ameba Arduino】入手教程之一:开发环境搭建
【Ameba Arduino】入门教程之二:5分钟玩转小车无线控制
【Ameba Arduino】入门教程之三: Wi-Fi之初体验
【Ameba Arduino】入门教程之四:Ameba WebServerLED 控制
【Ameba Arduino】入门教程之五:给无线小车添加“眼睛”
【Ameba Arduino】入门教程之六:无线小车进阶控制---六轴姿态控制
【Ameba Arduino】实战:用Ameba打造Wi-Fi控制的MP3播放器

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2017-1-25 09:29:21 | 显示全部楼层
你好,我正在学习用arduino开发ameba 8195,看到你的帖子帮助很大。成功实验的几个程序,但是在试“验实战:用Ameba读写SD卡”的时候却启动布料,貌似找不到Image 2。你说要升级SDK到version 1.1.0,不知道是指什么?希望能指教一下。谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 18:05 , Processed in 0.041203 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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