Thông báo

Collapse
No announcement yet.

SD card và MMC card

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • ga_cong
    replied
    ngày trước có làm thử cái này mà làm mãi không ra . bỏ luôn

    Leave a comment:


  • lethjen113
    replied
    /*----------------------------------------------------------------------*/
    /* Foolproof FatFs sample project for AVR (C)ChaN, 2013 */
    /*----------------------------------------------------------------------*/

    #include <avr/io.h> /* Device specific declarations */
    #include "ff.h" /* Declarations of FatFs API */

    FATFS FatFs; /* FatFs work area needed for each volume */
    FIL Fil; /* File object needed for each open file */


    int main (void)
    {
    UINT bw;


    f_mount(&FatFs, "", 0); /* Give a work area to the default drive */

    if (f_open(&Fil, "newfile.txt", FA_WRITE | FA_CREATE_ALWAYS) == FR_OK) { /* Create a file */

    f_write(&Fil, "It works!\r\n", 11, &bw); /* Write data to the file */

    f_close(&Fil); /* Close the file */

    if (bw == 11) { /* Lights green LED if data written well */
    DDRB |= 0x10; PORTB |= 0x10; /* Set PB4 high */
    }
    }

    for ( ;
    }



    /*---------------------------------------------------------*/
    /* User Provided RTC Function called by FatFs module */

    DWORD get_fattime (void)
    {
    /* Returns current time packed into a DWORD variable */
    return ((DWORD)(2013 - 1980) << 25) /* Year 2013 */
    | ((DWORD)7 << 21) /* Month 7 */
    | ((DWORD)28 << 16) /* Mday 28 */
    | ((DWORD)0 << 11) /* Hour 0 */
    | ((DWORD)0 << 5) /* Min 0 */
    | ((DWORD)0 >> 1); /* Sec 0 */
    }



    // Các bác xem hộ , sao bị gì mà lỗi hoài vậy ? Em hong biết đường sữ luôn . Sắp báo cáo rồi mòa định dạng chưa ra nữa .

    Leave a comment:


  • HoangHuan
    replied
    Các bạn ơi, cho mình hỏi tý nha. Số là mình đang làm một thiết bị lưu trữ dữ liệu log của hệ thống, realtime. Dữ liệu log này được lưu trữ vào thẻ nhớ SD để phục vụ kiểm tra, bảo trì. Nhưng mình có một trục trặc đó là thẻ nhớ thường xuyên bị hỏng, chạy liên tục tầm tầm 25 ngày là hỏng thôi, và hỏng rất nhiều thẻ rồi nên mình cũng lọai trừ khả năng chất lượng thẻ xấu. Mình muốn hỏi là nguyên nhân nào có thể gây hỏng thẻ nhớ (micro SD) ? Để mình có hướng khắc phục ?
    Điều kiện hoạt động của thiết bị cũng hơi khắc nghiệt tí:
    - Nhiệt độ tầm tầm 60 độ.
    - Dùng chung nguồn với hệ thống motor khởi động. Nhưng mạch mình có mạch lọc nhiễu rồi, nên chắc nhiễu không vào được.
    - Độ ẩm bình thường ( ngoài trời sao thì trong thiết bị như vậy, không có khác gì hết).
    - Môi trường ít bụi ( thiết bị bỏ vào hộp nên không sợ bụi).
    - MCU ARM, truy xuất thẻ nhớ qua module MCI, thư viện FAT32. Ghi dữ liệu vào thẻ nhớ tuần tự, tại một thời diểm chỉ doc/ghi 1 file duy nhất.

    Mình cũng nói thêm là các thẻ nhớ micro SD mình đã thử kiểm tra đọc ghi liên tục trong 7 ngày, truy xuất đọc/ghi trên 10 triệu lần nhưng vẫn không hỏng. Cũng bài kiểm tra này nhưng bỏ vào lò nung 60 độ cũng không hề hấn gì.

    Nên mình muốn hỏi các bạn xem có bạn nào gặp trục trặc giống mình không ? Cũng như hướng giải quyết của vấn đề này ?

    Xin Cảm Ơn.

    Leave a comment:


  • ga_cong
    replied
    em làm giao tiếp thẻ nhớ dùng thư viện FATfs theo đúng thế này với ATmega32 mà không được.
    Trong makefile em chỉ thay đổi có atmega644 thành atmega32 thôi
    Click image for larger version

Name:	foolproof.jpg
Views:	1
Size:	27.1 KB
ID:	1396069
    Attached Files

    Leave a comment:


  • ga_cong
    replied
    có anh em nào làm hoàn chỉnh 1 dự án với FAtfs và atmega32 có thể up project lên để tham khảo với không ?
    thank

    Leave a comment:


  • quanghuy_125
    replied
    Các bác giúp em với!!! Em dùng MikroC PIC để giao tiếp với thể MMC SD card nhưng em không biết lệnh nào để liệt kê Folder và File của thể MMC vậy mong các bác giúp với ạ?

    Leave a comment:


  • taingay12332
    replied
    Cảm ơn các bạn

    Leave a comment:


  • quoctuan10
    replied
    mmc card

    Leave a comment:


  • quoctuan10
    replied
    Tặng mọi người mạch giao tiếp thẻ nhớ dùng msp430. Ở đây là file proteus, mạch thật dùng kit msp430f5510 mini. File mô phổng thì các chân SPI cần nối vs Dao Động ký mới chạy, còn mạch thật không cần lạ ghê. Sau khi mở file proteus, các bạn tạo 1 file txt rồi đổi đuôi thành .mmc, sau đó click lên thẻ nhớ, chọn đường dẫn đến file này. Web tham khảo: Giao tiếp card MMC/SD. mmc card

    Leave a comment:


  • chikichita
    replied
    đang tìm hiểu vấn đề này
    Last edited by chikichita; 21-10-2013, 12:49.

    Leave a comment:


  • trathuoc
    replied
    đang bí quá,có bác nào rành về việc lưu file tên dài vào thẻ nhớ định dạng FAT16 ko nhỉ,chỉ hộ e với

    Leave a comment:


  • trathuoc
    replied
    Thank bác nhé,đúng là nhọc thật,để tui lại đọc tiếp,có vấn đề lại nhờ các bác giúp tiếp

    Leave a comment:


  • vuxuansyhut
    replied
    Nguyên văn bởi trathuoc Xem bài viết
    có bác nào giúp e với,đang vướng phần này mà chưa tìm đc thông tin nào
    Gửi bạn tài liệu này hy vọng có ích. Sao bạn không lưu theo định dạng FAT32 để có thể mở rộng dung lượng thẻ. Vấn đề tên file dài với định dạng FAT32 bạn có thể tham khảo tại trang 28 của tài liệu.
    Attached Files

    Leave a comment:


  • trathuoc
    replied
    có bác nào giúp e với,đang vướng phần này mà chưa tìm đc thông tin nào

    Leave a comment:


  • trathuoc
    replied
    Nguyên văn bởi yankazaz Xem bài viết
    - Về FAT, tôi đã giới thiệu qua ở những bài trên, để hiểu một cách tốt nhất, bạn nên vào MSDN của microsoft, in ra các bảng sau:
    + Partition Boot Record
    + Master Boot Record
    + FAT entry
    + Root directory entry

    Những entry này thực chất là những sector có vị trí đặc biệt trên MMC/SD. Nhiệm vụ của chúng ta là sử dụng hàm đọc sector, bắt đầu đọc từ Master Root Record để lấy thông tin cho việc sử lý. Những thông tin chúng ta cần đều nằm trong 4 bảng nói trên. Ở đây có một điều lưu ý các bạn:
    + Tất cả MBR trên mọi thẻ nhớ đều bắt đầu từ sector0 - tức sector đầu tiên
    + Thông thường, đối với những thẻ nhớ có dung lượng nhỏ, MBR thường không có khi bạn build image bằng các công cụ như disk explorer, lý do: dung lượng nhỏ quá, và không cần thiết đến MBR để chia thẻ làm 2 -3 partition làm gì cả. (đây là thông tin tôi hỏi admin của avrfreaks.net)

    + Tuy nhiên, theo thực tế thì thẻ 32Mb vẫn có MBR. Và tôi vẫn xử lý với thẻ 32Mb cũng như 512Mb theo hướng có MBR và ok với cả 2. Do vậy, khi mô phỏng bạn sẽ làm với sector0 là PBR, còn thực tế thì phải có hàm MBR ở sector0.

    Tôi kết thúc ở đây, tất nhiên là còn thiếu nhiều chỗ, và vẫn với một câu là: nếu bạn thích khám phá thì hãy viết code mới. Nếu có thời gian và công sức + hardware + luck thì sẽ thành công (chưa nói đến chuyện tối ưu code). Còn nếu không, bạn có thể hiểu source code về FAT, mà theo tôi biết là có rất nhiều, rất nhiều - kể cả một số project dự thi contest cũng sử dụng nó - FatFs. Tuy nhiên, nói như thế không có nghĩa là nó hoàn hảo. Tôi chỉ xin nêu một vài ví dụ:

    - Người sử dụng đút thẻ nhớ 512Mb với 10Mb free, bạn sẽ xử lý thế nào? Ghi tiếp, hay yêu cầu format, hay báo lỗi?
    - Trong khi ghi, đột nhiên bị mất điện, vậy khi cấp điện bạn sẽ ghi lại từ đầu, hay ghi tiếp. Làm thế nào để biết điểm mình đang ghi ở chỗ nào? Loại trừ việc dùng battery, do battery cũng sẽ hết?
    Còn nhiều điều phát sinh nữa, đặc biệt trong quá trình ghi. Và tôi hy vọng mọi người sẽ tiếp tục theo dõi & thảo luận thread này. Về thông tin tôi nêu ra trong bài, thật sự là nó ở rất nhiều nguồn và datasheet của nhiều hãng, không hề sao chép ở bất cứ đâu. Các bạn muốn tìm về nguồn cội tôi khuyên nên search FatFS và vào trang đầu tiên (sr do kô nhớ).
    bác cho e hỏi vấn đề này với:
    -mỗi lần ghi vào thẻ thì phải ghi 1sector, ở đây là thẻ định dạng FAT16, có 512byte/sector. vậy khi ta ghi vào thông tin về file ở vùng Root directory entry và FAT entry như thế nào.
    Khi đó có phải đọc cả sector đó cho vào bộ đệm, rồi mới thay đổi nội dung của những địa chỉ byte mà chứa thông tin file đó, sau đó lại ghi lại toàn bộ sector đó ko. Nếu như vậy đồng nghĩa với việc ta phải ghi lại toàn bộ thông tin các file đã có sẵn trong thẻ được lưu trữ ở sector đó ah.

    - và phần lưu tên file hay folder ở vùng Root directory entry có 11byte, như vậy nếu tên file >11byte thì ta ghi thế nào nhỉ.

    Leave a comment:

Về tác giả

Collapse

atmega8 Tìm hiểu thêm về atmega8

Bài viết mới nhất

Collapse

Đang tải...
X