Thông báo
Collapse
No announcement yet.
SD card và MMC card
Collapse
This is a sticky topic.
X
X
-
Ghi thẻ nhớ định dạng .txt tức là bạn muốn ghi thẻ định dạng FAT, trên mạng có khá nhiều project làm điều này. Một trong các thư viện mình thấy dễ sử dụng nhất là FATFS, bạn có thể xem thử và ứng dụng vào, phần example của nó có đoạn cho AVR đấy.Nguyên văn bởi nguyentuanqs Xem bài viếtem cũng đang làm một đề tài có sử dụng amega128 về truyền nhận số liệu lưu trữ. kiểu như xác định hành trình bằng GPS. e định lưu dữ liệu ấy vào thẻ nhớ dưới dạng text và sử dụng như 1 hộp đen trên oto. hi, các bác cho em hỏi tính khả thi với. về phần GPS thì đã xong. còn phần lưu trữ nữa. làm thế nào để lưu dữ liệu ấy vào thẻ nhớ thành file định dạng .txt được các bác nhỉ?
Leave a comment:
-
em cũng đang làm một đề tài có sử dụng amega128 về truyền nhận số liệu lưu trữ. kiểu như xác định hành trình bằng GPS. e định lưu dữ liệu ấy vào thẻ nhớ dưới dạng text và sử dụng như 1 hộp đen trên oto. hi, các bác cho em hỏi tính khả thi với. về phần GPS thì đã xong. còn phần lưu trữ nữa. làm thế nào để lưu dữ liệu ấy vào thẻ nhớ thành file định dạng .txt được các bác nhỉ?
Leave a comment:
-
mình cũng đang làm giao tiếp avr + micro Sd card nè. nhưng không hiểu lỗi xảy ra ở chõ nào mà khi minh truyền data cho no có 512 bytes thui mà khi kiểm tra dung lượng thẻ nhớ thì nó báo 4M. không biết đoạn chương trình này có lỗi gì nữa. Huynh nào chỉ mình xíu:
void mmc_tCommand(unsigned char Cmd,long arg){
unsigned char response, retry = 0;
//command la 48 bit lien tiep trong do
//bit47=0 (start bit)
//bit46=1 (transmission bit)
//bit45:40 la ma lenh
//bit39:8 la argument cua lenh
//bit7:1 Cyclic Redundancy Check (CRC)
//bit0=1 la end bit
SS_PIN = 0; //kich hoat duong SS cua SPI, MMC duoc chon
SPI_tByte(0xFF); //dummy, 1 lenh luon bat dau 0 nen send FF thi MMC ko dap ung
SPI_tByte(Cmd | 0x40); //0x40=01000000 la ma bat buoc khi goi lenh
SPI_tByte((unsigned char)(arg >>24));
SPI_tByte((unsigned char)(arg >>16));
SPI_tByte((unsigned char)(arg >> 8));
SPI_tByte((unsigned char) arg);
SPI_tByte(0x95); //CRC, cho lan dau nhung neu cac lan sau send 0x95 cung ko van de;
while((response=SPI_rByte()) == 0xff)
if(retry++ > 0xfe) break;
SS_PIN = 1;
}
//XXXXXXXXXXXX fileneme XXXXXXXXX
unsigned char SD_writeSingleBlock(unsigned long startBlock)
{
unsigned char mmc_status ;
unsigned int i,retry = 0;
SS_PIN = 1;
mmc_tCommand(CMD24,startBlock<<9) ;
if(mmc_rResponse(0x00) == 1){ //co loi kiem tra response
mmc_status=4; // timeout khi goi lenh write block
SS_PIN = 1; //disable SPI MMC
return mmc_status;
}
SS_PIN = 0;
SPI_tByte(0xfe);
for(i=0;i<512;i++) SPI_tByte(buff[i]);
SS_PIN = 1;
SPI_tByte(0xff);
SPI_tByte(0xff);
mmc_status =SPI_rByte();
if((mmc_status & 0x1f) != 0x05) { SS_PIN=1; return mmc_status;}
while( ! SPI_rByte())
if(retry++ > 0xfffe) { SS_PIN =1; return 1;}
SPI_tByte(0xff);
SS_PIN = 0;
while( !SPI_rByte())
if(retry++ > 0xfffe) { SS_PIN =1; return 1;}
SS_PIN = 1;
return 0;
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Leave a comment:
-
Thấy mấy đồng chí hào hứng với SD/CF card nên mình cũng giới thiệu với các anh chị em "một module khá hay, bảo đảm xài là được ngay" :
ELM - FatFs Generic FAT File System Module
Còn đây là hướng dẫn:
MMC/SD Card and FAT Tutorial
chi tiết hơn:
Simple FAT and SD Tutorial Part 1
Simple FAT and SD Tutorial Part 2
Simple FAT and SD Tutorial Part 3
Đầy đủ rồi đó, dẫn tới cửa bảo vào nhà mà không biết đương f vào nữa thì bó tay nha
.
Chúc các bạn học vui.
Leave a comment:
-
các bạn xem luồng này để hiểu cách thao tác sd card theo fat nhé: http://www.dientuvietnam.net/forums/...c-sd-card-591/
Leave a comment:
-
Mình cũng mới bắt đầu tìm hiểu về SDcard.Mài mò xong thấy cái này hay hay post cho mọi người thì khám phá.Cái này rất hay cho mọi người bắt đầu khám phá về SDcard không cần phải sử dụng kíp thí nghiệm.Chỉ cần 1 cái laptop có giao tiếp với Sdcard là Ok.Chúng ta sẽ tiếp cận giao tiếp với host controler bằng cách sử dụng code của linux.Đảm bảo sao khi đọc xong có linux bạn sẽ học được rất nhiều đều hay về cách lập trình C.
I.Setup ubuntu 11.10
1. Download Ubuntu 11.10 Download | Ubuntu
2.Run file wubi.exe để cài đặt ubuntu vào máy tính
-Nên cài đặt dung lượng ổ đĩa lớn hơn 15G
-Trong quá trình cài đặt không cần phải update khỏi phải tốn nhiều thời gian
-Nên đặt Password cho Ubuntu
3.Open Terminal (Win +Terminal +Enter)
-Update apt-get (sudo apt-get update)
-Upgrade apt-get (sudo apt-get upgrade)
4.Download linux source 3.0
-sudo apt-get install dpkg
-Sudo apt-get source linux-source -3.0.0
II.Build nhân linux mới vào hệ thống
Build lại nhân linux để tạo dirver mmc thành một module riêng lẽ không phụ thuộc vào hệ thống
-cd linux-3.0.0
-sudo su
-make oldconfig
-nano .config
Ctrl+W : “CONFIG_MMC” edit text CONFIG_MMC=m (Ctrl+X,Y)
-make
-make modules_install
-make install
-reboot
Thế là xong quá trình chẩn bị linux để debug driver of mmc
II.Chẩn bị công cụ lập trình
1.Setup java run time
-sudo apt-get install sun-java6-jdk
2.Download eclipse C/C++ Eclipse downloads - mirror selection
3.Chmod linux-Project
-chmod –R 777 ~/linux-3.0.0
4.Tạo Project on eclipse
File->New->Other->C/C++->Makefile Project with Existing Code
5.Edit file sdhci.c on driver/mmc/host/sdhci.c
-Find function sdhci_add_host Ghi vào lệnh printk(“SDHCI BEGIN\n”) lệnh printk trong linux thay cho lệnh printf trong C .Lệnh printk sẽ được ghi vào file /var/log/syslog (cat /var/log/syslog)
-Thêm đoạn code printk("SDHCI_SEND_COMMAND CMD =%d\n",cmd->opcode);Trong funtion sdhci_send_command
6.Build module MMC
-cd ~/linux-3.0.0/driver/mmc
-sudo su
-nano run
-Pase “
echo Makefile====================================
make -C /lib/modules/`uname -r`/build M=`pwd` clean
echo clear===============================
make -C /lib/modules/`uname -r`/build M=`pwd` modules
echo modules===========================
make -C /lib/modules/`uname -r`/build M=`pwd` modules_install
echo modulesinstall===========================
echo rmmod_old
rmmod sdhci_pci
rmmod sdhci
rmmod mmc_block
rmmod mmc_test
rmmod mmc_core
rm /lib/modules/3.0.9/kernel/drivers/mmc/host/sdhci.ko
rm /lib/modules/3.0.9/kernel/drivers/mmc/host/sdhci-pci.ko
rm /lib/modules/3.0.9/kernel/drivers/mmc/card/mmc_block.ko
rm /lib/modules/3.0.9/kernel/drivers/mmc/card/mmc_test.ko
rm /lib/modules/3.0.9/kernel/drivers/mmc/card/mmc_core.ko
cp host/*.ko /lib/modules/3.0.9/kernel/drivers/mmc/host/
cp core/*.ko /lib/modules/3.0.9/kernel/drivers/mmc/core/
cp card/*.ko /lib/modules/3.0.9/kernel/drivers/mmc/card
echo insmod
cd core
insmod mmc_core.ko
cd ../host
insmod sdhci.ko
insmod sdhci-pci.ko
cd ../card
insmod mmc_block.ko
insmod mmc_test.ko
insmod mmc_test.ko
cd ../mmc_app
insmod mmc_app.ko
echo AllisOk
modinfo sdhci
”
-chmod 775 run
-nano display
-pase “
cat /var/log/syslog
”
-./run
-./display
Thảm khảo thêm tài liệu về cách giao tiếp sdcard
https://www.sdcard.org/home/
Post lên cho mọi người tham khảo ai có cùng sở thích thì thảo luận thêm
Leave a comment:
-
Đọc MMC được là good rồi, cái này làm từ hồi cái thẻ nhớ có 16MB, lúc đó chỉ có Fat12 mới ghê chứ. Đọc và ghi file excel dữ liệu cân xà phòng cho P&G vui vãi. Bây giờ FAT32 thì làm vô tư nhỉ.
Leave a comment:
-
Thông tin trong trang web này là những điều cơ bản nhất về SD card. Với những kiến thức cơ bản này bạn chỉ có thể ghi hoặc đọc dữ liệu trong SD card giống như eeprom, còn ghi đọc theo FAT32 thì hok có được.Nguyên văn bởi locdoan Xem bài viếthi vong trang ưeb nay co the giup ban:Giao tiếp card MMC/SD
Leave a comment:
-
hi vong trang ưeb nay co the giup ban:http://www.hocavr.com/index.php/en/app/mmcLast edited by locdoan; 20-10-2011, 11:22.
Leave a comment:
-
Bác có thể nói chi tiết một chút được không a?bác có tài liệu gì về những thứ này ko cho e xin với?
Leave a comment:
-
Để đọc được first sector đòi hỏi người giúp bạn phải có hiểu biết sâu sắc về phần cứng, ngôn ngữ lập trình C đặc biệt là biết rõ con trỏ và structure, về FAT...Nguyên văn bởi lequyen Xem bài viếtlàm ơn chỉ giùm cách đọc sector o bằng c ,rồi cho hiển thi trên virtual terminal với.
Để được được first sector bạn cần có:
+ Phần cứng đã chính xác, nhất là phần logic giữa SD card và vi điều khiển.
+ Vi điều khiển khởi tạo được giao diện SPI, UART.
+ Có chương trình gửi lệnh sang SD card (Đòi hỏi bạn phải biết tập lệnh của SD card).
+ Có chương trình khởi tạo SD card.
+ Có chương trình đọc block.
Sau khi đọc được first sector, bạn chưa làm được gì hết. Bạn phải viết thêm chương trình đọc boot sector, có thêm thuật toán tìm root cluser, số byte trong mổi cluser. Sau đó bạn mới tìm được root entry, đọc thêm kiến thức về short file name và long file name nữa thì mới làm nên chuyện.
Leave a comment:
-
làm ơn chỉ giùm cách đọc sector o bằng c ,rồi cho hiển thi trên virtual terminal với.
Leave a comment:
Bài viết mới nhất
Collapse
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chào bác, gần Tết công việc bác bận lắm phải không?
Vâng mọi người đều thế cả.
Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 21:53 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietCảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau
https://www.instructables.com/DIY-1k...ge-Controller/-
Channel: Điện tử công suất
23-01-2026, 16:50 -
-
bởi Nexus 6PNhư tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V)
e cảm ơn-
Channel: Điện tử công suất
23-01-2026, 11:23 -
-
bởi mylinhattNếu bạn đang tìm một dòng máy phay đứng CNC vận hành ổn định, gia công tinh chuẩn và tối ưu năng suất, thì Kitamura là lựa chọn rất đáng cân nhắc. Dòng máy này có kết cấu trục chính theo phương thẳng đứng, bàn máy nằm ngang và vận hành tự động thông qua điều khiển bằng máy tính...
-
Channel: Điều khiển - Tự động hóa
23-01-2026, 11:02 -

Leave a comment: