发新帖我要提问
12
返回列表
打印

STC单片机内部EEPROM读写,大家都用啥工具实现编程?

[复制链接]
楼主: 古道热肠
手机看帖
扫描二维码
随时随地手机跟帖
21
hkap| | 2008-2-20 09:14 | 只看该作者 回帖奖励 |倒序浏览

这样也可以啊

使用特权

评论回复
22
LastNew| | 2008-2-20 12:46 | 只看该作者

奇材

鼓捣火腿肠

使用特权

评论回复
23
wlspioneer| | 2008-2-20 12:46 | 只看该作者

强人阿

使用特权

评论回复
24
forthlab| | 2008-2-20 19:55 | 只看该作者

要彻底解决这个问题,就要自己写BOOT程序

不要用红井的哪个。我早就和他们探讨过的,他们不原意做。想想自己做,定义协议,编上下机程序,实在是麻烦,就算了,将就用他们的编程器了。

使用特权

评论回复
25
sbx251| | 2008-2-21 08:34 | 只看该作者

不用怀疑

我一直在用,有问题来信:sbx@jzdc.com.cn

使用特权

评论回复
26
l0p0c| | 2008-2-21 13:07 | 只看该作者

用芯片内部的编程实现!

我的拙见,不知道可行不?

使用特权

评论回复
27
winds| | 2008-2-23 14:45 | 只看该作者

依照20楼的思路,发现不要重新定位

只要是Hex码,在宏晶的软件上有个清空缓冲区选择,把他去掉即可,然后再选择EEPROM的地址,再次装入Hex即可,不过这么做,烧写程序的时间会变长就是

使用特权

评论回复
28
古道热肠|  楼主 | 2008-2-23 15:34 | 只看该作者

哈哈,回楼上

那如果我要提取EEPROM中的数据到PC机来分析又如何实现呢?
我现在是底层运行个固件,编了个简单协议,上层用VB改了个以前用的工具,可一次下传或上传MCU全部EEPROM的内容。大家觉得用得着,我就传上来,不是太完美,大家别不能见笑哟。

使用特权

评论回复
29
samson_sun| | 2008-2-24 16:39 | 只看该作者

通过串口对对EEPROM直接操作

         在C51中调用的对STC的EEPROM操作的函数

/*$PAGE*/
/*
***************************************************************************************************************
*
*                                              IspRead
* Name        : IspRead
* Returns     : none
* Description : Read a string from EEPROM and Write them to the NumArray.
***************************************************************************************************************
*/
void IspRead(void)
{
   unsigned char c;

   EA = 0;

   DPH = 0x10; 
   DPL = 0x10; 

   ISP_CONTR = ENABLE_ISP;         //允许ISP操作
   ISP_CMD   = ISP_BYTE_READ;     //命令EEPROM读

   for(RxCtr = 0;RxCtr<MAX_NUM ;RxCtr++){

      ISP_ADDRH = DPH;
         ISP_ADDRL = DPL;
      _nop_();

      ISP_TRIG  = 0x46;
      ISP_TRIG  = 0xB9;

      _nop_();
      c = ISP_DATA ;
      _nop_();
      DacTal[RxCtr] = c;

      DPL++;
    }

   ISP_CONTR = 0x00;
   ISP_CMD   = 0x00;
   ISP_TRIG  = 0x00;

   ISP_ADDRH = 0x00;
   ISP_ADDRL = 0x00;

   RxCtr = 0;
   EA = 1;
}

/*$PAGE*/
/*
***************************************************************************************************************
*
*                                           IspWrite
* Name        : IspWrite
* Returns     : none
* Description : Write a serial number to the EEPROM,Do it only  while in CommISR.
***************************************************************************************************************
*/
void IspWrite(void)
{
   unsigned char c;

   IspErase();

   DPH = 0x10; 
   DPL = 0x10;

   ISP_CONTR = ENABLE_ISP;          //允许ISP操作
   ISP_CMD   = ISP_BYTE_WRITE;      //命令EEPROM写

   for(RxCtr = 0;RxCtr <MAX_NUM ;RxCtr++){

      ISP_ADDRH = DPH;
         ISP_ADDRL = DPL;

      c =  DacTal[RxCtr];
     
      ISP_DATA  = c;
      
      _nop_();

      ISP_TRIG  = 0x46;
      ISP_TRIG  = 0xB9;

      _nop_();

      DPL++;
    }

   ISP_CONTR = 0x00;
   ISP_CMD   = 0x00;
   ISP_TRIG  = 0x00;

   ISP_ADDRH = 0x00;
   ISP_ADDRL = 0x00;

   RxCtr = 0;
}

void IspErase(void)
{
   ISP_ADDRH = 0x10;
   ISP_ADDRL = 0x00;
   _nop_();

   ISP_CONTR = ENABLE_ISP;         //允许ISP操作
   ISP_CMD   = ISP_SECTOR_ERASE; //命令EEPROM檫除
   _nop_();

   ISP_TRIG  = 0x46;
   ISP_TRIG  = 0xB9;  
   
   _nop_();
   ISP_CONTR = 0x00;
   ISP_CMD   = 0x00;
   ISP_TRIG  = 0x00;

   ISP_ADDRH = 0x00;
   ISP_ADDRL = 0x00;  

}

使用特权

评论回复
30
古道热肠|  楼主 | 2008-2-25 10:30 | 只看该作者

哈哈,楼上新人还蛮热心的,欢迎

不过俺不缺底层驱动EEPROM的驱动Demo,有好的上下位机通信协议,对我也许有用。

使用特权

评论回复
31
lpcfans| | 2008-2-25 11:18 | 只看该作者

亮出来啊...

使用特权

评论回复
32
yewuyi| | 2008-2-25 14:43 | 只看该作者

我真的很费解!

有这个精力弄这种芯片的话,还不如花一半的时间弄AVR呢……



PS:俺对宏晶的商业道德和商业信誉表示严重的怀疑!

使用特权

评论回复
33
xzl| | 2008-2-25 15:51 | 只看该作者

先下载程序,通过串口协议自己往里写数据

使用特权

评论回复
34
laixinmin| | 2008-2-25 19:54 | 只看该作者

TOP853

你买一个TOP853编程器
这个支持STC

使用特权

评论回复
35
winds| | 2008-2-26 01:54 | 只看该作者

做的这么复杂,不知道有没有什么作用

如果程序不够严密,会容易把程序区读出去,那么就亏大了
宏晶的一片Flash分多个用途然后舍得不同权限的做法,我总是感觉容易出现漏洞,或许那天被人发现,那么主程序很容易被读出...

我用STC单片机用了3年了,没有感觉有什么不太好的地方
今年的时候,编了一个在线升级程序,和一个单片机引导码
功能是上位PC机通过通信--以太网或485通信,远程更新单片机内部程序
实际上485应用的时候,比232复杂的多。我设计了一个7位通信,数据最高位做为地址和数据的识别信号的协议。可以允许在485线和以太网转485的方式发送有区别的包起始位和结束位,并可以发送理论上无限制最大数据包的协议的通信协议
在这个基础上,引导程序:握手信号-》数据更新命令-》跳到主程序

我是说什么意思呢,如果自己设计的引导程序,楼主说的那个问题,不是什么很大的问题,主要是怎么样和现有的通信方式融合的问题。如果是利用宏晶的引导程序,那个比较麻烦。要区研究通信协议。

PC端的程序建议用 .net或者 dephi来编程,这样程序的兼容性好点,VB的东西就是控件太多,打包给顾客的时候会很麻烦的,要附加很大库文件
如果C比较

使用特权

评论回复
36
wjfp800| | 2011-3-21 11:09 | 只看该作者
STC单片机内部EEPROM读写,大家都用啥工具实现编程?有好的解决办法吗?

使用特权

评论回复
37
SHUJIEWS| | 2011-3-21 11:18 | 只看该作者
74930402欢迎单片机初学者加我群

使用特权

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

本版积分规则