查看: 1236|回复: 18
|
什么IC可以convert frequency去digital?
[复制链接]
|
|
请问各位高手,
现在我作个project,要把一个waveform
转换去digital,
不知道有什么办法呢?
比如 1KHz= 100
2KHZ= 101
。。。
谢谢大家 |
|
|
|
|
|
|
|
发表于 18-1-2007 12:09 PM
|
显示全部楼层
回复 #1 ajijakoko 的帖子
你要的是freq counter, 对吗?是作什么应用? |
|
|
|
|
|
|
|
发表于 18-1-2007 12:11 PM
|
显示全部楼层
如果waveform是普通的sinewave,用有Analog comparator 的IC.
如果waveform变化很多(如乐器声音)。只要IC有ADC就可以了。先把waveform换成digital data.(用 ADC sampling),储存在RAM.然后用FFT(Fast Fourier Transform)找出它的Foundemental Frequency.
FFT满复杂的,到Google去搜寻资料吧。
要不然花点钱,买一些DSP可以做FFT的。
用FFT找到Foundemental Frequency后,再用你本身的Formula换成 101, 102。。。。 |
|
|
|
|
|
|
|
楼主 |
发表于 18-1-2007 06:07 PM
|
显示全部楼层
原帖由 pic 于 18-1-2007 12:09 PM 发表
你要的是freq counter, 对吗?是作什么应用?
我是做一台function generator.
可以出sine wave , square and tri. wave.
max frequency =20Mhz.
但要显示在LCD上。 所以要把function gen的 frequency
转回digital.
frequency counter 是用来做么的?
谢谢 |
|
|
|
|
|
|
|
楼主 |
发表于 18-1-2007 06:12 PM
|
显示全部楼层
原帖由 thngkaih 于 18-1-2007 12:11 PM 发表
如果waveform是普通的sinewave,用有Analog comparator 的IC.
如果waveform变化很多(如乐器声音)。只要IC有ADC就可以了。先把waveform换成digital data.(用 ADC sampling),储存在RAM.然后用FFT(Fast Fourier ...
我的只是普通的sinewave, square and trig wave 罢了。
但不知square amd trig 可以也用 Analog comparator ic 吗?
谢谢大家 |
|
|
|
|
|
|
|
发表于 18-1-2007 06:42 PM
|
显示全部楼层
很多IC都有Analog comparator。我本身比较熟悉ATmega IC.
Square wave, triangular wave, sine wave 都可以用Analog comparator算Frequency.
FFT 可以把好几种Frequency混合的waveform算出它的Frequencies.
如果你的waveform的 peak to peak,是从25%的Vcc到75%的Vcc。那么你可以用普通的Digital Input Pin读High/Low.你可以用一秒读10,000次High/Low。(读的次数最少max frequency的两倍)。从High去Low,算一次。最后的次数就是frequency。
用Analog comparator会比较准确。定一个reference后,每当你的waveform高过或低过reference ,都可以interrupt或set flag.再用interrupt 次数 除sample的时间。 |
|
|
|
|
|
|
|
发表于 18-1-2007 06:43 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 18-1-2007 06:49 PM
|
显示全部楼层
对不起,没看到20MHz.
普通IC应该算不到。最少要80MHz的IC巴!!! |
|
|
|
|
|
|
|
楼主 |
发表于 19-1-2007 11:40 AM
|
显示全部楼层
原帖由 thngkaih 于 18-1-2007 06:49 PM 发表
对不起,没看到20MHz.
普通IC应该算不到。最少要80MHz的IC巴!!!
那市场上有什么IC 可以支持到80Mhz 的呢?
现在的IC 大多数可以去到几Mhz?
谢谢大家 |
|
|
|
|
|
|
|
发表于 19-1-2007 11:57 AM
|
显示全部楼层
80Mhz的IC非常难买。一般Micro-controller差不多8Mhz-20Mhz。而且很多都不是1 cycle - 1 instruction.也就是说execute每个instruction,需要4倍到8倍的时间。我建议的80Mhz, 只是最少。
你可以到一些较有名的IC 公司网页去查查。如PIC, ATmel... etc
你应该找一些Micro-processor/ARM processor之类的。一般Micro-controller难以达到那么快。
这些Micro-processor本地也不好买。你可以到www.digikey.com去找找。 |
|
|
|
|
|
|
|
发表于 19-1-2007 01:24 PM
|
显示全部楼层
回复 #4 ajijakoko 的帖子
这是两个问题。
我是做一台function generator.
可以出sine wave , square and tri. wave.
max frequency =20Mhz.
1。你已经做好了吗?或已经拥有了吗?
2。如没有,你要DIY?那是给什么用?需要很精确吗?需要自动或手动?
3。有一些Analog IC, function generator IC, 可以产生你要的信号。
Google 找一下。。。
http://www.oceancontrols.com.au/test_equipment/func_gen_k101.htm
MAX038 High-Frequency Waveform Generator
4。如Freq 可以低一点, 你可能可以用 dsPIC (DSP) 来做, 但我不会。
但要显示在LCD上。 所以要把function gen的 frequency
转回digital. Frequency counter 是用来做么的?
frequency counter , 就是用来算Freq, 也就是你要的,要显示在LCD上的Frequency。
Function Generator(函数产生器),可以是digital的, 但也可以是Analog的。
你要用来修理电视?或是。。。?
我不知道你的应用是什么,用作什么用途。。。
但为什么不考虑买一台function Generator (Analog)+ 你只要DIY Freq Counter 会更简单。
么不考虑买一台function Generator (Analog)+ 你只要DIY Freq Counter 会更简单。
[ 本帖最后由 pic 于 19-1-2007 01:37 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 20-1-2007 11:54 AM
|
显示全部楼层
原帖由 pic 于 19-1-2007 01:24 PM 发表
这是两个问题。
1。你已经做好了吗?或已经拥有了吗?
2。如没有,你要DIY?那是给什么用?需要很精确吗?需要自动或手动?
3。有一些Analog IC, function generator IC, 可以产生你要的信号。
Googl ...
其实我就是做了一台function generator 用Max038。
但没有lcd。
看来在input resistor/capacitor 那下手会比较容易了。。
只是没办法确定output frequency 跟LCD显示的frequency match 了。
不知各位高手有什么idea 吗? |
|
|
|
|
|
|
|
发表于 20-1-2007 02:33 PM
|
显示全部楼层
回复 #12 ajijakoko 的帖子
其实我就是做了一台function generator 用Max038。
但没有lcd。
在一开始, 你就应该说明。thngkaih 很用心的回覆你,告诉你方法,但看来是白费了。。。
看来在input resistor/capacitor 那下手会比较容易了。。
只是没办法确定output frequency 跟LCD显示的frequency match 了。
现在我要先问, 看来你已经有了LCD以显示frequency对吗?
问题是你不懂如何match?那里tap signal?
还是。。。。?
大家可能要搞懂上面的疑问才能给建议。 |
|
|
|
|
|
|
|
楼主 |
发表于 20-1-2007 07:43 PM
|
显示全部楼层
原帖由 pic 于 20-1-2007 02:33 PM 发表
在一开始, 你就应该说明。thngkaih 很用心的回覆你,告诉你方法,但看来是白费了。。。
现在我要先问, 看来你已经有了LCD以显示frequency对吗?
问题是你不懂如何match?那里tap signal?
还是。。。 ...
原帖由 pic 于 20-1-2007 02:33 PM 发表
在一开始, 你就应该说明。thngkaih 很用心的回覆你,告诉你方法,但看来是白费了。。。
现在我要先问, 看来你已经有了LCD以显示frequency对吗?
问题是你不懂如何match?那里tap signal?
还是。。。 ...
不好意识。。。 之前没说清楚。。。。
但thngkaih 和PIC真的给了我很多宝贵的意见。
我原本想要拿output freq ADC 然后interface LCD的。
所以才问了这么多关于ADC 的东西。
但听thngkaih说80Mhz. :-s 应该是不可能了。。。。 :-(
所以现在我的Idea 就是从input 哪里下手。
应为max038用Resistor and cap 来定output。
比如我的resistor 1k是output freq = 100HZ。
2K maybe 200Hz... 等等。
但最大的问题是。我的LCD 显示100Hz,但真正的 o/p freq 可能不是100Hz。
(应为+- of resistor and cap). :-s
现在我还没有LCD 显示freq, 但之前有做过LCD interface using 877 了。
所以现在的问题就像PIC说的不知在哪里tap signal 比较好。
不知大家有什么更好的concept吗。
真的谢谢大家帮忙。。 |
|
|
|
|
|
|
|
发表于 20-1-2007 10:31 PM
|
显示全部楼层
回复 #14 ajijakoko 的帖子
其实,MAX038 的Pin14 SYNC 已经提供了TTL output, 你可以tap这里。
用你会的877+LCD, 作一个Freq Counter就可以了。
如果你的877不能接收那么高的Freq, 你可以利用binary counter 来Freq divider ,把Freq 除小(divide)以便测量。
Freq Counter怎样做就去Google找找看吧。。。 |
|
|
|
|
|
|
|
楼主 |
发表于 21-1-2007 11:42 AM
|
显示全部楼层
刚才在google找了50mhz的freq counter。 明天去买component。
希望可以用。
现在又有几个问题出现了。
刚刚try我的max038 output。
发现ttl 其实是早过 o/p 半cycle.同时也发现几个问题。。。。 :-s
1. ttl从low to high 或 high to low时。
o/p 就会有noise。
2. over shoot 在o/p point (when high to low or l to h)
3. 原本的circuit 是 connect to EL2001, 但由于买不到它。
所以我换成 opa633。
但freq变的比较不stable。(time base) 可能是 mathching问题吧。
不知还有什么buffer IC 可以用在o/p吗?
谢谢大家 |
|
|
|
|
|
|
|
发表于 21-1-2007 10:27 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 22-1-2007 01:04 PM
|
显示全部楼层
原帖由 pic 于 21-1-2007 10:27 PM 发表
早过 o/p 半cycle? 有什么问题呢?Freq还是一样啊。。。
TTL O/P有noise?Over Shoot?你用Scope看到?那也不会影响你的freq Counter 啊。。
你指那一个circuit?MAX083?还是Freq Counter? ...
我的function generator没有用在指定的用途。
只是纯粹要做个function gen 罢了。
也许是我用的oscilloscope 精确度太高了吧。
所以看到比较精确。。 :-s
noise and over shoot 我是在scope看到的。
当我加入high speed buffer(opa633), waveform 变得更不stable. (jitter)..
如果找不到适合的buffer ic, 我应该会选择direct output.
毕竟我的op 只是在scope看罢了。。
我的fre counter circuit and component 还没买。。
所以暂时还不知道interface 会不会出问题。。
希望一切顺利吧。。 :-D
真的要谢谢 PIC 和 thngkaih
谢谢。。。 |
|
|
|
|
|
|
|
楼主 |
发表于 11-2-2007 07:21 PM
|
显示全部楼层
刚刚Test了我 f。counter, 可以用了。。
真的谢谢cari的各位高手。
还有一个问题。
我的output是接去VResistor的,
它可以调 (从0V 到 2.5V)。
有什么方法可以detect它的Vpp然后显示在LCD吗?
比如2Vpp它的output是 1001(binary) 。。。 and 等等。
谢谢大家 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|