打印
[技术问答]

N76E003实现**功能

[复制链接]
2184|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
飘雪殇|  楼主 | 2018-5-23 20:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 飘雪殇 于 2018-6-4 19:55 编辑

#define     DATA_SIZE           128
#define     PAGE_ERASE_AP       0x22
#define     BYTE_READ_AP        0x00
#define     BYTE_PROGRAM_AP     0x21
#define     PAGE_SIZE           128


void Trigger_IAP(void)
{   
    set_IAPGO;                                                                                                                                        //trigger IAP
    if((CHPCON&SET_BIT6)==SET_BIT6)             // if fail flag is set, toggle error LED and IAP stop
                {
                        clr_IAPFF;

                }
}

void Erase_APROM(u16 u16_addr)
{   
    UINT16 u16Count;

    set_IAPEN;                                                                                                        // Enable IAP function
                IAPFD = 0xFF;                                                                                                // IMPORTANT !! To erase function must setting IAPFD = 0xFF
    IAPCN = PAGE_ERASE_AP;
    set_APUEN;                                                                                                        //  APROM modify Enable
       
    for(u16Count=0x0000;u16Count<DATA_SIZE/PAGE_SIZE;u16Count++)                //
    {        
        IAPAL = LOBYTE(u16Count*PAGE_SIZE + u16_addr);
        IAPAH = HIBYTE(u16Count*PAGE_SIZE + u16_addr);
        Trigger_IAP();
    }
    clr_APUEN;
    clr_IAPEN;
}

void write_DATAFLASH_BYTE(u16 START_ADDR,u8 u8_Data)
{   
    set_IAPEN;
    set_APUEN;   
    IAPAL = LOBYTE(START_ADDR);
    IAPAH = HIBYTE(START_ADDR);
    IAPCN = BYTE_PROGRAM_AP;
                IAPFD = u8_Data;     
                Trigger_IAP();       
    clr_APUEN;
    clr_IAPEN;
}
       
//-------------------------------------------------------------------------

UINT8 read_APROM_BYTE(UINT16 Data_Addr)
{
        UINT8 rdata;

  set_IAPEN;
  IAPAL = Data_Addr;
  IAPAH = Data_Addr>>8;
  IAPCN = 0x00;
  rdata = 0x00;
       
        set_IAPGO;
  rdata = IAPFD;

  clr_IAPEN;

        return rdata;
}

沙发
wahahaheihei| | 2018-5-23 21:22 | 只看该作者
新唐还出了个手册的,专门介绍这个功能怎么做合理的。里面有个算法。

使用特权

评论回复
板凳
wahahaheihei| | 2018-5-23 21:22 | 只看该作者
防止重复写同一段,这样可以延长寿命。

使用特权

评论回复
地板
antusheng| | 2018-5-23 23:45 | 只看该作者
这个功能不错,省了用EEPROM芯片了。

使用特权

评论回复
5
稳稳の幸福| | 2018-5-24 12:41 | 只看该作者
方法简单 ,这种很容易用到自己代码里。

使用特权

评论回复
6
xinpian101| | 2018-5-24 17:37 | 只看该作者
MARK,做个板子试试看。

使用特权

评论回复
7
xuanhuanzi| | 2018-5-24 18:10 | 只看该作者
这个操作666,比STC的简单。

使用特权

评论回复
8
jiekou001| | 2018-5-25 23:14 | 只看该作者
不错,好简单,复制保存,谢谢。

使用特权

评论回复
9
wanduzi| | 2018-5-25 23:20 | 只看该作者
你这个只实现了**,没有实现掉电检测。参考官方的有个文档,介绍怎么计算掉电保护用的电容。

使用特权

评论回复
10
热教皇| | 2018-6-12 14:33 | 只看该作者
mark,保留下来

使用特权

评论回复
11
yiyigirl2014| | 2018-6-13 10:00 | 只看该作者
还要考虑那个掉电速度的电容,我看那个手册了,有介绍怎么计算。

使用特权

评论回复
12
jiekou001| | 2018-8-27 18:57 | 只看该作者
又用到了,再看看。

使用特权

评论回复
13
yiyigirl2014| | 2018-8-28 10:07 | 只看该作者
IAP的应用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

20

帖子

1

粉丝