• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users




(1) 2 »


Re: 讀取eeprom問題.....非常感謝各位
#14
中級會員
中級會員


查看用戶資訊
您好

經過一番test後,已可順利寫、讀,感謝所有提供建言的

大大,m(_ _)m,最後想請教一下,eeprom記憶體內容

到多少才需像24LC256醬子,address byte 需改成hi btye和

low byte呢?


發表於: 2004/10/19 12:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#13
中級會員
中級會員


查看用戶資訊
您好

對於各位大大的建議,小弟一定會去好好研究一番。很感

謝您們的回答,謝謝。

發表於: 2004/10/15 22:22
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#12
版主
版主


查看用戶資訊
有沒有用示波器量過波形,EEPROM 有沒有回Ack信號?
有些 Debugger 單靠程式是不容易找出蟲子的。

建議先讀一下I2C的規範後,就會比較清楚I2C的Timing的意義。

發表於: 2004/10/15 16:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#11
版主
版主


查看用戶資訊
麻煩去看一下EEPROM 24LC01B及24LC256 DATA SHEET中的時序圖就知道了。

一張圖,抵得過千言萬語。

發表於: 2004/10/15 15:42
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#10
中級會員
中級會員


查看用戶資訊
您好
基本上Reference Guide 和 Complier Libraries我都有,而

我是先從12.1那個範例程式下手,有error自行修改,不行後,

再以您說的書上提供的example,即是我第一篇po的source

code,由於我是使用Microchip提供的板子來練習,所以它的

eeprom是256k的,相對的,如同之前一位大大所說的,不如

使於用24LC256,所以才想請教各位有無較適合之範例。

基本差別,能再稍微解釋一下嗎?我想,讀寫的函式應是

用一樣的,而address的byte組成,小弟就較不清楚了。


非常感謝各位的解惑!~~

發表於: 2004/10/15 0:05
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#9
版主
版主


查看用戶資訊
http://ww1.microchip.com/downloads/en/DeviceDoc/51297c.pdf

以上的連結是C18 library manu。其中的page 31 (檔案的page 35)有針對24LC01B的範例。

先用24LC01B試,可以動了,再設法改成針對24LC256。01和256的基本差別,只在於address用一個byte或兩個byte來組成而已。

當然,前提是:您的硬體接線必須要是正確的。

發表於: 2004/10/14 23:24
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#8
中級會員
中級會員


查看用戶資訊
上述程式即是12.1的範例,complier後因有LCDxx等的error,所以自行修正忽略掉所有關LCD的函式,其餘原封不動,下述是所定義的Function Prototype,最後所得到的Read_Data沒有值, f是在EEPROM_Read完後的回傳值為10(十六進制),但真的不是很清楚程式中的Send_Data、Send_Addr值到底為何?...且不知回應的f值是否為正確?
程式都頗長的,不知各位大大有沒有適合的範例...

感謝各位解惑...

#pragma udata access My_RAM
near unsigned char Debounce;
near unsigned char Send_Addr;
near unsigned char Send_Data;
near unsigned char Send_Length;
near unsigned char Read_Data;
near unsigned char P_SW2;
near unsigned char P_SW6;
#pragma udata

#define Page_Length 8
#define SW2 PORTAbits.RA4
#define SW6 PORTEbits.RE1
#define Bounce_Time 6
#define EE_CMD 0xA0

發表於: 2004/10/14 22:21
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#7
版主
版主


查看用戶資訊
到右邊的範例程式下載12及12.1的程式看看,先不要改會動了以後再改。

http://www.microchip.com.tw/example.htm

發表於: 2004/10/14 17:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#6
中級會員
中級會員


查看用戶資訊
以下是從版上範例程式中來的,這program可讀寫24LCxx系列的eeprom程式,我稍微修改,只單純讀寫一個byte,但還是讀寫不到值,是什麼問題呢?

謝謝各位的教導。

#include <p18f452.h>
#include <i2c.h>
#include <stdlib.h>

void Initialize_I2C_Master(void);
void EE_SEQU_Read(unsigned char,unsigned char,unsigned char,unsigned char *);
void EEPROM_Write(unsigned char,unsigned char,unsigned char);
void EEPROM_ACK(unsigned char);
void InitialPort(void);
unsigned char EEPROM_Read(unsigned char,unsigned char);

#define SW2 PORTAbits.RA4

unsigned char Read_Data;

void main(void)
{
TRISAbits.TRISA4=1;
Initialize_I2C_Master( );

while(1)
{
if(!SW2)
{
EEPROM_Write(0xA0,0x10,0x05);
EEPROM_ACK(0xA0);
Read_Data = EEPROM_Read(0xA0,0x10);
}
}
}
//--------------------------------------------------------------
void EEPROM_Write(unsigned char ctrl,unsigned char addr,unsigned char data)
{
IdleI2C();
StartI2C();
I2C_Done();
WriteI2C(ctrl);
while(SSPCON2bits.ACKSTAT); I2C_Done();
WriteI2C(addr);
while(SSPCON2bits.ACKSTAT); I2C_Done();

WriteI2C(data); while(SSPCON2bits.ACKSTAT); I2C_Done();

StopI2C(); I2C_Done();
}
//-----------------------------------------------------------------
void EEPROM_ACK(unsigned char ctrl)
{
unsigned char i;

IdleI2C(); StartI2C(); I2C_Done();
WriteI2C(ctrl); I2C_Done();
while (SSPCON2bits.ACKSTAT)
{
for (i=0;i<100;i++);
RestartI2C();
I2C_Done();
WriteI2C(ctrl); I2C_Done();
}
StopI2C();
I2C_Done();
}
//-------------------------------------------------------------unsigned char EEPROM_Read(unsigned char ctrl,unsigned char addr)
{
unsigned char f;

IdleI2C();
StartI2C();
I2C_Done();
WriteI2C(ctrl);
while(SSPCON2bits.ACKSTAT); I2C_Done();
WriteI2C(addr);
while(SSPCON2bits.ACKSTAT); I2C_Done();
RestartI2C(); I2C_Done();

WriteI2C(ctrl+1); while(SSPCON2bits.ACKSTAT); I2C_Done();

f=ReadI2C(); I2C_Done();
NotAckI2C(); I2C_Done();
StopI2C();
I2C_Done();
return(f);
}
//-----------------------------------------------
void I2C_Done(void)
{
while (!PIR1bits.SSPIF);
PIR1bits.SSPIF=0;
}
//------------------------------------------------
void Initialize_I2C_Master(void)
{
OpenI2C(MASTER,SLEW_ON);
SSPADD= 9;
}









發表於: 2004/10/14 16:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 讀取eeprom問題.....非常感謝各位
#5
中級會員
中級會員


查看用戶資訊
找到了…很感謝您

發表於: 2004/10/14 14:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------