Thông báo

Collapse
No announcement yet.

giao tiếp 24c64 (nhờ các cao thủ xem giúp)

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giao tiếp 24c64 (nhờ các cao thủ xem giúp)

    Tôi viết firmware để đọc ghi 24c64.
    Chạy mô phỏng bằng Proteus ngon lành..cho ra mạch thật không chạy..Thử đủ hết cách rồi..Đành nhờ các bác ngó giúp..
    Project viết bằng Keil C..Phần mô phỏng cho trong sim.DSN..
    Mạch thật thì i xì mô phỏng, vô cùng đơn giản..
    Gà..

  • #2
    Mình muốn giúp bạn lắm nhưng mình viết bằng asm cơ !
    Mạch nạp Little Programmer
    MSC-51,AVR,EEPROM ... etc

    Site Fukusei shop :

    Comment


    • #3
      Dù sao cũng cảm ơn người duy nhất đã reply (for nothing ).
      Tôi xin post lên đây 2 lỗi mà tôi gặp phải để các amateur như tôi không dính.
      - Tôi lười đi mua nên tận dụng 24c04 cắm thử..nghĩ con này kích thước 4k thì phải địa chỉ phải 2byte..Ai dè nó 1 byte..(hic hic)
      - Dây cắm thử lâu không dùng mà không thèm cạo, cứ thế cắm..(ặc ặc)
      Xin hết.
      Gà..

      Comment


      • #4
        Đúng rồi con 24c16 - 24c512 có địa chỉ 16 bit , còn con 24c00 -> 24c08 chỉ có 8 bit thôi !
        Mạch nạp Little Programmer
        MSC-51,AVR,EEPROM ... etc

        Site Fukusei shop :

        Comment


        • #5
          Nguyên văn bởi phucthinhel Xem bài viết
          Mình muốn giúp bạn lắm nhưng mình viết bằng asm cơ !
          bạn có thể send cho mình được không
          mình test hoài mà không chạy
          0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
          ||
          PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

          Comment


          • #6
            cho mình hỏi thêm chút là địa chỉ của 24c64 là bao nhieu nhỉ!
            mail của mình: vocam.h@gmail.com
            0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
            ||
            PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

            Comment


            • #7
              Địa chỉ của 24C64 phụ thuộc vào bạn thiết kế mạch thế nào. Nó có 3 chân chọn chíp là A0,A1,A2.
              Attached Files

              Comment


              • #8
                Code:
                sbit SDA = P3^3;
                sbit SCL = P3^2;
                /*	24C256	*/
                void Start() 
                {	
                	SCL=0;
                 	SDA=1;
                 	SCL=1;
                 	SDA=0;
                	SCL=0;
                }
                void Stop() 
                {
                 	SCL=0;
                 	SDA=0;
                 	SCL=1;
                 	SDA=1; 	
                }
                void Ack() 
                {
                	SDA=0;
                 	SCL=1;
                 	SCL=0;
                 	SDA=1;
                }
                void NoAck() 
                {	
                 	SDA=1;
                 	SCL=1;
                 	SCL=0; 	
                }
                bit TestAck() 
                {
                	bit ErrorBit;
                	SDA=1;
                	SCL=1;
                	ErrorBit=SDA;
                	SCL=0;
                	return(ErrorBit);
                }
                
                void Write8Bit(unsigned char input) 
                {
                	unsigned char temp;
                 	for(temp=8;temp!=0;temp--) 
                 	{
                  		SDA=(bit)(input&0x80);
                  		SCL=1;  		
                  		SCL=0;  		
                  		input=input<<1;  		
                	}
                }
                unsigned char Read8Bit() 
                {
                 	unsigned char temp,rbyte=0;
                 	for(temp=8;temp!=0;temp--) 
                 	{
                  		SCL=1;
                  		rbyte=rbyte<<1;
                  		rbyte=rbyte|((unsigned char)(SDA));   			 		
                  		SCL=0;
                 	}
                	return(rbyte);
                }
                
                /* 24C256 EEPROM */
                #define EEPWriteAddress 0xA0
                #define EEPReadAddress 0xA1
                bit Eep_ready()
                {
                	bit Error;
                	Start();
                 	Write8Bit(EEPWriteAddress);
                	Error=TestAck();
                	Stop();
                	return !Error;
                }
                void write_24C256(unsigned int address,unsigned char Wdata) 
                {
                	BYTE haddress, laddress;
                	laddress = (BYTE)address;
                	haddress = (BYTE)(address>>8);
                	while(!Eep_ready());
                 	Start();
                 	Write8Bit(EEPWriteAddress);
                	TestAck();
                 	Write8Bit(haddress);
                 	TestAck();
                	Write8Bit(laddress);
                 	TestAck();
                	Write8Bit(Wdata);
                	TestAck();	
                 	Stop();
                }
                BYTE read_24C256(unsigned int address) 
                { 	
                	BYTE rbyte;
                	BYTE haddress, laddress;
                	laddress = (BYTE)address;
                	haddress = (BYTE)(address>>8);
                	while(!Eep_ready());
                	Start();
                 	Write8Bit(EEPWriteAddress);
                 	TestAck();
                	Write8Bit(haddress);
                	TestAck();
                	Write8Bit(laddress);
                 	TestAck();
                	Start();
                	Write8Bit(EEPReadAddress);
                	TestAck();	
                 	rbyte=Read8Bit();
                	NoAck();
                	Stop();
                	return rbyte;
                }
                Code C cho bạn này...
                |

                Comment


                • #9
                  cảm ơn các pác nhiều
                  em đang lập trình dùng asm.
                  ic là 24c64,thứ tự truyền khi ghi có phải như này không :
                  start, 0a0h,ack,địa chỉ của rom muốn ghi dữ liệu vào(8 bit hay 16 bit??),ack,data,ack,stop
                  em có phần cứng rồi
                  test với 24c01 thì ok
                  nhưng với 24c64 thì không chạy
                  trong phần cứng của mình thì nối các chân a0,a1,a2 xuống mass,chân 7(wp) nối mass
                  chân scl và sda treo trở 4k7.
                  vậy là address device là 000 nhỉ?
                  mong các pác cho thêm chút kinh nghiệm để giao tiếp với 24c64
                  lần sau em sẽ post code của mình
                  mong được các pác chỉ giáo!?
                  0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
                  ||
                  PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

                  Comment


                  • #10
                    Như những post trước đã đề cập:
                    24c16 - 24c512 có địa chỉ 16 bit , 24c00 -> 24c08 chỉ có 8 bit.

                    Nếu sử dụng 24C16-24C512 thì bắt buộc phải gởi 2 byte (16bit) địa chỉ với thứ tự
                    là byte địa chỉ cao gởi trước, byte địa chỉ thấp gởi sau.

                    Nếu code của bạn đã chạy với 24C01 rồi thì sửa lại 1 chút như vậy khi sử dụng 24C64.
                    More friends more foods

                    Comment


                    • #11
                      thanks các pác rất nhiều
                      đúng là em chưa đọc kĩ phần địa chỉ của 24c64
                      chỉ cần truyền 16 bit địa chỉ là ok
                      mạch chạy ngon lành
                      cảm ơn mọi người nhiều nha!
                      chúc cả nhà vui
                      0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
                      ||
                      PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

                      Comment


                      • #12
                        Nguyên văn bởi kimhuynguyen Xem bài viết
                        Như những post trước đã đề cập:
                        24c16 - 24c512 có địa chỉ 16 bit , 24c00 -> 24c08 chỉ có 8 bit.

                        Nếu sử dụng 24C16-24C512 thì bắt buộc phải gởi 2 byte (16bit) địa chỉ với thứ tự
                        là byte địa chỉ cao gởi trước, byte địa chỉ thấp gởi sau.

                        Nếu code của bạn đã chạy với 24C01 rồi thì sửa lại 1 chút như vậy khi sử dụng 24C64.
                        các bác có thể cho em sơ đồ phần cứng với đc không

                        Comment


                        • #13
                          Nguyên văn bởi digan Xem bài viết
                          các bác có thể cho em sơ đồ phần cứng với đc không
                          Tham thảo tài liệu từ Atmel
                          Đừng quên là phải có 2 điện trở kéo lên.
                          Attached Files
                          More friends more foods

                          Comment


                          • #14
                            bác nào có đoạn chương trinh về giao tiếp 24c64 với 89c51( bằng asm ) post lên cho em xin với

                            Comment


                            • #15
                              24c64 và VDK

                              Nguyên văn bởi mylove304 Xem bài viết
                              bác nào có đoạn chương trinh về giao tiếp 24c64 với 89c51( bằng asm ) post lên cho em xin với
                              bạn xem phần cứng và phần mềm nhé !
                              Attached Files
                              0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
                              ||
                              PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X