Ogłoszenie

Collapse
No announcement yet.

Atmega 8 + 3x PGA2311

Collapse
X
 
  • Filtr
  • Czas
  • Pokaż
Clear All
new posts

    Atmega 8 + 3x PGA2311

    Witam.
    Otóż składam sobie pseudo amplituner i chciał bym do regulacji głośności użyć 3xPGA2311 sterowanych przez atmega 8 regulacja mila by się odbywać tylko przez impulsator. W zasadzie to wszystko bo nie potrzebuje wyboru źródła ani wyświetlaczy.
    Schemat w zasadzie nie różniący się niczym od katalogowego poza dodaniem mute

    Płytka wygląda tak - mile widziane sugestie/poprawki

    No i sedno sprawy czyli program obsługujący to wszytko, i tu z mojej strony prośba do osób znających się na programowaniu o sprawdzenie, pokazanie błędów i ewentualnie podpowiedzenia jak to powinno wyglądać.

    $crystal = 11000000
    Config Spi = Soft , Dout = Pinc.0 , Cs = Pinc.2 , Clk = Pinc.1
    Config Pinb.0 = Input
    Config Pinb.1 = Input
    A Alias Pinb.1
    B Alias Pinb.2
    Dim Value As Byte
    Dim Af As Bit
    Dim L As Byte
    Dim R As Byte

    L = 130
    R = 130

    Do

    Set Pinb.1 : Set Pinb.2

    If A = 1 And B = 1 Then 'impulsator w pozycji - zwarte
    Af = 1
    End If

    If A = 0 And B = 0 Then 'impulsator w pozycji - rozwarte
    Af = 0
    End If


    If A = 0 And B = 1 Then 'rozpoczety ruch impulsatora
    If Af = 1 Then 'jezeli byl zwarty to
    Do
    If B = 0 Then Exit Do 'poczekaj az B = 0
    Loop
    Decr Value 'rozpoznany ruch w lewo

    Else 'jezeli byl rozwarty to
    Do
    If A = 1 Then Exit Do 'poczekaj az A = 1
    Loop
    Incr Value 'rozpoznany ruch w prawo
    End If
    End If


    If A = 1 And B = 0 Then 'rozpoczety ruch impulsatora
    If Af = 1 Then 'jezeli byl zwarty to
    Do
    If A = 0 Then Exit Do 'poczekaj az A = 0
    Loop
    Incr Value 'rozpoznany ruch w prawo

    Else 'jezeli byl rozwarty to
    Do
    If B = 1 Then Exit Do 'poczekaj az B = 1
    Loop
    Decr Value 'rozpoznany ruch w lewo
    End If
    End If

    If Incr Value Then 'glosniej na ruch prawo
    If L = 255 Then
    L = 254
    End If
    If R = 255 Then
    R = 254
    End If

    If Decr Value Then 'ciszej na ruch lewo
    If L = 0 Then
    L = 1
    End If
    If R = 0 Then
    R = 1
    End If

    Loop

    Spio:
    Spiinit
    Spiout L , 1
    Spiout R , 1
    Return

    Na zakończenie dodam ze o programowaniu uP wiem nie wiele a powyższy powstał z tego co znalazłem o obsłudze impulsatora i PGA :wink:

    Za jakie kol wiek sugestie, wskazówki z góry wielkie dzięki
    Pozdrawiam rzerzuch

    #2
    ja mam taka sugestie... dodaj odbiornik RC5 i obsluge pilota... jak raz sie zasmakuje takiej wygody nie chce sie innych rozwiazan

    Skomentuj


      #3
      Myślałem nad tym i doszedłem do wniosku ze raczej jest mi to zbędne choć zastanowię się jeszcze nad tym :roll:

      Skomentuj


        #4
        Jak na moje oko:
        1. Strasznie wielka płytka - spokojnie można ją sporo zmniejszyć
        2. Pobieżnie zerkając mam wrażenie, że nie rodzieliłeś mas (sygnałowa i zasilania). Poza tym masa prowadzona strasznie niedbale
        3. Jeśli już robisz dwustronną płytkę to jedną warstę "zalej" masą wokół ścieżek i gdzieś ją na obwodzie przerwij, żeby oddzielić masę sygnałową od masy zasilania
        4. Pokombinuj trochę z ustawieniem elementów, bo moim zdaniem przy pewnej dozie wysiłku dałoby się zrobić do tego układu PCB jednostronne (może nawet bez zworek), a przy okazji ułatwisz sobie prowadzenie masy.
        5. Pamiętaj, że cały układ operuje na malutkich sygnałach, więc nie musisz robić ścieżek szerokości drogi ekspresowej - na moje oko to ścieżki w Twoim projekcie mają ze 40 milsów

        P.S. Dla własnej wygody (i dla wygody osób sprawdzających) oznaczaj na schemacie i na PCB rolę złącz - wierz mi, że to dobry nawyk

        Skomentuj


          #5
          1. Popracuje nad tym choć miejsca raczej jest sporo
          2. Hmm w nocie są masy połączone
          3. Myślałem nad wylewaniem masy na wierzchniej warstwie lecz nie bardzo wiem jak to uczynić w eagle tak aby ładnie oblewały ścieżki w odpowiedniej odległości
          4. Z ta jedno warstwowa nie tak szybko choc poprubuje jeszcze z cieńszymi ścieżkami :grin:
          5. Dokładnie 32milisy :mrgreen: a robię grube ścieżki dlatego ze jak widzę cieniutka ścieżkę na takiej płytce to zalatuje mi jakoś tandeta a poza tym i tak ta miedz idzie na stracenie i tak wiec niech większa cześć pozostanie na płytce :twisted:
          Dzięki za porady.

          Skomentuj


            #6
            Widzę, że połaczyłeś PGA w daisy chaining, a zostały wolne nogi, więc chyba lepiej byłoby sterować każdym z osobna, żeby ustawić np. względną głośność i druga sprawa jeśli płytkę zamierzasz robić sam to powiększ pady od złącza IDC10, bo może być problem przy wierceniu, najlepiej wogóle zrobić je kwadratowe, wtedy trudniej je uszkodzić. BTW ja bym pomyślał jednak o wyświetlaczu albo chociaż jakimś ledzie, bo przyda się podczas programowania, a wogóle najlepiej dodać LCD przecież to koszt rzędu 10zł, a wiele ułatwi. I na Twoim miejscu zintegrowałbym na tym PCB zasilacz i to chyba tyle ode mnie.

            Skomentuj


              #7
              Myślałem nad zastosowaniem jednego PGA4311 który by obsługiwał kanały przednie i tylne i PGA2311 do obsługi centralnego i suba. Wtedy można by oddzielnie regulować głośnością suba i centralnego za pomocą balansu ale komplikuje program i sterowanie tym wszystkim za pomocą impulsatora a guzików nie mam zamiaru umieszczać na przednim panelu (można by za pomocą pilota ale znowuż ten nieszczęsny wyświetlacz :neutral: ) bo mam już "wizje" jak będzie wyglądał (centralnie umieszczona duża gałka i nic poza tym) z tego samego powodu zrezygnowałem z wyświetlacza początkowo LCD później LED.
              Zasilacz już jest zrobiony :wink:
              Nóżki zostały bo akurat mam takiego proca i chciałem go wykorzystać
              Pomyślimy jeszcze może coś wykombinuje tym czasem stworzyłem nowa płytę do oceny

              Pozdrawiam rzerzuch

              Skomentuj


                #8
                Mimo wszystko to trochę utrudnianie sobie życia, piszesz, że za bardzo nie znasz się na programowaniu, a układ nie ma żadnej możliwości komunikacji z użytkownikiem, nawet diody... jeśli wgrasz soft i nie będzie działać zgodnie z oczekiwaniami nie będzie żadnej możliwości żeby wyświetlić wartość zmiennej czy w ogóle stwierdzić czy soft działa a nie np. utkwił w jakiejś nieskończonej pętli itp. Po sprawdzeniu softu LCD można odłączyć, ale skoro są wolne nogi pomyślałbym o czymś takim, bo długiego listingu nikt nie będzie sprawdzał, a nawet jeśli to niewielka szansa, że znajdzie błąd.

                Skomentuj


                  #9
                  Myśle że niepotrzebne są te transoptory. Ja steruje PGA bez zadnych transoptorów i działa idealnie, nie ma żadnych przesłuchów z linni cyfrowej. Jeżeli sie nie myle PGA na czas transmisji sygnału cyfrowego wycisza chyba nawet analog tak ze zakłucenia nie są w stanie sie przedostać ale tego nie jestem pewien, byc moze inny układ tak robił, nie chce mi sie teraz odkopywać datasheeta. PGA każdy ma linie CS nią wybierzesz którym chcesz sterować. Reszta linii komunikacyjnych równolegle.

                  Impulsator powiniem mieć chyba układ formujacy impulsy bo tak to ci to raczej nie zadziała, raz juz próbowałem podłączać bezpośrednia w proca i sie przejechałem. Cały dzien kombinowania z softem i dupa.
                  Podobno nowe wersje bascoma maja wprowadzone procedury obsługi impulsatora, coś ostatnio o tym czytałem. Wartoby sie zapoznać , w helpie powinno to być opisane dokładnie.

                  No i masy ,masa PGA cyfrowa do masy kontrolera , zasilanie 5V tez z kontrolera. Analog , wiadomo osobny tor zasilania.

                  Programu mi sie za bardzo nie chce analizować ale juz na wstępie widze niedociagniecia. Porty procesora musisz konfigurować wszystkie i wszystkim ustawić jakiś stan. Jak sobie tylko ot tak weźmiesz kilka a reszte zostawisz to procek bedzie wariować, przyłożysz reke i od samego pola elektrycznego bedzie ci walic resety lub cuda wianki.

                  Generalnie jak powiedział mkul , bez chociażby wyświetlacza cieżko ci bedzie debugować program. Nie bedziesz w stanie określić czy impulsator działa poprawnie czy zwieksza i dobrze zwieksza/zmniejsza zmienna.

                  "If Incr Value " to chyba się nie skompiluje, nie znam takiego warunku w bascomie, ale moze to coś nowego o czym nie słyszałem . Tylko dziwnie to wyglada zeby program wiedział ze przed chwila inkrementował zmienną.

                  Ogólnie ten program to w sumie jest zalążek. W zasadzie nic tu nie ma i nie zabardzo na moje oko ma prawo zadziałać.
                  Moim zdaniem powinieneś rozpocząc zabawe z zastąpieniem ompulstatora dwoma przyciskami. To jest debilnie proste i zawsze dziala. Napiszesz sobie wówczas obsłue tych PGA, i bedziesz mógł sie później zajac gadżetem.

                  Pamietaj też zeby wykorzystać pamieć Eprom dla nastaw każdego z kanałów wiec jak masz 3 pga to 6 zmiennych deklarujesz do zapisu nastaw głośności. Chyba nie masz zamiaru co start każdy z osobna ściszać z tych domyślnych 130 .

                  Obsuga zapisu wywoływana z opóźnieniem czasowym, np timerem. Bedzie ona realizowana np minute po dokonaniu nastawy. Szybko czy od razu nie ma co zapisywać z kilku powodów, raz zapis eeproma jest bardzo wolny i by zamulał działanie programu, czesto zdaża sie (przynajmniej mi) ze zmieniam głsonośc chwile po tym jak ją juz nastawiłem, taka mała korekta. Zbyt częstymi zmianami mozna wyrybać eeproma, te 100 000 zapisów pewnie szybko by szlag trafił .

                  Dorzuć sobie obslugę pilota. Odbiornik podczerwieni mozna zawsze dołozyć na kabelku i dopisać kawałek programu. Niewiele roboty a o ile wygodniejsza obsługa .

                  Skomentuj


                    #10
                    Witam
                    Czy moze ukonczyles ten sterownik?
                    Mozesz zrobic upload plikow w eagle i kod do procka w pliku bas?
                    Moze ktos z forumowiczow wykonal taki sterownik?
                    Moze sie podzielic schematem i wsadem do procka
                    Czekam na info i pozdrawiam wszystkich

                    Skomentuj

                    Czaruję...
                    X