打印

用TL431做AD/DA的基准源碰上的问题(偏题了变成讨论单片机工控

[复制链接]
楼主: zq1987731
手机看帖
扫描二维码
随时随地手机跟帖
41
sxggj| | 2008-7-28 15:09 | 只看该作者 回帖奖励 |倒序浏览

刚到公司就得到这么大的信任

看来楼主的能力还是很强的,,如上所说,楼主认为做个解释器很简单就可以看出来了,,硬件远比软件要简单,当然所说的硬件简单只是说一般的硬件,,复杂硬件一般用的比较少

使用特权

评论回复
42
teuton| | 2008-7-28 22:22 | 只看该作者

别信那些无良砖的。谁工作初没有愚蠢错误!

别信那些无良砖的。谁工作初没有愚蠢错误!我就不信他们现在就没愚蠢错误!

使用特权

评论回复
43
hotpover| | 2008-7-28 23:13 | 只看该作者

1987年7月31日,lz这么年轻,努力吧,日后必大有所为!!

使用特权

评论回复
44
chxf1982| | 2008-7-30 10:57 | 只看该作者

TL431输出电压不会高压供电电压

TL4431又不是升压器件,这么可能得到高压供电电压的输出值哦,你要得到10V电压,一是把供电电源高压10V,二是去选升压器件

使用特权

评论回复
45
born| | 2008-7-30 11:27 | 只看该作者

考虑升高电压可用 开关电源芯片 MC34063

使用特权

评论回复
46
kymcu51| | 2008-7-30 13:20 | 只看该作者

这个新手很棒槌,同意大家意见,建议改行

好多电子行业基础的东东都搞不明白

日后问题会多多

更何况是企业要求独立完成产品,对这家公司更是万分担心。

大家可以顺着这个思路往下想想,可怕

使用特权

评论回复
47
guff11| | 2008-7-30 14:10 | 只看该作者

用TL431做AD/DA的基准源碰上的问题

到网上查一下TL431的资料,431是线性稳压的,属降压调整,你的输入电压要高于10V才能得到10V的。

使用特权

评论回复
48
pheavecn| | 2008-7-30 18:26 | 只看该作者

现在很多人会搞这会搞那,但是要测个耗电电流都不行。

基本功不牢,不能灵活运用。

使用特权

评论回复
49
zq1987731|  楼主 | 2008-7-30 21:04 | 只看该作者

这么多人关注哦...晕

    TL431的问题已经圆满解决了,谢谢大家!
    没想到我在TOP上看见自己的帖,让大家笑话了...在此还是先说明一下的好...我做的产品按老板的意思是先在工厂里试试,运行个简单的梯形图,然后用恶劣的环境考验,等确认顶得住了就找个关系好的客户,请对方进行N个月的试用,确认没问题后才会作为产品生产的...时间上也很宽裕,可不是大家想象中那样随随便便就拿去卖的危险品...
    现在这样的话老板就等于白白发了N个月的工资给我,而我却在毫无产出的情况下不断得买元件,LayOut,实验,还买了一套他们做电气的用不到的仪器及工具。我如果拿不出成果的话怎么报答他老人家的信任呢?
    况且电子是我的兴趣!记得去年9月全国电子设计竞赛的时候,四天三夜,和两个最要好的朋友一起在赛场奋斗,大家都是拼了命得做,“睡觉”成了浪费时间的代名词。当时选的题目是信号发生器,正弦波和方波的基本要求及全部发挥部分都完成了,但三角波因DDS选型问题(AD9850无三角波输出)及1Hz~1MHz频率程控的要求导致积分电路中因缺少数字式可变电容而失败,最后虽然只有赛区二等奖,但那次比赛却成了我最珍贵的回忆!那个暑假的集训也是我度过的最充实的日子,从初学时点亮LED流水灯,到后面的操作系统移植,再到上位机与下位机的自定义加密通信协议,我都是一步一个脚印过来的,相信硬件也是如此,只要肯努力,并且好好得把电子技术基础,模拟电子,工程数学重新恶补一下,相信就和现在大不一样了...
    没想到TL431的话题扯到那么远了...
    题外话的题外话:今天12:00过了我就21岁了,今天公司午饭中竟然有好多豆腐...真是不幸啊...另外我有预感天上会掉下很多长方形物体...

使用特权

评论回复
50
usecoolful| | 2008-7-31 00:58 | 只看该作者

Orz

可以和永动机媲美了

使用特权

评论回复
51
hu.te| | 2008-7-31 14:56 | 只看该作者

LZ加油

LZ加油,做硬件的路很长,但是一路走来你会有不少的心得与体会.
只有不断的运用与理解才会懂得如何运用!?没有谁对谁错的问题?
如果要说的话,那以前的前辈不也是这样过来的吗?
:P

使用特权

评论回复
52
dujb| | 2008-7-31 15:13 | 只看该作者

建议你不该行就跳槽吧

你的环境中这种问题都解决不了,这个环境根本不能开发,你如果这个问题不能解决,那么你在这样的环境中搞开发只能消磨时光。好自为之吧

使用特权

评论回复
53
fiann| | 2008-7-31 15:38 | 只看该作者

lz很年轻,很有潜力的;


砖头不要太多了

使用特权

评论回复
54
疯子8972| | 2008-7-31 16:55 | 只看该作者

问楼主个问题啊

我对如何将梯形图变成BIN很感兴趣
楼主能重新开个帖子么?
说一说如何实现么
希望能让我这样的软件菜鸟受到点启发
谢谢
呵呵  大家不要拿着**毛当令箭啦
小小的错误  谁没有犯过呢

使用特权

评论回复
55
zq1987731|  楼主 | 2008-7-31 19:23 | 只看该作者

现在公司的环境其实有所改观了...

To Mr.dujb 
    环境方面本来公司都是搞强电的,自从我进去了就有了些变化,我也按照自己的需要买了一些工具仪器等等,当然有的工具老人家觉得买了浪费就要我自己做了。
比如数字可调开关电源,LayOut后发现,单层板真得比双层板难布多了~~想要一根飞线都没有,对规模大一些的单层板真的很困难,幸好我的这块板比较简单...下面附张图先~~
To Mr.疯子8972
    我这边的做法是将梯形图以指令方式从.PWM文件中提取(三菱PLC)再对梯形图程序进行逐条解释,因为梯形图的每条指令都和单片机中相关功能的子程序一一对应,你只需额外附加初始化程序为固定部分就可以了。
    如果要将梯形图直接转为Intel的.hex文件或BIN文件的话会很麻烦的,而且基本上就只能用汇编来编程了,C语言的话一个编译器很难写的,我的做法是将相关的梯形图语句翻译成C语言程序,再用Keil结合初始化程序的LIB一起编译。
    比较麻烦的是计数器的处理,如果处理得不好,定时就不准,延时就有误差,非常麻烦,我用的方法估计大家都要晕倒...FM31256的512Hz矫正方波接到单片机的外部中断口,会发生什么事情呢?首先这时钟调整方波的频率很稳定,512.0678Hz~511.9300Hz,用作计数器时基是不是很另类呢?当然这是以放弃低电压检测的比较器输出为代价的,我的系统里有用到FM31256主要是因为要储存大量的参数和大幅度缩短读写时间以及稳定的看门狗及实时时钟的需要,如果你的硬件中没有这样输出方波的器件可以选用32.768K的晶振+CD4060的组合,32Hz的时基一样可以满足需要的。

使用特权

评论回复
56
110xia| | 2008-8-1 09:02 | 只看该作者

硬件不是一两天能够搞定

使用特权

评论回复
57
疯子8972| | 2008-8-1 13:13 | 只看该作者

我有点明白了,但不知道理解得对不对

是不是从梯形图文件中提出各个梯形图命令,
然后按一定规则变成C语言描述,
然后让KEIL编译啊?
如果自己编写这样的软件,怎么让软件自己调用KEIL的编译呢?
难道安装KEIL时也会有ACTIVE X控件只类的东西可以调用?

还有梯形图转C语言的词法语法分析难不难写啊   是不是有现成的例子呢?

使用特权

评论回复
58
soso| | 2008-8-1 15:30 | 只看该作者

LZ 请透露一下公司或牌子啊,

谢谢

使用特权

评论回复
59
真白菜| | 2008-8-1 16:02 | 只看该作者

顶 楼主用的是 AD6

使用特权

评论回复
60
zq1987731|  楼主 | 2008-8-1 20:16 | 只看该作者

多谢各位支持...我怎么感觉话题越扯越远了...

To Mr.疯子8972
    确实是这样的,让软件调用Keil的话...有没有试过在UltraEdit中调用Keil进行编译呢?相关教程有很多的,无非就是几条命令,这样的话你只需要写个.PWM文件格式中命令的提取及编译的小软件,软件中模仿UltraEdit那样包含调用Keil编译的命令,或者干脆就把翻译完的C语言直接到Keil中新建工程编译,效果一样的。
    梯形图转C语言的词法语法...因为我用的单片机比较冷门,代码中甚至用到Code Banking所以这例子没法直接套用的,自己写起来其实不困难:
    需要注意的是你的内存分配方案,比如说输入点有32个,又假设你用的控制器是51,那就可以这么用这样的语句初始化:
    volatile bdata unsigned char x[4] (_AT_ ADDRESS);
    那么x[0]^0~x[3].7(也可追加括号中绝对地址定位的方式,个人喜好了)这32个位就是你操作的“对象”,通常用宏定义中替换为你自己觉得舒服的内容。
    那么相对应的梯形图无非就是些与或非逻辑的组合,从LD到OUT,就是读开关状态到状态输出而已。
    其中“END”指令要处理好,比如你的程序初始化好了正式开始程序,而程序是从0x1234处运行的,一直到0x4321处碰上了“END”,那么应该用
while(TRUE){}包起来,while(TRUE)下第一段应该是读出输入开关量的子程序Read_Port();结尾前则是输出Write_Port();举例的基本结构如下:
==============================================================
    //文件包含(中断服务函数及各个子程序)及宏定义
void main(void)
{
    //各类初始化(内存分配等等)
    while(TRUE)
    {
        //看门狗处理
        Read_Port();
        //梯形图主体
        Write_Port();
    }
}
==============================================================
    计数器的问题,只要做好相关的interrupt,把精确的方波接在你的单片机外部中断口上,512Hz的方波,那就是约1953微秒外部中断一次,你就在用在定时器的RAM单元中-1(也可用+1的方式),数值只要等于0,也就是你设定的值被扣光了,就表示时间到了,自然可以进行相关的处理。
    


To Mr.h218
    观赏用的PCB,背面那张其实已经露馅了~~



To Mr.真白菜
    真厉害,这都看得出...全名是Altium Designer Summer 08,准确得说是AD7....

使用特权

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

本版积分规则