微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > 刚从坑里爬出来...

刚从坑里爬出来...

时间:12-13 整理:3721RD 点击:
其实要搞定的事情非常简单...就是驱动个舵机...
需求就是一个旋钮控制一只舵机,来实现一个倒水的动作...
只不过,这段时间很多人跟我建议,凡事别自己折腾要尽量用现成的东西...
刚好我对舵机完全不了解,也不太感兴趣,这次的事情这么简单这么典型,肯定能买到
现成的东西,于是这次就准备贯彻这个原则全部上淘宝买买买了...
然而买的时候发现原来舵机还分模拟和数字两种...本着数字的肯定更好于是就买了2只
数字舵机,一只好的另一只便宜货顺带着拆了玩...然后那家店的控制器全部是arduino
一拖16这类的,还要配arduino和电位器模块再写点程序...我觉得太overkill了所以准
备去其他地方找一个电位器直接驱动一个舵机的那种最简单的形式。
最后找不到太合适的,看了眼数字舵机的驱动原理,就是pwm占空比控制。那就ne555搭
一个吧~虽然手头有555,但这次要贯彻买买买的原则嘛于是上淘宝买了个现成的ne555
占空比频率双可调的板子...
结果拿到手发现这板子电路设计的不对,调占空比的时候频率会跟着变...于是一顿折腾
改它的电路,把频率固定在50hz占空比可调...然而驱动效果很不理想...上示波器一看
占空比有点飘...数字舵机貌似对占空比稳定性有一定要求不然不是不转就是乱转...
于是接着买...买了个纯数字输出占空比的3路电位器控制3个舵机的小板子...
总之那只准备拆了玩的便宜货舵机能很好的控制了,但另一只好舵机却依然控制不了,
然而我已经按照好舵机的外形固定孔位做好结构了...实在是不想改结构,于是接着研究
为毛驱动不了。一查原来好的舵机响应速度更快,所以控制频率比较高,需要200hz以上,
最高330hz...
但这控制器的程序我没有呀...上淘宝让买家给我改个参数发一个330hz版本,丫不干,
非说50hz的肯定能控制...磨了半天嘴皮子不理我了...算了我自己写还不成么...
一看mcu是stc15,嗯没玩过不过想必是很简单的东西...
于是开始调研,噢linux下用sdcc能搞定,isp也有可以搞。烧了个hello world成功,虽
然主频不对导致串口读不出来但至少是有反应的(这个时候我还不知道stc15的主频是烧
写的时候决定的...)。下面无非是读个adc产生个pwm的事...想想这不就是分分钟搞定
的嘛~
然后就开始google stc15的datasheet...诶怎么好像连个pinout都找不到啊...这个
sop16的pinout还是从一份宣传册里面找出来的...datasheet里面都没有...诶这是
datasheet么?写的是什么东西啊...怎么像是个各种芯片的大合集+各种大作业的报告
啊...诶怎么感觉用量很大的片子英文资料这么少啊...中文资料都是各种论坛下载要注
册要金币好不容易down下来一看还是没啥价值的垃圾...
于是怒了,算了切换到windows下用典型开发环境跟着官方的路子走吧...然后down了官方
的isp一运行...惊了个呆....我算是明白为啥找不到datasheet了...这个isp就是datasheet,
pinout,各种example,各种计算器,各种常用小工具的大合集...尼玛没见过这么搞的开眼
界了...(ps:官网主页也是个大合集风格...这stc是有多寨啊...)
于是在stc这破事上,这个想当然分分钟搞定的事情折腾了快有20小时我至今不知道stc各
寄存器的详细说明在哪里...比如我还是不知道TMON里面每个bit是啥意思...但因为有定
时器计算器,连这部分配置代码都给你生成好了...所以日子也是能凑合过的...只是这片
子有太多细节我不了解了...在没有ds的情况下(推测肯定有,但我真的没找到...)只能
通过各种代码片段自己推敲...(一下省略了1万字...),这个程序在折腾了好几个版本
之后,总算是得到大致稳定的pwm...
最后总算能驱动那个好的舵机了,虽然还是有点点不稳定,推测是那个舵机对pwm的波形
稳定性要求非常高的缘故,但大致也能凑合用,不像之前完全就是不动...
总之呢,这次的经历完全就是个悲剧...如果是自己折腾,上自己熟悉的系统,自己熟悉
的环境,早就搞定了...最后还不是得折腾,还被迫在一个不熟悉又不靠谱的平台下折腾...

STC15,熟手40分钟就搞定。
手册比较寨,广告满天飞,不过该有的内容还是都有的。

我原本真想好好了解了解stc以后有机会多用的,毕竟这片子性能的确不错而且价格也的确
给力。
但现在我放弃了...
我就想要一份正常一点的ds...把内部细节简明扼要的说说清楚就行了...
我现在还是没找到各种reg的具体解释在哪里...

另外,这货用uart直接烧写的理念很不错。
但如果原本的程序上电就会输出uart的话,烧写很容易失败。
我一开始还以为是linux下的这个isp的问题。后来换到windows平台用官方isp也是一样
的。这种小bug也很烦人~

官网上下那个pdf,都有的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top