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

  • #61
    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.

    Comment


    • #62
      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


      • #63
        mì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


        • #64
          Nguyên văn bởi goldenstar Xem bài viết
          mì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 ?
          Thoải mái, ghi vào thì tớ không rõ được nhiêu nhưng đọc ra thì thoải mái, cả năm chạy liên tục cũng không sao.

          Comment


          • #65
            Nguyên văn bởi goldenstar Xem bài viết
            mì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 ?
            Ghi vào chỉ được hữu hạn lần, nhưng ít nhất cũng 100000 lần -> thoải mái cho nạp nội dung bảng chữ. Nhưng nếu nó dùng để làm Ram màn hình - gia công liên tục các dữ liệu thì coi chừng. Đọc ra thì như phamthaihoa nói: thoải mái

            email:mahaco@fpt.vn

            Comment


            • #66
              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
              Last edited by bvhoang; 24-03-2009, 12:06. Lý do: Update MMC SD Demo

              Comment


              • #67
                Không biết chương trình của ban tốc độ đọc ghi thế nào. Nếu phát môt bài hát hay la thu âm ghi vào với số mẩu 20kbyte/s thí có đáp ứng kịp không?

                Comment


                • #68
                  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


                  • #69
                    Bạ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?

                    Comment


                    • #70
                      Nguyên văn bởi sotuoi Xem bài viết
                      Bạ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ạo ảnh của thẻ nhớ, bạn có dùng Winhex (hay nhất!, không free nhưng có *****), winImage (không tốt lắm, không free), hoặc HxD (không tốt lắm vì free).
                      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


                      • #71
                        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


                        • #72
                          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.com
                          Attached Files
                          Last edited by bvhoang; 11-06-2009, 23:28.

                          Comment


                          • #73
                            Nguyên văn bởi bvhoang Xem bài viết
                            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.com
                            Chào bạn bvhoang, mình thấy module FM32 của bạn rất hay và mình cũng đang cần một cái để thử giao tiếp với MMC/SD. Bạn bán bao nhiêu một bộ, mình đã gửi mail cho bạn mà không thấy reply, mình ở Hà Nội.

                            Comment


                            • #74
                              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.
                              Xin chào tất cả mọi người và chào riêng bạn yankazaz để cảm ơn bạn về những thông tin rất hữu ích cho những ai muốn tìm hiểu giao tiếp MMC và UC. Mình cũng đang tìm hiểu về MMC giao tiếp AVR, theo hướng dẫn của bạn yankazaz mình đã khởi tạo MMC thành công nhưng mình gặp trục chặc khi ghi data vào 1 block. Mình không hiẻu quy trình check respond 0x05 như thế nào. Bạn có thể post một đoạn chương trình đã chạy để ghi data vào 1 block của MMC để mình học hỏi được không? Thanks bạn rất nhiều

                              Comment


                              • #75
                                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ỀU
                                Last 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

                                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