打印
[应用方案]

新唐方案分享+ 基于新唐N76E003的加速度传感器ModbusRtu远传

[复制链接]
3165|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Harvard|  楼主 | 2017-11-29 21:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Harvard 于 2017-11-29 21:35 编辑

                           基于新唐N76E003的加速度传感器ModbusRtu远传(老贴新发,绝对原创)    

注新唐的003, 主要功能就是通过003读取加速度传感器的数据,将他 通过串口送出. 串口符合modbus RTU 485协议. 适合长距离输送 .工作在主从模式,接受工控机,触摸屏等主机的查询.

关注新唐的003有段时间了,简洁,功能强大 ,引脚少. 加上1.x的价格 还是适合做很多很多的应用.51内核.比起M0, 可以省去大量的库函数. 官方的BSP 与M051的bsp一比, 有点安然失色.好在是8位机, 自己稍加修改所带的例程,基本可以把芯片玩转. 怎么说? 51 还是大家都熟悉的. 尤其是我们这帮70 after,和80after. 51相对比较熟悉.
   用的过程中,也是遇到一些问题,基本都在论坛解决了.
其一:  
    在mdk中,通过nulink烧写,无法进行config加密, 只能到icp 软件中进行. 在icp中.选择8051 1T单片机即可; 不知道为何在使用003时所用的固件不是最新的而是比最高版本有一个版本号的差距.导致正在使用的M0调试器,与51调试器 需要来回的切换固件版本.

其二:
   在MDK5.23中使用时,使用nulink 插件时, debug,无法在c中,单步运行或者设置断点,光标一直在汇编的disassebly窗口中. 而这一功能在mdk4中可以正常运行. 官方FAE建议重装MDK4. MDK5 懒得折腾了.就用mdk4.74进行开发吧;


其三:
     在mdk中调试的时候,虽然勾选了periodical update,但是watch窗口中的数据无法在全速运行中进行查看 带来诸多不变, 要查看数据,只有进行暂停, 这点没有在调试M051方便, 是因为8051的内置调试单元与M051中的内置调试单元导致的么? 求解.

     目前,遇到的问题就是这么几个; 片子用起来还是不错. 内部的18K,还做了dataflash 模拟eeprom . IO的使用模式与M051相差无几. 输入, opendrain,push-pull, 准双向. 用过新唐M0,再用这些再爽不过了.
     言归正传, 主要是设计了一个N76E003通过spi口驱动adxl345加速度传感器, 然后通过uart0串口通过485芯片,远程接收modbus RTU主机的查询;

                                             

M@9SOV{{C9QD0)CUU8HG8{V.png (72.25 KB, 下载次数: 2)
下载附件  保存到相册

2017-7-4 22:26 上传





  • /*******************************************************************************
  • * FUNCTION_PURPOSE: Main function
  • ******************************************************************************/
  • void main (void)
  • {
  •     /* 系统初始化*/
  •     SYS_init();
  •     TMR0_Init();
  •     TMR1_Init();
  •     TMR2_Init();
  •     /* 初始化串口 */
  •     InitialUART0_Timer3(9600);
  •     //SPI_Initial();
  •     /* 看门狗初始化 */
  •     WDT_Initial();
  •     /*  开中断 */
  •     sei();
  •     /* 测试程序 */
  •     /* APP程序初始化 */
  •     LED_operate (_LED1_, ON);///点亮工作指示灯;
  •     LED_flash   (_LED1_, ON);
  •     /*  初始化adxl345 */
  •     SYS_adxl_buf[0] = 0x0b;
  •     WriteToADXL345ViaSpi(XL345_DATA_FORMAT,1,SYS_adxl_buf);
  •     SYS_adxl_buf[0] = 0x08;
  •     WriteToADXL345ViaSpi(XL345_POWER_CTL,1,SYS_adxl_buf);
  •     ReadFromADXL345ViaSpi(XL345_DEVID,1,SYS_adxl_buf);
  •     SYS_adxl345_deviceid = SYS_adxl_buf[0];
  •     /****** 主循环 *******/
  •     while(1)
  •     {
  •         if( f20ms)
  •         {
  •             f20ms =0;
  •             /* 读取三轴的数据值, 13bit分辨率, 量程+-16g */
  •             ReadFromADXL345ViaSpi(XL345_DATAX1,1,SYS_adxl_buf);
  •             SYS_x_data = SYS_adxl_buf[0];
  •             SYS_x_data = SYS_x_data<<8;
  •             ReadFromADXL345ViaSpi(XL345_DATAX0,1,SYS_adxl_buf);
  •             SYS_x_data = SYS_x_data +SYS_adxl_buf[0];
  •             ReadFromADXL345ViaSpi(XL345_DATAY1,1,SYS_adxl_buf);
  •             SYS_y_data = SYS_adxl_buf[0];
  •             SYS_y_data = SYS_y_data<<8;
  •             ReadFromADXL345ViaSpi(XL345_DATAY0,1,SYS_adxl_buf);
  •             SYS_y_data = SYS_y_data +SYS_adxl_buf[0];
  •             ReadFromADXL345ViaSpi(XL345_DATAZ1,1,SYS_adxl_buf);
  •             SYS_z_data = SYS_adxl_buf[0];
  •             SYS_z_data = SYS_z_data<<8;
  •             ReadFromADXL345ViaSpi(XL345_DATAZ0,1,SYS_adxl_buf);
  •             SYS_z_data = SYS_z_data +SYS_adxl_buf[0];
  •         }
  •         /* 3- MODBUS_RTU通信处理 */
  •         mod_process();
  •         /* x-喂狗 */
  •         WDT_reset();
  •     }
  •     /****** 主循环 *******/
  • }


复制代码
沙发
wanduzi| | 2017-11-30 09:29 | 只看该作者
给力啊,新唐N76E003早晚称霸天下。

使用特权

评论回复
板凳
antusheng| | 2017-11-30 18:37 | 只看该作者
通信应用还是要好好学习的

使用特权

评论回复
地板
zhuomuniao110| | 2017-11-30 20:08 | 只看该作者
串口应用?

使用特权

评论回复
5
Harvard|  楼主 | 2017-12-7 11:26 | 只看该作者
谢谢大家关注 如果有用新唐003 flash 存储不爽的朋友 也可以看看 , 本项目 有关于flash当eeprom的操作例程,  自己修改了一下相关的函数

使用特权

评论回复
6
Alisa000| | 2017-12-8 09:57 | 只看该作者
N76E003为新唐高速1T 8051 单片机系列产品,提供18 KB Flash ROM、可配置Data Flash与高容量1 KB SRAM,支持2.4V 至 5.5V宽工作电压与-40℃至105℃工作温度,并具备高抗干扰能力 7KV ESD/4KV EFT。
N76E003 在20 pin封装下提供高达18根I/O脚位;周边包含双串口、SPI、I²C、6通道PWM输出;内建优于同类产品之 < 2% 误差之高精确度16 MHz RC晶振与高分辨率8通道12位ADC;并具备自我唤醒、欠压检测等功能;提供TSSOP20 (4mm*6.5mm) 与QFN20 (3mm*3mm) 小封装,兼具高性能与设计弹性。
应用领域 :
门禁系统/警报器、温度传感设备、蓝牙音箱、电动车表头、数字电压表头、气体检测器、采集器、充电器、美容仪器、小家电等。
关键特性 :
内核(core)- 1T 8051微处理器
- 工作频率可达 16 MHz
- 工作电压: 2.4V 至 5.5V
- 工作温度: -40℃ 至 105℃
内存(memory)
- 18 KB应用程序 Flash
- 内嵌1 KB SRAM
- 可配置的 Data Flash
- 支持在线系统更新:

ISP(In-System Programming)
ICP(In-Circuit Programming)
IAP(In-Application Programming)
脉波宽度调变(PWM)
- 6通道PWM输出
- 带死区产生器

使用特权

评论回复
7
suninhz| | 2017-12-22 10:11 | 只看该作者
子函数都没贴出来

使用特权

评论回复
评论
suninhz 2018-1-9 21:36 回复TA
@Harvard :ok 
Harvard 2017-12-27 14:32 回复TA
自己找 我在论坛都上传了 
8
東南博士| | 2020-5-26 14:05 | 只看该作者
附件 在那里可以下载的到啊!

使用特权

评论回复
9
QQ1099811789| | 2020-5-26 14:38 | 只看该作者
被楼上挖坟了

使用特权

评论回复
10
yzq13246068880| | 2020-5-26 15:08 | 只看该作者

使用特权

评论回复
11
天灵灵地灵灵| | 2020-5-26 19:31 | 只看该作者
挖坟贴可以l

使用特权

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

本版积分规则

74

主题

1730

帖子

21

粉丝