Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Generator serwisowy na ATMega162-16PI

antrykot 22 Wrz 2006 19:32 2226 13
  • #1 22 Wrz 2006 19:32
    antrykot
    Poziom 20  

    Witam.
    Planuje zrobić mały generator serwisowy na ww AVRku.
    Powinien posiadać 4 przyciski do zmiany częst. i zakresu, wyświetlacz LED z multipleksowaniem min 3 cyfry (preferowane 6), częstotliwość maksymalną ok 200-500kHz (mogło by być więcej oczywiście) i oprogramowanie napisane w C.

    Teraz moje pytanie - czy on to uciągnie. Zakładam że sygnał z tą częstotliwością miałby generować procek. Później wzmacniacz, i aproksymacja do sinusoidy. Czy przy odpowiedniej optymalizacji da rade , czy zastanawiać sie nad generatorem sterowanym napięciowo przez procka ?

    Z góry dzięki za odpowiedzi.

    //edit
    Mam 8MHz kwarce, choć zawsze można kupić 16-stke.

    0 13
  • #2 23 Wrz 2006 13:44
    antrykot
    Poziom 20  

    Nikt nigdy nie pisał czegoś takiego ?
    Chodzi mi tylko o orientacyjną odpowiedz.

    0
  • Pomocny post
    #3 23 Wrz 2006 14:03
    lbugiera
    Poziom 21  

    Na pewno procesor sobie z tym poradzi. Wystarczy uzyć któregos timera w trybie CTC i osiągniesz każdą częstotliwość z zakresu clk/2. Będzie to generowane cąłkowicie sprzętowo, a w tym czasie procek bedzie mógł się zająć monitorowaniem portów i wyświetlacza.

    Tak w ogóle to ATM16 jest nawet na to zaduży. Wystarczy ATTINY2313. Szczególnie jeśli wyświetlacz LED oprzesz na rejestrach HC595 i transmisji po SPI.

    Attiny może ewentualnie zabraknąć pinów jeśli dasz wyświetlacz graficzny lub alfanumeryczny (typowego alfanumerycznego LCD nigdy nie obsługiwałem i nie wiem ile "bierze" pinów). Alfanumeryczny wyjdzie chyba nawet taniej niż np 5 LED'ów + rejestry HC595.

    Pozdrawiam
    Boogie

    0
  • Pomocny post
    #4 23 Wrz 2006 15:03
    przemek20
    Poziom 20  

    A ja się zastanawiam jak ty chcesz robić z tego sinusoidę w tak szrokim zakresie częstotliwości?? Prockiem bez żadnego problemu wygenerujesz dowolny prostokąt tylko co dalej?
    Mogłbyś zastosować przetwornik cyfra analog ale może ma ktoś lepsze pomysły.

    0
  • #5 23 Wrz 2006 15:39
    antrykot
    Poziom 20  

    Dzięki za odpowiedzi.
    Jedyne co mi przychodzi do głowy, to aproksymacja (RC), z tym że trzeba jakoś przełączać kolejne filtry.
    Można by zmieniać piny wyjściowe (zakresów ma być 4 lub 6) więc pinów spokojnie starczy, ale jeden sprzętowy generator działa chyba na jednym pinie, więc odpada.
    Planuje diody pokazujące wybrany zakres, więc może z nich podam sygnał na klucze tranzystorowe które włączą odpowiedni filtr. Co o tym myślicie ?

    //edit
    Jeszcze co do kosztów:
    Części praktycznie wszystkie mam, dlatego taki zestaw.
    Sterowanie wyśw. LED planuje zrobić na 4pin na BCD do decodera + 6 pinów na klucz tranzystorowy włączający odp. wyśw.

    0
  • Pomocny post
    #6 24 Wrz 2006 17:32
    morph13
    Poziom 25  

    Odpowiedz na pytanie postawione w tym wątku można znaleźć TUTAJ
    I od razu na wstępie "zapomnij, że zrealizować taki projekt będzie łatwo" !!!.
    A o C to lepiej zapomnij......... chyba, że potem po kompilaci pliku C do asm zrobisz optymalizację.....

    0
  • #7 24 Wrz 2006 18:58
    antrykot
    Poziom 20  

    Hmmm....nie dobrze. Asma znam tak jak wcale :/ W C++ pisze już długo na peceta, więc w C też sie orientuje, ale asm...
    A co gdyby procek sterował zewnętrznym generatorem, strojonym napięciem przez PWM ? Odpadł by problem z aproksymacją do sinusoidy, ale jest kolejny problem ze sterowaniem takiego generatora. Warikapy mają bardzo małą pojemność, i nadają sie tylko do dużych częstotliwości.
    Może ktoś poleci układ jakiegoś generatora sterowanego napięciem, który pokryje pasmem pożądany zakres, czyli powiedzmy 1Hz (kilkanaście też może być) do ~500kHz i przy tym nie będzie jakiś kosmicznych zniekształceń. Od razu mówie że raczej nie chce wynalazków typu ICL8038, chyba że była by to ostatnia deska ratunku.

    BTW.Twój projekt wygląda bardzo imponująco i profesjonalnie. Na ile go wyceniłeś i czy byli chętni na allegro ?

    0
  • #8 24 Wrz 2006 21:44
    morph13
    Poziom 25  

    Został mi tylko jeden zestaw (reszta już się rozeszła).

    Główna procedura jest w asm i jest to procedura generacyjna bazująca na odczycie próbek z tablicy stałych. Tak jest dla wszystkich przebiegów poza przebiegiem użytkownika. Dlatego całość sterowania dział na przrwaniach.

    Całość to około 6k kodu z czego 2k to same tablice i inne potrzebne stałe do wyliczeń matematycznych.

    Dokładność jest rzędu 0,1Hz (można i 0,01Hz ale po co). Programowe ograniczenie Fout do 35kHz ze względu na występowanie zniekształceń przebiegu prostokatnego. Z tego co pamietam to sinus był jeszcze w miarę nawet dla 500kHz jednak o małej amplitudzie. Problem mozna poniekąd rozwiązać poprzez zastosowanie szybkiego C/A na wyjściu. Jednak z tym wiążą się koszty końcowe urządzenia.

    0
  • #9 24 Wrz 2006 22:15
    antrykot
    Poziom 20  

    Dla mnie zniekształcenia nie są nawet takie ważne. Chodzi o to by wygenerować przebieg. Można by go potem ew. przepuścić przez bramke Shmitta i wzmacniacz.
    Generacja na przerwaniach tu chyba odpada, ze wzg na wydajność przy tej częstotliwości. Myśle że sprzętowy timer dał by rady, tyle że wtedy nie mam kontroli nad kształtem, ale to jeszcze nie tragedia.
    Tak sie zastanawiam, czy może darować sobie małe częstotliwości (zrobić osobny gen na 555 i paru ISOSTATach) i nie dołączyć do proca generatorka na warikapach. Uzyskam wtedy częstotliwości z zakresu UKF, co, nie ukrywam, bardzo by mi odpowiadało :)

    0
  • #11 28 Wrz 2006 18:42
    morph13
    Poziom 25  

    antrykot napisał:
    ..... Uzyskam wtedy częstotliwości z zakresu UKF, co, nie ukrywam, bardzo by mi odpowiadało ....

    A co konkretnie interesuje Cię z tego zakresu ?? :-).

    0
  • #12 28 Wrz 2006 19:08
    antrykot
    Poziom 20  

    Konkretnie to chwilowo nie planuje budowy radia, ale jeśli buduje już coś na warszatat, to chce aby było to jak najbardziej wszechstronne :)

    0
  • Pomocny post
    #13 29 Wrz 2006 16:13
    220048
    Użytkownik usunął konto  
  • Pomocny post
    #14 01 Paź 2006 18:27
    morph13
    Poziom 25  

    Odpowiedz może być tylko jedna - ASEMBLER.

    0