Generator

Generator funkcyjny 360kHz na ICL8038 z miernikiem częstotliwości

Każdy elektronik potrzebuje wykonać kiedyś generator. Ja akurat rozważałem kilka opcji, jedną z najtańszych było wykorzystanie do tego analogowej taniej kostki ICL8038. Wiele projektów takiego generatora krąży po sieci, lecz ja wybrałem jeden specyficzny ze strony http://mdiy.pl/ który też polecam ze względu na rozpiętość generowanych częstotliwości.
Producent podaje dla tej kostki częstotliwość max 200kHz, lecz po odciążeniu jej można uzyskać trochę więcej, odsyłam do strony autora pomysłu  – http://mdiy.pl/generator-funkcyjny-400khz-na-icl8038/ .
Kostka jest tania i jak się dowiadujemy z datasheet producenta aproksymuje sinusa nieliniowymi zależnościami złącza PN – tu wykorzystano tranzystory.

MODYFIKACJE

12334368_1710853175803284_93240836_oPłytke zmodyfikowałem według własnego widzimisie ponieważ łatwiej było mi zmontować całość. Do generatora dodałem też osobny projekt jakim jest zmodyfikowany pomysł miernika częstotliwości na Attiny2313. Tu płytka powstała już od podstaw moja. Przełączniki obrotowe wydały mi się dosyć dobre do tej konstrukcji, dwa 4 pozycyjne, zapewne ktoś zapyta po co pozycja „wył” skoro z tyłu jest wyłącznik – jest to odłączenie sygnału i przełączenie go do masy, żeby było szybciej sprawdzić na jakim poziomie w oscylogramie się znajduje.Transformator 2x15V 150mA jakby ktoś pytał.
A 400kHz na panelu to dla zaokrąglenia tylko dla mnie 😀

12349394_1710853185803283_1412309880_oWYGLĄD
Tak oto prezentuje się ten generatorek, ogólnie jestem zadowolony ale do rzeczy. Drugi raz nie robił bym czegoś takiego. Dlaczego?
Ponieważ wiercić tyle otworów, ciągnąć przewodami połączenia do panelu przedniego się nie opłaca… Lepiej zaprojektować samemu panel przedni. No ale jedna z pierwszych konstrukcji zawsze nie jest do końca przemyślana. No to można powiedzieć strzeliłem sobie w kolano. No cóż, po żmudnym wierceniu i montażu nadszedł czas na panel przedni który najpierw był biały i w dodatku krzywo wyszedł, rozjechał się, a że były na jego podstawie wiercone dziurki to klops – nowy panel z laminatu i potencjometry na przewody aby to wszystko upchać. Obudowa Z2-A dobrana tylko po to by wyświetlacz się zmieścił.

EKRANOWANIE
Już jak to zrobiłem to wypadało zaekranować – ekran przewodów – to płaszcz przewodu koncentrycznego który zgrabnie udało sie polutować przy użyciu sporej ilości kalafonii i wmasowywaniu cyny. Ekran całej płytki to puszka po napoju procentowym z dyskontu jak na studenta przystało 😀 No ale nie samym wyglądem człowiek żyje, zapraszam poniżej 😀


gora
srodek testowanie tyl tytul wnetrze1

 

 

 

 

 

 

 

 

 

 

 

 

12334368_1710853175803284_93240836_o

 

POMIARY

Zacznijmy więc od najseksowniejszego przebiegu dla elektronika:
sin1 sin2 sin3
Pomiary wykonane oscyloskopem Rigol DS1052E, jak widać całkiem nieźle się prezentuje nawet powyżej maksymalnej deklarowanej częstotliwości przez producenta – 200kHz. Jeżeli przebieg wydaje się pochylony sprawione to jest zbyt mało dokładnym wyregulowaniem potencjometru od wypełnienia – o tym we wnioskach na końcu. Transformata Fouriera ukazuje że jest to generator nieidealny i pojawiają się szczątkowe harmoniczne nie należące do idealnego sinusa

Trójkąt, lekko po macoszemu, lecz też całkiem nieźle:
tri1 tri2

 

No i na koniec prostokąt, i tu rewelacji nie ma:
squ1 squ2 squ3 squ4
no jak widać przy większych częstotliwościach nie jest kolorowo, ale czasami i taki wystarczy.

No i kolejna rzecz która się przydaje czyli regulacja wypełnienia przykładowo(przy 100kHz):

duty50 duty-max duty-min

PODSUMOWANIE
Czy warto? Na to pytanie musi odpowiedzieć sobie każdy konstruktor podobnego układu, do prostych mało dokładnych pomiarów audio, pomiarów i sterowania kluczy tranzystorowych w zakresie tych częstotliwości napewno warto. Hmmm a koszt?  Tu trudno zawsze sprecyzować ale:
– Attiny + LCD 2×16 + płytka i drobnica  około 20zł
– kostka icl – zależy gdzie, ja kupiłem okazyjnie za 6zł
– obudowa Z2-A – 10zł
– płytka potencjometry przełączniki przewody kondensatory około 30zł
– transformator 15zł

WNIOSKI:
– projektować po swojemu pod własną obudowę kiedy mamy części „na stole”
– minimalizować ilość mechanicznych części – potencjometry, przełączniki
– mierzyć wymiary po sto razy żeby nie zmarnować obudowy
– skoro już tworzymy coś to starajmy się to projektować w każdym szczególe, i przemyśleć nawet najdrobniejsze rzeczy prosto łatwo i przyjemnie

—————————————————————————————————————————-
Edycja 28.12.2015
Generator nie został modyfikowany i prawa autorskie należą do mdiy.pl zamieszczam jednak schemat i wzór płytki gdyby to przepadło w czeluściach internetu.
generatorbottom generatorschemat

Miernik częstotliwości też jest zaczerpnięty ze strony mdiy.pl lecz został zmodyfikowany – skompilowany kod pod własną częstotliwość kwarcu oraz użyty został wyświetlacz lcd który posiadałem.
Rozbieżność pomiaru na zdjęciach wynika ze zbyt małej stabilności wbudowanego zegara kwarcowego w Attiny2313 oraz tego że wyzwalany był sinusem, a nie jak jest dokładniej przebiegiem prostokątnym a dokładniej zboczem narastającym.
IMG_20150701_233114 IMG_20150701_233138 IMG_20150701_233405 IMG_20150701_233416 IMG_20150701_233428  miernikbottom miernikschemat mierniktop

No i niektórzy zapewne zapytają – panel przedni – zrobiony na papierze kredowym o gramaturze 150 i dodatkowo zalaminowany w sklepie papierniczym – szybko i tanio, zapłaciłem poniżej 3zł.
IMG_20151202_161714

Materiały w eaglu udostępniam na moim chomiku
Projekty elektroniczne – generator ICL, miernik częstotliwości Attiny2313 lcd

 

Pozdrawiam

Reklamy

Autor

Tomasz

Pasjonat elektroniki linuxa i programowania w C. Użyszkodnik linuxa głównie Debiana lecz i pochodnych oraz od jakiegoś czasu OpenSuse. Naukowo inżynier elektronik, technik informatyk. W wolnych chwilach gram na gitarze ;)

2 myśli na temat “Generator funkcyjny 360kHz na ICL8038 z miernikiem częstotliwości”

    1. Tu masz kod, skompiluj sam bo nie mam pod ręką kompilatora do tego, zmieniłem kwarc na 10MHz i usunąłem napis

      '$regfile = "2313def.dat"
      $regfile = "attiny2313.dat"
      '+-----------------------------------------------------------------------------+
      '| AVR Attiny2313 Frequency Meter 1.1 (7 digits, 10MHz) |
      '| Paweł Kisielewski (manekinen) manekinen@mdiy.pl - MDIY.PL |
      '| Not for commercial/profit/sell purposes |
      '| Compiler: Bascom AVR 2.0.7.6 Date: 25.03.3013 |
      '+-----------------------------------------------------------------------------+
      'I Modyfikację dla wysw. LCD I
      'I opracował: Waldek I
      'I---------------------------I

      'Crystal, put here your crystal frequency
      $crystal = 10000000 'L:FF; H:DF

      'Divide your crystal frequency by 1024 and put below
      'F.e. 16000000/1024=15625; 20000000/1024=19531,25 (use 19531); 25000000/1024=24414,0625 (use 24414)
      Const Compare = 21600

      Ddrd.4 = 0 : Portd.4 = 1 'we->pin 8
      Ddrb.0 = 1 : Portb.0 = 1 'sterowanie LED '
      Config Lcd = 16 * 2
      Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , _
      Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
      Cursor Off Noblink

      Config Timer0 = Counter , Edge = Falling
      Enable Timer0
      On Timer0 Count Nosave
      Config Timer1 = Timer , Prescale = 1024 , Clear Timer = 1
      On Oc1a 1s Nosave
      Enable Compare1a
      Compare1a = Compare
      Enable Interrupts
      Dim Multiplier As Word At &H70
      Dim Fr_byte_copy As Byte At &H74
      Dim Frequency As Dword
      Dim Freq_str As String * 7
      Dim Dlug As Byte
      Dim Vf_1 As String * 4 , Vf_2 As String * 3 , Vs As String * 9
      Cls
      Lcd " "
      Lowerline
      Lcd "f= "

      Do
      Loop
      End

      1s:
      $asm
      push R24
      IN R24,counter0
      STS &H74,R24
      IN R24, SREG
      push R24
      PUSH R10
      push R11
      push R12
      push R13
      push R14
      push R15
      push R16
      push R17
      push R18
      push R19
      push R20
      push R21
      push R22
      push R23
      push R25
      push R26
      push R27
      push R28
      push R29
      push R30
      push R31
      $end Asm

      Frequency = Multiplier
      Shift Frequency , Left , 8
      Frequency = Frequency + Fr_byte_copy
      Freq_str = Str(frequency)
      Multiplier = 0

      Reset Portb.0 'włącz LED
      Dlug = Len(freq_str )
      Locate 2 , 4 'wyświetl wynik
      Vs = Space(9)
      If Dlug = 4 And Dlug < 7 Then
      Vs = Space(4)
      Freq_str = Format(freq_str , "0.000")
      Lcd Freq_str ; Chr(32) ; "kHz" ; Vs
      End If
      If Dlug = 7 Then
      Vf_1 = Left(freq_str , 4 )
      Vf_1 = Format(vf_1 , "0.000")
      Lcd Vf_1 ; Chr(32)
      Vf_2 = Right(freq_str , 3)
      Lcd Vf_2 ; Chr(32) ; "MHz"
      ' Freq_str = Format(freq_str , "0.000000") 'wyświetlanie wyniku bez spacji
      ' Lcd Freq_str ; Chr(32) ; "MHz" ; Vs
      End If
      Set Portb.0 'wyłącz LED

      $asm
      pop R31
      pop R30
      pop R29
      pop R28
      pop R27
      pop R26
      pop R25
      pop R23
      pop R22
      pop R21
      pop R20
      pop R19
      pop R18
      pop R17
      pop R16
      pop R15
      pop R14
      pop R13
      pop R12
      pop R11
      pop R10

      'reset timer1 & counter0 at the same time
      ldi R24,&H00
      Out Tcnt1l , R24
      Out Tcnt1h , R24
      Out Tcnt0 , R24

      'erase timer0 interrupt flag
      in R24,tifr
      SBR R24,&H01
      Out Tifr , R24
      pop R24
      Out Sreg , R24
      pop R24
      $end Asm
      Return

      Count:
      $asm
      push R16
      IN R16, SREG
      push R24
      push R25

      'Incr Multiplier
      lds R24,&H70
      lds R25,&H71
      adiw R24,&H01
      sts &H70,R24
      STS &H71,R25

      POP R25
      POP R24
      Out Sreg , R16
      pop R16
      $end Asm
      Return

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s