توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مدار ضرب کننده فرکانس
morteza_rk
29-01-2010, 18:51
سلام به همگی
من نیاز به یک مدار ضرب کننده فرکانس دارم. این مدار باید فرکانس های ورودی رو که دریافت می کنه در عدد 1.35 ضرب کنه و در خروجی ظاهر کنه.
مثلا فرکانس 10 هرتز رو بگیره و 13.5 هرتز تحویل بده. فرکانس ورودی هم در محدوده ی 1 تا 200 هرتز هست.
روش کار رو می دونم ولی از لحاظ عملی براش مداری ندارم.
اگه اشتباه نکنم ما باید اول یه فرکانس 1.35 هرتز بسازیم ، بعد این فرکانس رو در فرکانسهای ورودی ضرب کنیم. اما مداری که بتونه این دو فرکانس رو در هم ضرب کنه نمی شناسم.
کسی می تونه کمکم کنه؟
سلام
کافیه توی بخش جستوجوی تصویر گوگل " Frequency Multiplier " رو جستو کنید :
You can see links before reply
You can see links before reply
You can see links before reply
morteza_rk
29-01-2010, 19:38
ممنون مهندس
ولی یه مدار می خوام که دقیقا ضرب کننده این فرکانس باشه و با ولتاژ 12 ولت مثبت کار کنه ونیازی به منبع تغذیه متقارن نداشته باشه.
بخش اول کار سادست ، یعنی ما بوسیله ی آی سی 555 یه فرکانس 1.35 هرتز می سازیم ، حالا می مونه یک مدار که این فرکانس رو در فرکانسهای دیگه ضرب کنه.
دوستان نظر بدید که با کمک هم بتونیم یه مدار طراحی کنیم.
سلام .
mc1496 یک ضرب کننده است . datasheet رو نگاه کن شاید بتونی ازش استفاده کنی .
morteza_rk
30-01-2010, 13:05
سلام
ممنون ، میرم نگاه کنم. خبرشو میدم.
morteza_rk
31-01-2010, 15:07
مهندس این آی.سی که معرفی کردی ولتاژ منفی 8 ولت هم می خواد ، در صورتیکه من به مدار +12 ولت نیاز دارم ، از لحاظ تغذیه محدودیت دارم.
تصمیم گرفتم یه برنامه با avr برای انجام این کار بنویسم ، اگه موفق شدم میذارمش اینجا.
سلام
خودت میتونی راحت تغییرش بدی . این مواردی که من گذاشتم مرجع برای کار شما هست .
morteza_rk
01-02-2010, 21:50
شما لطف داری مهندس ، ولی من از مدارهای مخابراتی زیاد خوشم نمیاد ، اینم چون فرکانسش پائین بود رفتم تو بحرش!
حالا برنامه ای با Atmega8 نوشتم که این کار رو انجام میده. کد برنامه رو پائین گذاشتم. ( با عرض شرمندگی کدی که قبلا گذاشته بودم توی ایجاد فرکانس های زیر 20 هرتز مشکل داشت ، در عوض کدهای جدید درست کار می کنن)
کد شماره ی یک : در این کد از کریستال ساعت برای تولید زمان 1 ثانیه ی دقیق استفاده شده.
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 10
$framesize = 40
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Configurations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Config Timer0 = Counter , Edge = Rising , Prescale = 1
Config Timer1 = Timer , Compare A = Toggle , Clear Timer = 1 , Prescale = 64
Config Timer2 = Timer , Async = On , Prescale = 128
Config Portc.1 = Input
Config Portc.2 = Input
Config Portb.4 = Output
Enable Timer0
Enable Timer1
Enable Timer2
Enable Ovf2
Enable Oc1a
Enable Interrupts
Portb.4 = 0
Stop Timer1
Stop Timer2
Timer2 = 0
Timer1 = 0
Counter0 = 0
On Ovf2 One_secend
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim Fin As Single
Dim Tin As Single
Dim Tout As Single
Dim Tout1 As Integer
Dim Scale As Single
Dim First_scale As Eram Single
Dim I As Eram Byte
Dim J As Eram Byte
Dim K As Byte
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start Timer2
Start Timer1
Do
Scale = 1.35
Loop
End
One_secend:
Stop Timer2
Fin = Counter0
Fin = Fin * Scale
Tin = 1 / Fin
Tin = Tin / 2 'Diuration of '1's
Tout = 15625 * Tin
Tout1 = Tout
Compare1a = Tout1
Timer2 = 0
Counter0 = 0
Start Timer2
Return
کد شماره ی دو ، بدون استفاده از کریستال ساعت و دارای کریستال 4 مگاهرتز
$regfile = "m8def.dat"
$crystal = 4000000
$hwstack = 32
$swstack = 10
$framesize = 40
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Configurations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Config Timer0 = Counter , Edge = Rising , Prescale = 1
Config Timer1 = Timer , Compare A = Toggle , Clear Timer = 1 , Prescale = 64
Config Timer2 = Timer , Prescale = 256
Config Portc.1 = Input
Config Portc.2 = Input
Config Portb.4 = Output
Enable Timer0
Enable Timer1
Enable Timer2
Enable Ovf2
Enable Oc1a
Enable Interrupts
Portb.4 = 0
Stop Timer1
Stop Timer2
Timer2 = 0
Timer1 = 0
Counter0 = 0
On Ovf2 One_secend
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dim Fin As Single
Dim Tin As Single
Dim Tout As Single
Dim Tout1 As Integer
Dim Scale As Single
Dim First_scale As Eram Single
Dim I As Eram Byte
Dim J As Eram Byte
Dim K As Byte : K = 1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initionaliz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start Timer2
Start Timer1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Main program ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Do
scale=1.35
Loop
End
One_secend:
If K = 62 Then
Stop Timer2
K = 1
Fin = Counter0
Fin = Fin * Scale
Tin = 1 / Fin
Tin = Tin / 2 'Diuration of '1's
Tout = 62500 * Tin
Tout1 = Tout
Compare1a = Tout1
Timer2 = 0
Counter0 = 0
Start Timer2
End If
Incr K
Return
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.