久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3918|回復(fù): 11
收起左側(cè)

STC8G2K64S4單片機(jī)IAP讀寫(xiě)問(wèn)題

[復(fù)制鏈接]
ID:588737 發(fā)表于 2021-7-2 17:13 | 顯示全部樓層 |閱讀模式
最經(jīng)剛用了一款STC的單片機(jī)STC8G2K64S4 ,數(shù)量200片,目前發(fā)現(xiàn)其中有兩片的EEPROM用IAP方式讀寫(xiě)時(shí)會(huì)出問(wèn)題。具體數(shù)據(jù)就是到數(shù)值超過(guò)127時(shí),存入或者讀出的數(shù)據(jù)就變了,不知道大家有沒(méi)有遇到過(guò)
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2021-7-2 18:39 | 顯示全部樓層
8G系列的IAP讀寫(xiě)和  15系列的不一樣哦。 你的底層代碼是用的8G系列專用的么?
回復(fù)

使用道具 舉報(bào)

ID:948738 發(fā)表于 2021-7-3 21:08 | 顯示全部樓層
那就是那兩片有問(wèn)題唄...
回復(fù)

使用道具 舉報(bào)

ID:588737 發(fā)表于 2021-7-5 08:20 | 顯示全部樓層
robinsonlin 發(fā)表于 2021-7-2 18:39
8G系列的IAP讀寫(xiě)和  15系列的不一樣哦。 你的底層代碼是用的8G系列專用的么?

是的。底層程序,就是8G的 。這個(gè)不是用8G專用的也不會(huì)有198片成功的事。
回復(fù)

使用道具 舉報(bào)

ID:588737 發(fā)表于 2021-7-5 08:22 | 顯示全部樓層
464645465465465 發(fā)表于 2021-7-3 21:08
那就是那兩片有問(wèn)題唄...

我關(guān)心的問(wèn)題就是,是不是那兩片一定有問(wèn)題,或者說(shuō)怎么通過(guò)程序來(lái)控制。我也問(wèn)了我的同事,他說(shuō)之前的12C5410AD就有這個(gè)問(wèn)題,然后他把存入的數(shù)據(jù)控制在100以內(nèi),就行了。要是這樣的話。。
回復(fù)

使用道具 舉報(bào)

ID:588737 發(fā)表于 2021-7-5 09:06 | 顯示全部樓層
robinsonlin 發(fā)表于 2021-7-2 18:39
8G系列的IAP讀寫(xiě)和  15系列的不一樣哦。 你的底層代碼是用的8G系列專用的么?

是的,不然那198片也都是不對(duì)的了。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2021-7-5 17:04 | 顯示全部樓層
代碼全部上傳看一下就知道怎么回事了
按照你這個(gè)寫(xiě)入正確率,2/200,那就是1%沒(méi)有正常讀寫(xiě)
這并不代表程序就是對(duì)的,特別是延時(shí)這一塊
因?yàn)?在絕大多數(shù)的情況下,單片機(jī)本身有問(wèn)題的,是很少很少0.1%,都是多的,OTP單片機(jī)除外
帶EEPROM的單片機(jī)出廠之前,人家是進(jìn)行過(guò)很多次讀寫(xiě)測(cè)試的,我進(jìn)過(guò)他們車間看過(guò)的
所以,上傳代碼看一下就知道了
回復(fù)

使用道具 舉報(bào)

ID:856401 發(fā)表于 2021-7-5 19:55 來(lái)自觸屏版 | 顯示全部樓層
在寫(xiě)入數(shù)據(jù)的時(shí)候斷電了
回復(fù)

使用道具 舉報(bào)

ID:588737 發(fā)表于 2021-7-6 09:31 | 顯示全部樓層
Y_G_G 發(fā)表于 2021-7-5 17:04
代碼全部上傳看一下就知道怎么回事了
按照你這個(gè)寫(xiě)入正確率,2/200,那就是1%沒(méi)有正常讀寫(xiě)
這并不代表程序 ...

void IapIdle()
{
                IAP_CONTR=0;                //關(guān)閉IAP功能
                IAP_CMD=0;                        //清除命令寄存器
                IAP_TRIG=0;                //清除觸發(fā)寄存器
                IAP_ADDRH=0X80;    //將地址設(shè)置到非IAP區(qū)域
                IAP_ADDRL=0;
}

char IapRead(int addr)                          //讀
{
                char dat;

                IAP_DATA=0x00;
                IAP_CONTR=0x80;                //使能IAP
                IAP_TPS = 12;                   //設(shè)置擦出等待參數(shù) 12MHz 以下               
                IAP_CMD=1;                        //設(shè)置IAP讀命令
                IAP_ADDRL=addr;                //設(shè)置IAP低地址
                IAP_ADDRH=addr>>8;        //設(shè)置IAP高地址
                IAP_TRIG=0x5a;               //寫(xiě)觸發(fā)命令
                IAP_TRIG=0xa5;                //寫(xiě)觸發(fā)命令
                _nop_();
                dat=IAP_DATA;                        //讀命令數(shù)據(jù)
                IapIdle();                        //關(guān)閉IAP功能

                return dat;

}

void IapProgram(int addr,char dat)           //寫(xiě)
{
                IAP_CONTR=0x80;                //使能IAP
                IAP_TPS = 12;                   //設(shè)置擦出等待參數(shù) 12MHz 以下               
                IAP_CMD=2;                        //設(shè)置IAP寫(xiě)命令
                IAP_ADDRL=addr;                //設(shè)置IAP低地址
                IAP_ADDRH=addr>>8;        //設(shè)置IAP高地址
                IAP_DATA=dat;                //寫(xiě)IAP數(shù)據(jù)
                IAP_TRIG=0x5a;           //寫(xiě)觸發(fā)命令
                IAP_TRIG=0xa5;                //寫(xiě)觸發(fā)命令
                _nop_();
                IapIdle();                        //關(guān)閉IAP功能

}

void IapErase(int addr)                                 //擦除
{        
                IAP_CONTR=0x80;                //使能IAP
                IAP_TPS = 12;                   //設(shè)置擦出等待參數(shù) 12MHz 以下               
                IAP_CMD=3;                        //設(shè)置IAP擦除命令
                IAP_ADDRL=addr;                //設(shè)置IAP低地址
                IAP_ADDRH=addr>>8;        //設(shè)置IAP高地址
                IAP_TRIG=0x5a;           //寫(xiě)觸發(fā)命令
                IAP_TRIG=0xa5;                //寫(xiě)觸發(fā)命令
                _nop_();
                IapIdle();                        //關(guān)閉IAP功能
}
這部分是官方例程
void WriteDATA_FLASH_START_ADDRESS1()
{       
                IapErase(0x0000);
                IapProgram(0x0000,0);
                IapProgram(0x0002,128);
                delaynms(30);
               
                IapProgram(0x0010,sc/100);
                IapProgram(0x0012,sc%100);
                delaynms(30);
               
                IapProgram(0x0020,0);
                IapProgram(0x0022,127);
                delaynms(30);
}
這是我的寫(xiě)入,數(shù)值我改了方便測(cè)試
void Read_dat1()
{   
                sw=IapRead(0x0000);
                sw=sw*100+IapRead(0x0002);
               
                sc=IapRead(0x0010);
                sc=sc*100+IapRead(0x0012);
               
                p =IapRead(0x0020);
                p=p*100+IapRead(0x0022);
}
這部分讀,然后再到顯示部分。這里就不放出來(lái)了。實(shí)際顯示SW讀出的值無(wú)限大,P就是正常的127
回復(fù)

使用道具 舉報(bào)

ID:588737 發(fā)表于 2021-7-9 14:43 | 顯示全部樓層
沒(méi)有大神了嗎 求幫助啊 指導(dǎo)啊
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-7-9 16:54 | 顯示全部樓層
依然猶在 發(fā)表于 2021-7-9 14:43
沒(méi)有大神了嗎 求幫助啊 指導(dǎo)啊

如果別的芯片正常,就這兩個(gè)芯片經(jīng)重復(fù)燒寫(xiě)仍然是這個(gè)問(wèn)題,有可能是芯片不良。否則通常是程序問(wèn)題。雖然這款芯片沒(méi)有用過(guò),但STC的其它型號(hào)用了上萬(wàn)并且使用了EEPROM讀寫(xiě),沒(méi)有遇到類似問(wèn)題。樓主仔細(xì)看看是不是數(shù)據(jù)類型使用不當(dāng)或者中斷干擾了EEPROM讀寫(xiě)。
回復(fù)

使用道具 舉報(bào)

ID:81196 發(fā)表于 2021-7-9 17:41 | 顯示全部樓層
是不是像EEPROM芯片一樣有讀寫(xiě)buf限制
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久1区| h在线看 | 毛片com| 久久伊人免费视频 | 亚洲喷水| 久久与欧美| 韩日在线观看视频 | 久久99精品视频 | 成人精品国产一区二区4080 | 美女黄色在线观看 | 一区二区三区视频在线 | 狠狠热视频 | 最新毛片网站 | 成人国产免费观看 | 欧美在线免费 | 国产操操操 | 久热免费在线 | 日韩一区在线播放 | 欧美精品在欧美一区二区 | av成年人网站 | 精品久久久久久久久久久久 | 岛国毛片 | 狠狠干美女| 在线看片福利 | 色综合色综合色综合 | 97色在线视频 | 成人在线视频观看 | 男女深夜网站 | 福利片在线 | 久久亚洲国产 | 国产精品爱久久久久久久 | 一区二区国产精品 | 国产精品久久久免费 | 正在播放亚洲 | 久久人人网 | 日日做夜夜爽毛片麻豆 | 成人在线观看免费 | 欧美一区二区三区在线观看 | 免费精品 | 亚洲网站在线 | 男女污网站|