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

Điện trở

Điện trở mắc song song Các điện trở cùng được nối với 2 điểm cố định thì được gọi là điện trở mắc song song. Nói cách khác các các giá trị điện thế của từng đầu tương ứng bằng nhau thì khi đó ta nói các điện trở được mắc song song với nhau. Khác với điện trở mắc nối tiếp ở bài trước thì khi mắc song song ta có các giá trị điện áp của các điện trở thành phần bằng nhau, và dòng điện bằng tổng các dòng điện thành phần. [latexpage] V R 1 = V R 2 = V R 3 = V A B V R 1 = V R 2 = V R 3 = V A B I T o n g = I 1 + I 2 + I 3 I T o n g = I 1 + I 2 + I 3 Cách tính điện trở tương đương trong mạch mắc song song. Khác với khi mắc nối tiếp là điện trở tương đương bằng tổng các điện trở thành phần. Đối với các điện trở mắc song song thì để tính điện trở tương đương ta phải cộng tất cả các nghịch đảo của điện trở thành phần, kết quả thu được ta nghịch đảo một lần nữa, giá trị này chính là điện trở tương đương của mạch nối song song. 1 R T o n g = 1 R 1 + 1 R 2 + 1 R 3 + … + 1 R n...

Trực thăng tự chế Furia

Với thiết kế ‘khá đơn giản’, trực thăng Furia là một lựa chọn hấp dẫn nếu bạn muốn tự chế tạo cho mình một chiếc CHƠI. Các bạn có thể tải bản vẽ theo đường link ở phía dưới. Các thông số kỹ thuật cơ bản: Đường kính cánh nâng: 5,8 m Đường kính cánh đuôi: 1,1 m Chiều cao: 2,1 m Chiều dài: 3,81 m Tải trọng tối đa: 318 kg Khối lượng rỗng: 158 kg Thể tích thùng chứa: 30 l Chỗ ngồi: 1 Tầm bay: 130 km Vận tốc cực đại: 150 km/h Vận tốc tiết kiệm nhiên liệu: 110 km/h Vận tốc thẳng đứng: 5,6 m/s Trần bay: 3800 m Động cơ: Rotax 65 mã lực Link download bản thiết kế:  Trực Thăng Furia