Chuyển đến nội dung chính

Kết nối thẻ SD với vi điều khiển AT89S52


Kết nối thẻ SD với  vi điều khiển AT89S52

Thẻ SD được ưa thích hơn do kích thước nhỏ, dung lượng bộ nhớ cao, bộ nhớ lưu trữ dài hạn, tiêu thụ năng lượng thấp và chi phí thấp. Vì vậy, sản phẩm bộ nhớ này được sử dụng trong hầu hết các sản phẩm điện tử tiêu dùng.
Nếu bạn muốn thực hiện một hệ thống thu thập dữ liệu mà nên lưu trữ một lượng lớn dữ liệu thì SD card là một sự lựa chọn rất tốt.

Thẻ SD hoạt động ở mức logic 3.3v TTL trong khi vi điều khiển hoạt động ở mức logic 5v CMOS. Do đó họ không thể kết nối trực tiếp. Nếu kết nối chắc chắn thẻ SD sẽ bị hỏng do chập cháy.
Để giải quyết vấn đề này chúng ta cần một mạch điện áp chuyển đổi cấp giữa thẻ SD và vi điều khiển 89s52. Chúng tôi có thể sử dụng chip chuyển đổi SN74LS4245 chuyên dụng để thực hiện chuyển đổi phân áp.
Như vậy phải xây dựng một bộ chuyển đổi mức điện áp và sau đó có thể làm cho nó với một bóng bán dẫn NPN đơn giản.

Kết nối 5V với microcontroller và 3.3v bên cạnh thẻ SD. Mạch này chỉ có thể được sử dụng để chuyển dữ liệu từ vi điều khiển sang thẻ SD. Và để chuyển dữ liệu từ thẻ SD sang vi điều khiển, bạn có thể kết nối trực tiếp các chân từ vi điều khiển 89S52 có thể đọc dữ liệu ở logic 3.3v.

Chế độ truyền thông
Có 2 giao thức truyền thông cho thẻ SD. Họ là chế độ SD và chế độ SPI. Chế độ SD là một chế độ đọc thẻ SD chuẩn. Nhưng nó cần một giao diện bộ điều khiển thẻ SD. Nhưng AT89S52 không có bộ điều khiển giao diện thẻ SD tích hợp. Vì vậy chúng tôi đi cho chế độ tiếp theo đó là chế độ SPI. Nó chỉ cần một dây 4 cho truyền thông dữ liệu. Cũng có rất nhiều microcontrollers bây giờ trên thị trường có  giao diện cổng SPI.
Mặc dù AT89S52 không có bộ điều khiển phần cứng SPI sẵn có, chúng tôi có thể sử dụng một bộ điều khiển SPI phần mềm để mô phỏng các tuyến bus SPI.
Ngoài ra AT89s52 chỉ có 256 bytes RAM trong , khi thẻ sd đọc và viết khối cần 512byts tại một thời điểm. Vì vậy, chúng ta cần một RAM bên ngoài nên được interfaced với vi điều khiển. Trong mạch này chúng tôi đang sử dụng 62256 IC có công suất 32KB.
Thiết kế phần mềm
Trong khi quyền lực trên thẻ sd sẽ ở chế độ SD bus. Gửi một lệnh đặt lại CMDO để vào chế độ SPI. Gửi dữ liệu vào thẻ SD được thực hiện bằng cách tạo ra một phần mềm SPI bus. Sử dụng mã sau để truyền dữ liệu sang thẻ SD.

sbit CS=P1^0;
sbit CLK= P1^1;
sbit DATaI=P1^2;
sbit DATaO=P1^3;
#define SD_Disable() CS=1 //Dừng cờ CS
#define SD_Enable() CS=0 //Mở cờ CS
unsigned char SPI_TransferByte(unsigned char val)
{
unsigned char BitCounter;
for(BitCounter=8; BiCounter!=0; BitCounter--)
{ CLK=0;
DATaI=0; // Bắt đầu ghi dữ liệu
if(val&0x80) DATaI=1;
val<<=1;
CLK=1;
if(DATaO)val|=1; // Đọc
}
CLK=0;
return val;
}
Initializing the SD card
unsigned char SD_Init(void)
{ unsigned char retry,temp;
unsigned char i;
for (i=0;i<0x0f;i++)
{ SPI_TransferByte(0xff); //delay
}
SD_Enable(); //Mở Chip select
SPI_TransferByte(SD_RESET); //gửi tín hiệu reset
SPI_TransferByte(0x00);
SPI_TransferByte(0x00);
SPI_TransferByte(0x00);
SPI_TransferByte(0x00);
SPI_TransferByte(0x95);
SPI_TransferByte(0xff);
SPI_TransferByte(0xff);
retry=0;
do{ temp=Write_Command_SD(SD_INIT,0);
//Send the initialization command
retry++;
if(retry==100) //lặp 100 lần
{SD_Disable(); //đóng chip select
return(INIT_CMD1_ERROR);
//Nếu sảy ra lỗi thì hiển thị lỗi và quay lại
}
}while(temp!=0);
SD_Disable(); //Đóng  card
return(TRUE); //Lặp đến khi kết thúc
}

***********************************************************

Đọc và Viết khối dữ liệu
Sau khi hoàn thành việc khởi tạo thẻ SD, chúng tôi có thể thực hiện các thao tác đọc và ghi.
Chế độ SPI Bus hỗ trợ hoạt động ghi một khối (CMD24) và đa khối (CMD25). Multi-block hoạt động là viết ra bắt đầu từ vị trí quy định, cho đến khi thẻ SD trước khi nhận được một lệnh ngừng CMD12 để dừng lại.
Một khối duy nhất viết hoạt động của chiều dài khối dữ liệu chỉ 512 byte.
Để đọc thẻ SD CMD17 được sử dụng và thẻ SD sẽ trả lời với 0XFE theo sau là 512byte dữ liệu và 2 byte cuối cùng là mã xác minh CRC.

Nhận xét

Bài đăng phổ biến từ blog này

Cánh tay sắt T800 của kẻ hủy diệt

Cánh tay là một sản phẩm tinh tế có thể hoạt động trong môi trường độc hại, cũng như thay thế cho cánh tay của người khuyết tât. Đây cũng là đột phá từ Kỹ thuật đến mỹ thuật để mô hình hóa 1 sản phẩm truyền hình được nhiều người biết đến. Dưới đây là tất cả các bản vẽ để thiết kế hoàn chỉnh cánh tay T800 này.  Các bạn có thể dưa vào đây để chế tạo lại. Chúc các bạn may mắn !                                                                                         Nguồn  http://blog.heliumware.com

152 lệnh tắt cơ bản trong Auto Cad

1. 3A - 3DARRAY Sao chép thành dãy trong 3D 2. 3DO -3DORBIT Xoay đối tượng trong không gian 3D 3. 3F - 3DFACE Tạo mặt 3D 4. 3P - 3DPOLY Vẽ đường PLine không gian 3 chiều A 5. A - ARC Vẽ cung tròn 7. AA - AREA Tính diện tích và chu vi 1 8. AL - ALIGN Di chuyển, xoay, scale 10. AR - ARRAY Sao chép đối tượng thành dãy trong 2D 11. ATT - ATTDEF Định nghĩa thuộc tính 13. ATE - ATTEDIT Hiệu chỉnh thuộc tính của Block B  14. B - BLOCK Tạo Block 15. BO - BOUNDARY Tạo đa tuyến kín 16. BR - BREAK Xén 1 phần đoạn thẳng giữa 2 điểm chọn C 17. C - CIRCLE Vẽ đường tròn 18. CH - PROPERTIES Hiệu chỉnh tính chất của đối tượng 20. CHA - ChaMFER Vát mép các cạnh 22. CO, CP - COPY Sao chép đối tượng D 23. D - DIMSTYLE Tạo kiểu kích thước 24. DAL - DIMALIGNED Ghi kích thước xiên 25. DAN - DIMANGULAR Ghi kích thước góc 26. DBA - DIMBASELINE Ghi kích thước song song 28. DCO - DIMCONTINUE Ghi kích thước nối tiếp 29. DDI - DIMDIAMETER Ghi kích thước đường

Deep Web & Dark Web

Deep Web tạm được dịch là: Web chìm, mạng chìm, web ẩn hay Invisible Web, Under Net, Hiden Web … là các trang chứa nội dung được dấu đi và không thuộc về Web nổi hay còn gọi là Surface web – các trang web mà chúng ta đang sử dụng thông thường như .com, .vn , .org Những nội dung mà chúng ta tiếp xúc hàng ngày như : Facebook, Google, youtube hay zing… gọi là Surface Web. ( Web nổi ) Deep Web là những gì chúng ta Không thể tìm thấy bằng các bộ máy tìm kiếm thông thường như Google, Bing, Ask… Tại sao ? Đơn giản vì những trang Deep Web bị ẩn đi, bạn sẽ phải cần mật khẩu hoặc 1 trình duyệt chuyên được dùng để truy cập deep web gọi là Tor để truy cập vào Deep Web… Deep Web vẫn có thể truy cập vào bình thường bằng Google chrome, firefox, cốc cốc mà không cần dùng đến Tor với điều kiện là sau “.onion” ta phải “.city” “.cab” hoặc “.to” DarkWeb là 1 môi trường đảm bảo tính nặc danh của người tham gia. Những nội dung bạn Upload lên hay tải về thường không được kiểm soát bởi bất kỳ ai ha