View Single Post
Old 19-10-2006, 04:30 AM   #4
FFGmember
Nhập môn đệ tử
 
Tham gia ngày: Feb 2006
Bài gửi: 4
:
Project 1: Kết nối PIC 16F877A với EEPROM 25AA640.

Sorry mọi người là tối hôm nay em tìm mỏi cả mắt mà không thấy bất cử một thằng EEPROM nào có chuẩn giao tiếp SPI, cho nên ở Project này em chỉ xin được làm chay thôi, ai có điều kiện mạch thật hoặc có trình giả lập tốt thì xin test + đưa ra ý kiến cho em phát.

SPI là một chuẩn dữ liệu giao tiếp đơn giản nhất có tốc độ lớn nhất, tuy nhiên có độ an toàn không cao khi mà dây clock bị ảnh hưởng => dẫn đến ảnh hưởng đến toàn hệ thống.
Với PIC16F877A thì có 3 chân cho chế độ SPI đó là: RC3( clock ), RC4 ( SDI ), RC5 ( SD0) , còn chân select chíp thì lấy bất cứ một chân I/O thông thường.

Cơ chế SPI là quá trình dịch bít qua lại giữa Slave và Master qua 2 đường đây SDI, SDO. Ứng với mỗi IC khác nhau lại cho một chuẩn truyền tiếp riêng để điều khiển quá trình truyền. Với EEPROM 25AA640 cơ chế đó là:

Đọc byte:
Truyền lệnh 0000011 tiếp đến là truyền địa chỉ 16 byte, và đọc dữ liệu . Khi chân CS lên 1 => cũng là lúc báo hiệu kết thúc đường truyền.






Write byte
Viết lệnh command: 00000010, sau đó truyền địa chỉ 16 bit, rồi bắt đầu truyền dữ liệu. Quá trình truyền kết thức khi CS = 1





PHP Code:
void main()
{
// init ban dau
   
OUTPUT_LOW(PIN_C2);       
   
setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4);
   
OUTPUT_HIGH(PIN_C2); 
   
delay(5);   
   
// truyen du lieu co gia tri 0x55 xuong eeprom tai dia chi 0x0004    
   
OUTPUT_LOW(PIN_C2);      
   
spi_write(0x02);        // command = 0x02 -> ghi du lieu
   
spi_write(0x00);
   
spi_write(0x04);
   
wpi_write(0x55);
   
OUTPUT_HIGH(PIN_C2); 
   
delay(5);
   
// Doc du leu
   
OUTPUT_LOW(PIN_C2);      
   
spi_write(0x03);       // command -= 0x03 -> doc du lieu
   
spi_write(0x00);
   
spi_write(0x04);
   
wpi_read(buff);
   
OUTPUT_HIGH(PORTD); 
   
delay(5);   
   
   while(
1);


Code trên hoàn toàn chỉ là ý tưởng như thế, ai có điều kiện hoặc đã làm rồi xin cho đôi lời.
Lâu lâu ko đựoc làm đến pic , nay còn được làm trên CCS nữa thấy thật thoải mái.

See Ua!
__________________
Răng ơi nhe ra nào …..

thay đổi nội dung bởi: FFGmember, 19-10-2006 lúc 04:34 AM.
FFGmember vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn