Leonardo改装为USB读卡器-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2591|回复: 1

Leonardo改装为USB读卡器

[复制链接]
发表于 2020-2-3 21:39 | 显示全部楼层 |阅读模式
前面介绍了如何用 Leonardo 实现SD卡的读写,这次介绍如何实现将其改装为 USBSD 卡读卡器。
经过搜索在 http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/  给出了一个代码。结合上面提到的硬件可以完成功能(CSPin 直接接地,此外其他连接相同)。
image002.jpg
使用 C:\WinAVR-20100110\进行编译:
C:\Program Files (x86)\Microsoft Visual Studio14.0\VC>cd\
C:\>cd C:\WinAVR-20100110\SDCardReader
C:\WinAVR-20100110\SDCardReader>setenv.bat
C:\WinAVR-20100110\SDCardReader>PATH=C:\WinAVR-20100110\bin;C:\WinAVR-20100110\utils\bin;C:\Windows\System32\wbem
C:\WinAVR-20100110\SDCardReader>cd"LowLevelMassStorage+SD"
C:\WinAVR-20100110\SDCardReader\LowLevelMassStorage+SD>make
-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copyingconditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE.
Size before:
AVR Memory Usage
----------------
Device: atmega32u4
Program:    9094 bytes(27.8% Full)
(.text + .data + .bootloader)
Data:        712 bytes(27.8% Full)
(.data + .bss + .noinit)
Checking for invalid events...
---- Compile Time Library Options ----
USB_DEVICE_ONLY
FIXED_CONTROL_ENDPOINT_SIZE=8
FIXED_NUM_CONFIGURATIONS=1
USE_FLASH_DESCRIPTORS
USE_STATIC_OPTIONS=(USB_DEVICE_OPT_FULLSPEED |USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
INTERRUPT_CONTROL_ENDPOINT
--------------------------------------
--------- Target Information ---------
AVR Model: atmega32u4
Board: USER
Clock: 16000000Hz CPU, 16000000Hz Master
--------------------------------------
Size after:
AVR Memory Usage
----------------
Device: atmega32u4
Program:    9094 bytes(27.8% Full)
(.text + .data + .bootloader)
Data:        712 bytes(27.8% Full)
(.data + .bss + .noinit)
-------- end --------

编译之后生成 MassStorage.hex 文件,我使用Arduino的上传方式进行烧写,烧写之前按下 reset  button 然后马上运行,特别注意根据你自己的实际情况选择COM,我这里是 COM7 (意思是按下 Reset 之后出现的 BootloaderCOM)
D:\arduino-1.8.4\hardware\tools\avr\bin\avrdude -v-Cd:\arduino-1.8.4\hardware\tools\avr\etc\avrdude.conf -patmega32u4 -cavr109 -PCOM7-b57600 -D -V -Uflash:w:./MassStorage.hex:i
烧写之后就可以正常工作了。

写入速度
image003.png
读取速度能快一点
image004.png
完整的代码和Lufa下载(根据我的测试只有特定的 Lufa版本LUFA_091223才能通过编译,所以放在一起了,另外,为了减小体积我删除了 Lufa 里面的 Demo)。
SDCardReader.zip (858.69 KB, 下载次数: 31)
发表于 2020-6-6 23:13 | 显示全部楼层
下载了,支持一下!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:54 , Processed in 0.075764 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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