tiện thể nói về thẻ nhớ SD và MMC mấy bác cho em hỏi em co cái ổ cứng của máy điện thoại n90,các bác có cách nào mà khi em tháo ổ cứng ra em đọc dữ liệu như thẻ nhớ SD và MMC được không.Chân thành cảm ơn.
Thông báo
Collapse
No announcement yet.
SD card và MMC card
Collapse
This is a sticky topic.
X
X
-
Mình có viết một thư viện chuẩn dùng cho giao tiếp thẻ nhớ MMC/SD (định dạng FAT32). Thư viện này có đầy đủ các hàm đọc/ghi/xóa/tạo mới/liệt kê... các file và thư mục. Mình post bản demo lên để giới thiệu. Các bạn cho ý kiến nháAttached Files
Comment
-
Nguyên văn bởi goldenstar Xem bài viếtmình định dùng MMC để lưu trữ dữ liệu cho bảng led ma trận, không biết có ổn không nhỉ, có giới hạn về số lần truy xuất thẻ không các bác ?
Comment
-
Nguyên văn bởi goldenstar Xem bài viếtmình định dùng MMC để lưu trữ dữ liệu cho bảng led ma trận, không biết có ổn không nhỉ, có giới hạn về số lần truy xuất thẻ không các bác ?
email:mahaco@fpt.vn
Comment
-
Demo MMC SD FAT32 Library by bvhoang (full read, write included)
Cách đây một năm, khi thấy mọi người thắc mắc về việc dùng thẻ nhớ SD MMC và vệc đọc ghi tệp với định dạng FAT32, mình có tranh thủ viết một thư viện để làm việc này. Mình đã test chạy ngon lành trên phần cứng cũng như mô phỏng trên proteus với một số họ uC như MCS51, AVR, ARM7. Mình post lên bản demo mình soạn cho ATMEGA32 (dịch với CodeVisionAVR). Các bạn xem xem có dùng được không nhá. Chương trình thiết lập một giao diện console, giống DOS và UNIX, để quản lý tệp và thư mục. Các bạn gõ các dòng lệnh vào cửa sổ terminal và test thử nhá.
ví dụ:
l,0,/<enter>
liệt kê thư mục gốc (list root)
o,rw,/info.txt<enter>
mở tệp info.txt trong thư mục gốc
r,0,20<enter>
đọc 20 byte trong tệp vừa mở (có định danh số 0)
p,0,10,S<enter>
đặt vị trí con trỏ trong tệp (có đinh danh số 0) đến vị trí thứ 10 kể từ đầu tệp (S= Start, C= Current nha)
w,0,13<enter>
ghi 13 byte vào tệp 0
c,0<enter>
đóng tệp 0
o,rwc,/Hoang/abcd.efg<enter>
mở tệp abcd.efg trong thư mục Hoang và tạo mới nếu tệp không tồn tại
f<enter>
xem firmware version
h<enter>
xem trợ giúp về tập lệnh
................Attached Files
Comment
-
Thư viện của mình xử lý việc đọc ghi tệp trên thẻ nhớ khá nhanh. Mình có thử với con ARM7 (AT91SAM7S256), clock khoảng 50MHz (dùng PLLRC), file kích thước khoảng 4MB, thì tốc độ đọc file là khoảng 400kbit/s, còn tốc độ ghi file là khoảng 100kbit/s. Với tốc độ này thì chơi nhạc, ghi âm thoải mái!
Chương trình mình post lên kia là demo về việc chuyển đổi giao tiếp thẻ nhớ (FAT32) sang rs232 thôi. Tất nhiên cái demo này không phù hợp với ghi âm hoặc phát tiếng vì tốc độ chậm, chỉ phù hợp với việc thu thập nhiệt độ, độ ẩm, tọa độ GPS,... thôi.
Comment
-
Nguyên văn bởi sotuoi Xem bài viếtBạn có thể chỉ mình cách tạo file ảnh của thẻ nhớ để mo phỏng không? Mô phỏng trên proteus. Mình muốn tạo thẻ nhớ 512Mbyte thì sửa thế nào?
Tất nhiên bạn có thể tạo ảnh lên đến 512M với các phần mềm trên. Tuy nhiên việc tạo ra dung lượng lớn như thế là không cần thiết, tốn bộ nhớ và mất thời gian đợi. Bạn cần phải biết một điều là những thông tin quan trọng về cấu trúc hệ thống FAT(32) đều nằm ở những sector đầu tiên trên thẻ. Với thẻ nhớ khoảng 512M, bạn chỉ cần tạo file ảnh bằng cách lấy khoảng 2M đầu tiên là đủ. Bạn xem cái ví dụ của mình đấy, thẻ đó là 512M, nhưng file ảnh chỉ khoảng hơn 1M.
Các bước để tạo một file ảnh bé mà đầy đủ thông tin của một thẻ nhớ lớn như sau:
1. Format thẻ với định dạng đang nghiên cứu
2. Trên thẻ mới Format, hãy tạo ra một số thư mục và một số tệp nhằm mục đích tạo ảnh cho nó tự nhiên.
3. Dùng Winhex tạo ảnh với kích thước khoảng 2M
Chúc may mắn nhá
Comment
-
Các anh và các bạn cho em hỏi : Em cũng đang làm đồ án về SD card, là " Trình chiếu hình ảnh từ SD card lên monitor, sử dụng IP Nios II ( trên kit DE2)", nhưng hiện tại em không biết làm thế nào cả, tự nhiên đang tìm hiểu về tập lệnh của NiosII thì đùng một cái tuần trước ông thấy kêu làm tiếp phần trên, mà em thì không hiểu gì về SD Card cả, hạn nộp đồ án thì sắp đến rồi, mong các anh và các bạn giúp đỡ. Em biết đây là topic về AVR , tự nhiên hỏi về NiosII thì cũng kì, nhưng mà bí quá không biết làm sao, mong mọi người bỏ qua cho.
Comment
-
Giới thiệu mọi người một module giao tiếp thẻ nhớ MMC/SD hỗ trợ FAT32 đã hoàn chỉnh của tôi. Module này hỗ trợ hầu hết các chức năng về đọc, ghi, xóa, tạo mới,... với tệp và thư mục lưu trong thẻ nhớ định dạng FAT32.
Đặc biệt module này làm việc với dải điện áp rộng, nuôi bằng 3.3V hoặc 5V đều được nên có thể đầu nối trực tiếp với VĐK chạy 3.3V hoặc 5V mà không cần thông qua bất kì một mạch chuyển đổi điện áp nào cả.
Bạn có thể tham khảo và so sánh với các sản phẩm cùng loại của các hãng khác như
- uMMC của Rogue Robotics (Canada)
- uALFAT của GhiElectronics (USA)
- Serial MMC/SD của Cubloc (Korea)
-----------------------------------------------------------------------------------------------
Mọi chi tiết về sản phẩm xin liên hệ theo email: bvhoang42@yahoo.comLast edited by bvhoang; 11-06-2009, 23:28.
Comment
-
Nguyên văn bởi bvhoang Xem bài viếtGiới thiệu mọi người một module giao tiếp thẻ nhớ MMC/SD hỗ trợ FAT32 đã hoàn chỉnh của tôi. Module này hỗ trợ hầu hết các chức năng về đọc, ghi, xóa, tạo mới,... với tệp và thư mục lưu trong thẻ nhớ định dạng FAT32.
Đặc biệt module này làm việc với dải điện áp rộng, nuôi bằng 3.3V hoặc 5V đều được nên có thể đầu nối trực tiếp với VĐK chạy 3.3V hoặc 5V mà không cần thông qua bất kì một mạch chuyển đổi điện áp nào cả.
Bạn có thể tham khảo và so sánh với các sản phẩm cùng loại của các hãng khác như
- uMMC của Rogue Robotics (Canada)
- uALFAT của GhiElectronics (USA)
- Serial MMC/SD của Cubloc (Korea)
-----------------------------------------------------------------------------------------------
Mọi chi tiết về sản phẩm xin liên hệ theo email: bvhoang42@yahoo.com
Comment
-
Nguyên văn bởi yankazaz Xem bài viết- Tôi xin tiếp với hàm ghi sector MMC
- Thao tác ghi sector cho MMC/SD cũng tương tự như đọc sector, đó là:
+ Nhập sector cần ghi vào 4 thanh ghi
+ Gọi hàm shift sector để chuyển number sector - number byte
+ Gửi lệnh CMD 0x58, 4byte frame, 1byte CRC = 0xFE
Ở đoạn này, thông thường như hàm read thì chúng ta sẽ gửi tiếp 0xFF qua SPI để đọc byte response, check giá trị và kết thúc hàm. Nhưng đối với hàm ghi, chúng ta sẽ gửi 0xFF để check response. Giả sử response này là A, chúng ta sẽ and A với 0x1F (chỉ check 5bit thấp của response) và so sánh với 0x05. Nếu khác, có nghĩa là lệnh ghi bị lỗi (error)
+ Sau khi check response này, chúng ta tiếp tục gửi 0xFF và check như đối với hàm read (if (response !=0x00) { call error subroutine})
Về cơ bản, hàm giao tiếp với MMC/SD không khó khăn (thực sự không khó nếu bạn thực hiện việc chuyển sector - byte và check response đúng). Các bạn (nếu không có UART để debug), có thể dễ dàng sử dụng LCD16x2 sau từng command để xem command nào lỗi. Ví dụ: sau khi send command 0x00, ta sẽ send 0-OK lên LCD. Nếu không thấy có cái gì trên LCD, (do không có JTAG và debug tool, mọi thứ chạy trong uC là tối tăm như đêm chị Dậu) - bạn nên check lại hàm send command, read sector và write sector.
Mọi thứ sẽ bắt đầu khi chúng ta đọc - ghi FAT.
Comment
-
mình mới viết tới chỗ khởi tạo MMC vừa tới phần gởi CMD0 là nó reponse 00 nghĩa là bị lỗi ,mình làm như bác yankazaz chỉ
.CSEG
.INCLUDE"M16DEF.INC"
.ORG 0X000
RJMP BATDAU
.ORG 0X020
BATDAU:
.equ TCAR=0X60
.DEF TEMP=R17
;CLEAR RAM DATAS
LDI ZH,HIGH(TCAR)
LDI ZL,LOW(TCAR)
LDI TEMP,0
CLEAR_RAM_LOOP:
ST Z+,TEMP
CPI ZH,HIGH(RAMEND)
BRNE CLEAR_RAM_LOOP
CPI ZL,LOW(RAMEND)
BRNE CLEAR_RAM_LOOP
LDI TEMP,LOW(RAMEND)
OUT SPL,TEMP
LDI TEMP,HIGH(RAMEND)
OUT SPH,TEMP
KHOITAOSPI:
CALL KHOITAOSPI1
CALL SPI_255_transfer
KHOITAOMMC:
CBI PORTB,2
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
SBI PORTB,2 ;SET SS
CALL SPI_zero_transfer
CALL SPI_zero_transfer
GUI_CMD0:
LDI R16,0X40
CALL SPI_TRANSFER
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
CALL SPI_zero_transfer
LDI R16,0X95
CALL SPI_TRANSFER
CPI R16,0X01
BRNE GUI_CMD0
CALL HIEN_THI_1
LAPLAI:
RJMP LAPLAI
KHOITAOSPI1:
LDI R16,0XBF
OUT DDRB,R16;THANH GHI B XUAT DU LIEU
LDI R17,0X52
OUT SPCR,R17
RET
SPI_255_transfer:
SER R16;THANH GHI R16 CHUA FF
RJMP SPI_transfer
SPI_zero_transfer:
CLR R16
RJMP SPI_transfer
SPI_transfer:
OUT SPDR,R16;CHEP DATA R16 VAO THANH GHI SPDR
wait_SPI_transfer:
SBIS SPSR,SPIF;BIT SPIF=1 THI BO QUA LENH KE;bit SPIF la bit 7 cua thanh ghi SPSR
RJMP wait_SPI_transfer
IN R16, SPDR;THANH GHI R16 SE CHUA DATA TU THE NHO
RET
HIEN_THI_1:
LDI R18,0XFF
OUT DDRA,R18
LDI R19,0X0F
OUT PORTA,R19
RET
BÁC NÀO CHỈ MÌNH CHỖ SAI MÌNH CẢM ƠN NHIỀU NHIỀULast edited by chehatsen; 18-11-2009, 15:24. Lý do: bác nào chỉ giùm mình chỗ viết sai ,cảm ơn nhiều nhiều
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Mua anten ở đâu?bởi tmcodonAnten bạn thu nguồn sóng nào vậy? Nếu xem truyền hình thì giờ k làm đc anten nữa rồi
-
Channel: Ăng ten và truyền sóng
16-11-2024, 15:34 -
-
Trả lời cho Mạch nguồn đôi dùng 7812 và 7912bởi tmcodonThank bác nhá. Tìm mãi mới thấy. Giờ vọc đã xem sao...
-
Channel: Hỗ trợ học tập
16-11-2024, 10:39 -
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
15-11-2024, 08:27 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment