zhangx_00 发表于 2014-7-24 11:23:06

HR7P195在另一项目上的应用体会

前些日子作了一个项目, 它的要求资源是这样的:
1. 4路ADC 进行采样
2. 一路PWM输出
3. 一路串口
4.I2C 丛机功能
5.IO控制及指示

工作原理:
   由本设备对光功率, 直流电压和射频电平进行采样处理, 其中一路完成 PWM 输出控制 optical-AGC 功能
. 同时控制三个状态指示灯, 并作相应的IO输出控制.
   本机要和下面的一个 ARM9 通过 I2C 通讯, ARM9 通作 I2C 总线从本机上取回数据, 如名称,批号,
各采集值, 及工作状态等.并能通过I2C 去改写名称和批号<生产方便>.    同时具有留有串口功能
   本机上设置的参数要能保存并在下次上电后读取.

由于要求成本较低我在这里选用了 HR7P195 -20Pin 的CPU来做
1. 开始对方没有要求 I2C 的从机功能, 一路设计, 一切OK
2. 后用户增加了 I2C 从机的功能, 我们知道 I2C 速率是 100K/400K, 但用HR7P195 一个IO口的SCK最快只能
做到 10ms, 但有些信号捕捉不到,误码多, 所以放到 60~~80ms 才算稳定, 也就是 sck=9K左右
3.后来又调整了原来的中断, 中断要放在 10ms 的间隔才不影响 I2C 的读写误码
4.这个CPU的 ADC 不是很准,采样时要舍一位, 在 1000mv 时最准, 向下到 40mv 时最大误差为 40mv, 为负误差.
   向上到 3000mv 时又为正误差 , 最大为27mv, 这样在采样电压为 100mv 以下时相当的不准. 而用户要求的光功率
非常的低, 最后只能用分布点来描述进行采样

总结
1. 基本功能还是可以的,通满足设计的要求
2. 堆栈太少, 8级呀.......整不好就溢出, 所以尽量用汇编, 少用 call, 特别是 call 中 call
3. 内部要用到16M 才能满足
4. 中断设计要多多注意,在进行ADC时最好关中断

海尔_大海 发表于 2014-7-24 15:36:00

很好的总结,“在进行ADC时最好关中断”不光是195, 其他型号的单片机都一样~~

Excellence 发表于 2014-7-24 15:53:40

{:victory:}{:victory:}{:victory:}

海尔_大海 发表于 2014-7-29 18:07:12

奖励莫币300大洋

zhangx_00 发表于 2014-7-31 21:57:00

一上来就看到了,有点钱了哦, 谢谢

horsema 发表于 2014-8-1 10:40:35

总结的很好.

xukaiming 发表于 2014-8-1 13:26:52

关什么中断?觉得无法理解这种行为

海尔_小海 发表于 2014-8-4 22:07:21

xukaiming 发表于 2014-8-1 13:26
关什么中断?觉得无法理解这种行为

保证AD转换不被其他中断影响啊

wjjsl 发表于 2014-8-29 10:32:50

我顶!!!!!!!!
页: [1]
查看完整版本: HR7P195在另一项目上的应用体会