搜索
bottom↓
回复: 76
打印 上一主题 下一主题

有 用 硬 件 做3 相 正 弦 波 发 生 器 的 吗。指点下,看看这个框图方案!!

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2009-9-28 00:55:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
</a>

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

2
发表于 2009-9-28 01:44:06 | 只看该作者
这东东我也准备DIY一个,因为要调三相可控硅充电器,每次调试都要到有三相的工厂去,非常不方便.
但你想要的是多少功率,频率,电压的呢?

出0入0汤圆

3
 楼主| 发表于 2009-9-28 07:58:47 | 只看该作者
频率0-400HZ,电压0-200V AC。功率大概3KW以内呵

出0入0汤圆

4
发表于 2009-9-28 08:59:09 | 只看该作者
不用2-4译码器,脉冲分配器4017,接成3分频器。

出0入4汤圆

5
发表于 2009-9-28 09:23:52 | 只看该作者
2-4译码器是实现A.B.C三相互差120°

出0入0汤圆

6
发表于 2009-9-28 10:31:38 | 只看该作者
建议用at90pwm3b  编一个程序!  用硬件太繁琐了

出0入0汤圆

7
发表于 2009-9-28 10:32:00 | 只看该作者
将二进制计数器的Q0,Q1接到74HC138的A0,A1端,译码后由O0,O1,O2分别输出到DA0,DA1,DA2的片选端就可以了,波形数据存储器里的数据按A,B,C,D,A,B,C,D...存储数据,及A的地址位N*4,B的地址位N*4+1,C的地址位N*4+2,N=0~每项的数据长度,D为不用的数据

出0入0汤圆

8
发表于 2009-9-28 10:56:30 | 只看该作者
"译码后由O0,O1,O2分别输出到DA0,DA1,DA2的片选端就可以了"
应该是输出到DA的锁存端吧?DA_片选无效时,DA输出是什么?

出0入0汤圆

9
 楼主| 发表于 2009-9-28 12:03:46 | 只看该作者
74hc138是3-8译码器吧,用在这里也可以吗

出0入0汤圆

10
发表于 2009-9-28 12:20:17 | 只看该作者
单个DA的做法:在时钟的上升沿选中DA,在时钟的下降沿锁存数据
多个DA的做法:在时钟的上升沿选中DA,在时钟的下降沿锁存数据到寄存器,等多个DA数据写入完成后,然后在同一时刻将寄存器的数据写入锁存器,就能同时输出DA电压了
DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。

出0入0汤圆

11
发表于 2009-9-28 12:22:37 | 只看该作者
【7楼】 cowboy
应该是输出到DA的锁存端吧?DA_片选无效时,DA输出是什么?
-------------------------------------------------------
先要选中才能锁存数据,有时间差的
DA_片选无效时,DA输出不变

出0入0汤圆

12
发表于 2009-9-28 12:23:22 | 只看该作者
数/模转换器芯片DAC 0832

出0入0汤圆

13
发表于 2009-9-28 12:31:21 | 只看该作者
DAC0832中文应用资料

出0入0汤圆

14
发表于 2009-9-28 12:50:18 | 只看该作者
呵呵,DAC0832,不知楼主对8位的精度否足够。

出0入0汤圆

15
发表于 2009-9-28 12:58:49 | 只看该作者
即使使用12位或16位或更高,原理都是一样的

出0入0汤圆

16
 楼主| 发表于 2009-9-28 13:01:56 | 只看该作者
我用Proteus 仿的2-4译码器件输出Y0--Y1--Y2图。时序对吗?<</a>

出0入0汤圆

17
发表于 2009-9-28 13:04:54 | 只看该作者
既然有双缓冲,就可以同是更新。我只用过0832,其它的DAC不太了解。现在的问题是,XFER信号从哪取合适呢?楼主框图没有MCU,需要硬件产生这个时序。能否利用二进制计数器的Q1引脚反相后当XFER?

出0入0汤圆

18
 楼主| 发表于 2009-9-28 13:10:55 | 只看该作者
呵呵,通常的EEPROM只有8位数据输出端,如果用大于8位的D/A,那是不是要更多的EEPROM级联来扩展呢?

出0入0汤圆

19
发表于 2009-9-28 13:19:28 | 只看该作者
楼主为何不用MCU呢?MCU做这个比较方便。

出0入0汤圆

20
发表于 2009-9-28 13:21:38 | 只看该作者
用两片就可以了,一片存低8位,一片存高4位或高8位,两片的数据并行到DA

出0入0汤圆

21
发表于 2009-9-28 13:28:58 | 只看该作者
利用译码器输出的O3接到3个DAC的WR2,用于同时更新3个DA,XFER可以接地

出0入0汤圆

22
发表于 2009-9-28 13:32:20 | 只看该作者
WR1连接到二进制计数器的时钟信号,如果计数器是下降沿计数则需反向后输出到WR1

出0入0汤圆

23
 楼主| 发表于 2009-9-28 22:53:18 | 只看该作者
LS的老大有没QQ?我用Proteus7.5 仿了下,波形出来了。但是软件里的逻辑分析仪用不了,不知道相位对不。加你实时交流下呵,393664906
图纸跟波形如下,
</a>


</a>

出0入0汤圆

24
发表于 2009-9-28 23:42:03 | 只看该作者
把仿真文件传上来吧!

出0入0汤圆

25
 楼主| 发表于 2009-9-29 05:51:49 | 只看该作者
点击此处下载 ourdev_486735.rar(文件大小:21K) (原文件名:新建文件夹.rar)

出0入0汤圆

26
 楼主| 发表于 2009-9-29 05:59:28 | 只看该作者
单路一个周期正弦波我采样512个点,分3路存在ROM中。第一路起始点0000H。第二路2000H。第3路4000H,第4路6000H为80H(清零),合并存为一个HEX文件,不知道这样有没错

出0入0汤圆

27
 楼主| 发表于 2009-9-29 09:29:39 | 只看该作者
1

出0入0汤圆

28
发表于 2009-9-29 09:49:41 | 只看该作者
看来你cqfeiyu 的意思理解错了,数据应交错存放而不是顺序存放,即 a0,b0,c0,空,a1,b1,c1,空,a2,b2,c2,空.........

出0入0汤圆

29
发表于 2009-9-29 11:12:00 | 只看该作者
修改一下数据排序方式,并加一个反相器到计数器的时钟就可以了。
点击此处下载 ourdev_486942.rar(文件大小:58K) (原文件名:新建文件夹.rar)

(原文件名:tmp.PNG)


(原文件名:未命名.PNG)

出0入0汤圆

30
 楼主| 发表于 2009-9-29 12:05:39 | 只看该作者
不错,楼上的老大那正弦表如何做的?手动一个个输入吗?那不累S

出0入0汤圆

31
发表于 2009-9-29 13:07:16 | 只看该作者
压缩包内有EXCEL文档进行序列计算

出0入0汤圆

32
 楼主| 发表于 2009-9-30 12:31:55 | 只看该作者
再请教下。EXCEL中正弦单路数据做出来后,3路的怎样快睫交错放置呢?还不知道生成表格后数据如何取出来用的?我下面生成的单路图,</a>

出0入0汤圆

33
发表于 2009-9-30 12:41:02 | 只看该作者
直接在EXCEL里交错排列得了,参照我压缩包中的XLS文件。

出0入0汤圆

34
 楼主| 发表于 2009-9-30 13:03:24 | 只看该作者
呵,谢谢了,再研究下

出0入0汤圆

35
发表于 2009-10-1 14:47:37 | 只看该作者
【27楼】 cowboy
看来你cqfeiyu 的意思理解错了,数据应交错存放而不是顺序存放,即 a0,b0,c0,空,a1,b1,c1,空,a2,b2,c2,空.........
-----------------------------------------------------------------------------------------------------------
好好看一下我6楼的描述,这么会错呢?理解能力有问题,我的描述有问题?冤枉呀,我要上诉

【6楼】 cqfeiyu
将二进制计数器的Q0,Q1接到74HC138的A0,A1端,译码后由O0,O1,O2分别输出到DA0,DA1,DA2的片选端就可以了,波形数据存储器里的数据按A,B,C,D,A,B,C,D...存储数据,及A的地址位N*4,B的地址位N*4+1,C的地址位N*4+2,N=0~每项的数据长度,D为不用的数据

地址 数据
000  A0
001  B0
002  C0
003  D0
004  A1
005  B1
006  C1
007  D1
008  A2
009  B2
010  C2
011  D2
.......

试问A的数据的地址难道不是0 4 8 12...吗?(及N*4)
试问B的数据的地址难道不是1 5 9 13...吗?(及N*4+1)
试问C的数据的地址难道不是2 6 10 14...吗?(及N*4+2)

出0入0汤圆

36
发表于 2009-10-1 15:03:21 | 只看该作者
【34楼】 cqfeiyu 误会了,我说的是楼主
“看来你cqfeiyu 的意思理解错了”  原意:看来你(指楼主)对(漏打了对字)cqfeiyu 的意思理解错了

cqfeiyu 的思路很好,可以简化硬件设计,只要在ROM中把数据交错一下。

出0入0汤圆

37
发表于 2009-10-1 15:07:42 | 只看该作者
不要以为当了版主就无视别人的存在,德性,山外有山人外有人

出0入0汤圆

38
发表于 2009-10-1 15:09:00 | 只看该作者
气得我不行

出0入0汤圆

39
发表于 2009-10-1 15:12:48 | 只看该作者
好好看一下许老师的帖子
可以让你少奋斗10年的工作经验

出0入0汤圆

40
发表于 2009-10-2 09:01:04 | 只看该作者
按楼主目前每相每周期128个取样点,DA输出波形颗粒噪声较大。既然用上27C256,可以提高分辨率到每相1024点,这样输出波形更圆滑,当然,这时主时钟也需相应提高。

出0入0汤圆

41
发表于 2009-10-2 18:20:10 | 只看该作者
顺序版的来了,每一相的长度为512个字节
[url=http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_487873.JPG][/url]
顺序版SPWM (原文件名:SPWM-1.JPG)
-------------------------------------------------------------------
由于图纸错误,为了不误导,所以不显示出来,正确版本请见46楼

出0入0汤圆

42
发表于 2009-10-2 18:22:45 | 只看该作者
顺序版仿真文件,EXCEL,C,HEX文件包ourdev_487874.rar(文件大小:77K) (原文件名:SPWM.rar)

出0入0汤圆

43
发表于 2009-10-2 18:41:03 | 只看该作者
【40楼】 cqfeiyu 图中地址连线是否再改进一下?A9、A10和A0、A1连在一起,四个数据中只有一个能起作用,512个数据仍是128点效果。

出0入0汤圆

44
发表于 2009-10-2 19:00:53 | 只看该作者
【42楼】 cowboy
【40楼】 cqfeiyu 图中地址连线是否再改进一下?A9、A10和A0、A1连在一起,四个数据中只有一个能起作用,512个数据仍是128点效果。
--------------------------------------------------------------------------------------------------------------------------
是这样子的,
为了和地址的A0,A1,A9,A10区分开三相电用U,V,W表示
现在的数据是按U0,U1,U2...U511,V0,V1,V2...V511,W0,W1,W2...W511排列,
所以U相占用了0~511的空间,
    V相占用了512~1023的空间,
    W相占用了1024~1535的空间,
当片选DA1时,A9=0,A10=0,所以寻址0~511,
当片选DA2时,A9=1,A10=0,所以寻址512~1023,
当片选DA3时,A9=0,A10=1,所以寻址1024~1535,
当A9=1,A10=1,时三个DA同时输出数据

出0入0汤圆

45
发表于 2009-10-2 19:25:47 | 只看该作者
“当片选DA1时,A9=0,A10=0,所以寻址0~511, ”
这个我知道,但0~511内是不能连续输出数据,U相只能从0,4,8,12,....508中读出数据;
同理,V相只能从1,5,9,13,....509中读出数据;
V相只能从2,6,10,14,....510中读出数据;

所以还是128点的效果。

出0入0汤圆

46
发表于 2009-10-2 19:32:24 | 只看该作者
其实把地址线交错一下就行了:

(原文件名:未命名.PNG)

出0入0汤圆

47
发表于 2009-10-2 20:04:43 | 只看该作者
一时糊涂哈,着气晕了的后遗症
每相1024个数据的顺序版(修正)来了

顺序版(修正) (原文件名:SPWM1024.JPG)
顺序修正版源码仿真包ourdev_487886.rar(文件大小:119K) (原文件名:SPWM.rar)

出0入0汤圆

48
发表于 2009-10-2 20:48:34 | 只看该作者
别在电路上费脑筋了,这不算难,想想"0-200V AC。功率大概3KW以内"的功率部分咋办?

出0入0汤圆

49
发表于 2009-10-2 21:35:05 | 只看该作者
参考变频器吧

出0入0汤圆

50
发表于 2009-10-2 21:37:28 | 只看该作者
线性的话参考功放吧

出0入0汤圆

51
发表于 2009-10-7 17:03:48 | 只看该作者
mark

出0入0汤圆

52
发表于 2009-10-7 18:51:54 | 只看该作者
要成品不,功率可到300kw,3kw很容易

出0入0汤圆

53
 楼主| 发表于 2009-10-8 12:43:44 | 只看该作者
正弦频率范围比较宽。这个CLK的时钟信号用什么方式产生才能稳定且无级调节(比如输出正弦波频率最小到0.01HZ步进)呢?有实用的电路推荐吗。

出0入0汤圆

54
发表于 2009-10-8 12:49:53 | 只看该作者
DDS

出0入0汤圆

55
 楼主| 发表于 2009-10-8 13:04:16 | 只看该作者
如果用DDS的话上面这些硬件电路都可以省拉。用CPLD检测带按键的那种编码开关如何?按下是步进选择,比如0.1\1\10\100hz 顺反转为频率的加减;当然2进制计数器也可以做在内部,做成14位的。。

出0入0汤圆

56
发表于 2009-10-10 17:35:06 | 只看该作者
因为要涉及到小数位,所以要整数分频还要小数分频

出0入0汤圆

57
发表于 2009-10-10 17:35:39 | 只看该作者
小数分频又叫相位计数器

出0入0汤圆

58
发表于 2009-10-15 10:48:24 | 只看该作者
如何将EXCEL生成的数据转换成可下载于FLASH中的HEX文件???????????????

出0入0汤圆

59
发表于 2009-10-15 18:49:15 | 只看该作者
copy phase        edit compile
EXCEL-------------> *.h -------------> *.hex

出0入0汤圆

60
发表于 2009-10-17 08:53:58 | 只看该作者
楼上能否说清楚点,谢谢!

出0入0汤圆

61
发表于 2009-10-17 09:38:48 | 只看该作者
先用EXCEL做好数据,把所需的数据复制;


(原文件名:1.PNG)



用文本编缉器新建一文件,把数据粘贴上去,然后设法在每个数据后面加上“,”,如下图是在UltraEdit-32中编缉的方法;


(原文件名:2.PNG)



在头尾加入 unsigned char sin[512]= {   }; 然后保存为*.h,再用编译器编译,生成*.hex即可。


(原文件名:3.PNG)

出0入0汤圆

62
发表于 2009-10-17 13:16:26 | 只看该作者
谢谢,楼上

出0入0汤圆

63
发表于 2009-10-17 13:42:25 | 只看该作者
请问用那个编译器呀,KEIL编译不了呀

出0入0汤圆

64
发表于 2009-10-17 14:17:02 | 只看该作者
KEIL中要把*.h改为*.c

出0入0汤圆

65
发表于 2009-10-18 09:50:34 | 只看该作者
也不行啊,再KEIL里建立一个工程,然后把.C文件加进去,编译报错,提示没有'MAIN()'函数,楼上能否留下QQ,万分感谢

出0入0汤圆

66
发表于 2009-10-18 10:42:11 | 只看该作者
用FPGA或者CPLD制作比较简单,没有单片机类的受干扰容易死机的问题。

出0入0汤圆

67
发表于 2009-10-18 11:09:48 | 只看该作者
【64楼】 xyz2008 ,我试了并没有报错呀。

(原文件名:未命名.PNG)

出0入0汤圆

68
发表于 2009-10-18 11:14:26 | 只看该作者
呵呵,忘了说要加“code”修饰词

出0入0汤圆

69
发表于 2009-10-18 12:50:04 | 只看该作者
知道了,非常感谢楼上,请问74HC4040的计数频率跟正弦波的输出频率有很么对应关系

出0入0汤圆

70
发表于 2009-10-18 13:14:22 | 只看该作者
学习中

出0入0汤圆

71
发表于 2009-10-18 14:20:12 | 只看该作者
mark

出0入0汤圆

72
发表于 2009-10-18 14:43:28 | 只看该作者
输出正弦波频率=计数器时钟频率/4/每一项数据的长度
每一项数据的长度=2的X次方;X=正整数;
每一项数据的长度=其中之一(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192...)

出0入0汤圆

73
发表于 2009-10-19 00:16:02 | 只看该作者
46楼的文件没有错误呀,顺利通过编译

出0入0汤圆

74
 楼主| 发表于 2009-10-19 00:57:44 | 只看该作者
搞定拉,谢谢两位热心的老大,是我下的软件版本没破解好的问题

出0入0汤圆

75
发表于 2010-9-1 15:52:11 | 只看该作者
先收藏,学习学习
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 18:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表