• Witamy w największym polskim serwisie internetowym poświęconym w całości zagadnieniom samodzielnej budowy nagłośnienia.
    Dzięki DIYaudio.pl poznasz zagadnienia samodzielnej budowy nagłośnienia od podszewki oraz będziesz mógł dyskutować o DIY audio do woli.

    Artykuły z dawnego portalu zostały przeniesione do sekcji forum na samym dole.

Tani dobry potencjometr cyfrowy

Rejestracja
Sie 21, 2009
Postów
1,545
Reakcji
15
Lokalizacja
Trójmiasto
Cześć,
szukam czegoś w cenie ok 30zł
myślałem o PGA2310 z Aliexpress ale nie jestem pewien czy nie dostanę podróbek.
Kupował ktoś PGA na ali?
 
Na alle są PGA231x w rozsądnej cenie ,ostatnio jak zamawiałem ,orginały przyszły . Z tanich jest jeszcze DS1267
 
Podczepiam się pod pytanie. Na allegro jest PGA2311 za 25zł, jest wyraźna różnica między PGA2320? No i trudno jest tą kostkę programowo ożenić z jakąś ATmegą? Zna ktoś jakiegoś fajnego gotowca? :)
 
Ciekawy ten LM1972.
Widzę jedną sztukę PGA2311 może się na nią zdecyduję, bo i tak wypadało by dać jakiś bufor za potencjometrem, a w nim już jest.
Korci mnie, żeby zamówić te PGA2310 z Aliexpress, bo by się idealnie nadawał, nie musiałbym wtedy dorabiać zasilacza na +-5V.
Docelowo układ ma być jako proteza do Denona DRA-700AE w którym ktoś wymontował płytkę z selektorem i cyfrowym potencjometrem.
Akurat tam jest doprowadzone +-15V

- - - - - aktualizacja - - - - -

Hoglin z tego co patrzyłem w nocie, sterowanie tym to śmieszna sprawa. Kiedyś się tego bałem, ale jak na atmedze odpaliłem SPI i skomunikowałem się z DS1802 to nie mogłem w to uwierzyć, że to takie proste.
Wysyłasz po prostu ramkę 2 bajtową, jeden bajt określa wzmocnienie jednego kanału drugi drugiego.
W przypadku atmegi8 sprowadzało się to do ustawienia 3 bitów w rejestrze, potem wklepywanie po bajcie do rejestru wysyłającego.
 
Ostatnia edycja:
PGA2311 to prosta komunikacja SPI. Nawet nie trzeba uruchamiać sprzętowego SPI, komunikacja jest w jedną stronę i wystarczy jedna pętla FOR uruchomiona dwa razy dla obu kanałów aby wysłać wartość nastawy z przedziału 0-255.

Tu masz przykład na podstawie przemysłowego potencjometru cyfrowego:

#define CS_HIGH PORTB|=(1<<0) //porty sterowania MCP41100
#define CS_LOW PORTB&=~(1<<0)
#define SI_HIGH PORTB|=(1<<2)
#define SI_LOW PORTB&=~(1<<2)
#define SCK_HIGH PORTB|=(1<<1)
#define SCK_LOW PORTB&=~(1<<1)

void mcp_update(uint8_t left, uint8_t right)
{
SCK_LOW;
CS_LOW;
uint8_t tmp=128;
for (int8_t j=0;j<=7;j++)
{
if(left & tmp) {SI_HIGH;} else {SI_LOW;}
SCK_HIGH;
SCK_LOW;
tmp=tmp/2;
}

tmp=128;
for (int8_t j=0;j<=7;j++)
{
if(right & tmp) {SI_HIGH;} else {SI_LOW;}
SCK_HIGH;
SCK_LOW;
tmp=tmp/2;
}

CS_HIGH;
SI_LOW;
}
 
Podczepiam się pod pytanie. Na allegro jest PGA2311 za 25zł, jest wyraźna różnica między PGA2320? No i trudno jest tą kostkę programowo ożenić z jakąś ATmegą? Zna ktoś jakiegoś fajnego gotowca? :)

Ta PGA2311 brzmi lepiej w porównianiu do PGA2310 ,taki sam protokół jak z resztą PGA , czyli PGA2320 też to obsługuje (testowałem ale inaczej dla mnie gra ) przy PGA2311 potrzeba +/-5V co prowadzi do kłopotów z zasilaniem , ale LM317/LM337 kosztują nie wiele ,kosteczka warta ceny .
Jak potrzebuje ktoś z forum kod ,podeśle (pisze w C i asm) . liba do osbługi . Proszę na PW
 
Ostatnia edycja:
Poszło PW :)
Zastanawiam się też nad DS1267S, z wysyłką wyjdzie 6zł z allegro, na początek zabawy/nauki fajny no i kiedyś do "gorszego" wzmaka się to wstawi, żeby było sterowanie z pilota. Chociaż z drugiej strony, 25zł za to PGA to też nie jest fortuna... :flapper: A ten DS to wersja 100k Ohm, co mi trochę nie odpowiada.

Nad jedną opcją się zastanawiam - potrzebowałbym do jednego z wejść we wzmacniaczu przypisać powiedzmy +10dB względem innych źródeł, tj. kiedy mam powiedzmy -63dB, to przy przełączeniu selektorem na konkretne wejście "x", program zmieni tłumienie na -53dB, a przy przełączeniu na dowolne inne wejście, z powrotem na -63dB. Jeszcze nad tym nie przysiadłem, ale z programowania i tak jestem noga. Jakieś sugestie? :)
Potrzebuje coś takiego, bo mój tuner ma bardzo niski poziom sygnału i trzeba sporo podgłośnić żeby dorównał np. odtwarzaczowi. Jakbym programowo dodał mu na stałe 10dB czy ileś, miałbym to z głowy :)
 
To żaden problem zrobić coś takiego.
Powiedzmy masz zmienną w której trzymasz poziom głośności.
Na końcu dodajesz instrukcje warunkową np.
if (input==tuner)
{
poziom_glosnosci_wysylany_do_pga=poziom_glosnosci+20; // z tego co kojarzę to jest możliwość regulacji co 0,5db czyli na 10 db potrzebujesz 20 jednostek
}
else
{
poziom_glosnosci_wysylany_do_pga=poziom_glosnosci;
}



Ktoś miał styczność z CS3310? Jest kompatybilny z PGA2311.
 
Ostatnia edycja:
Hm, no w sumie bardzo prosto. Dzięki :)
Sprzedawca od PGA ma urlop, więc chwilowo zamówiłem DS1267, w internecie jest nawet gotowe rozwiązanie. Pozostaje jeszcze zaprojektować płytkę :)
 
Właśnie o tym czytałem. Tyle, że u mnie oprócz tego jest selektor 6 wejść, sterowanie na podczerwień i będzie wyświetlacz :) Całość będzie sterowana przez ATmege8.
 
Atmega8 ma 22 porty I/O. Trzy z nich zabieracie dla programatora, 6 kolejnych do sterowania przekaźnikami, 7 do sterowania LCD, jeden do odbiornika podczerwieni. Zostało 5 portów I/O, do sterowania jakąś drabinką rezystorową potrzeba z reguły 3 lub 4 linie. Przydałby się jeszcze jakiś przycisk tudzież enkoder. Kolejna rzecz to dostępna pamięć, 8 kB Flashu nie pozwoli szaleć, w naszym preampie jest Atmega 32 i ma zajęte ok 60% pamięci, a nie ma super wielu funkcji.

DS1267 do prawidłowego działania potrzebuje -5V na Vb.
 
Ostatnia edycja:
Wg datasheeta ma 23 linie I/O (chyba że nie bierzesz pod uwagę RESET?). 8 dla przekaźników, bo 2 załączają główny transformator (soft start), DS potrzebuje 3, 2 bym ewentualnie poświęcił na kwarc, 2 enkodery, włącznik no i jeszcze bym wypuścił linię sterującą do DACa (uruchamianie obu urządzeń razem). 8kB flashu starczy jak najbardziej. Mi wystarczy jeden jedyny protokół odbioru i sztywno ustalone wszystkie nazwy :)

A czemu 3 linie zabierane są dla programatora? Ale tak czy inaczej, czeka mnie kupno czegoś większego. A jak już kupować, to chciałbym dołożyć RTC i całe mnóstwo innych rzeczy, pinów będzie trzeba dużo. Ale to chyba już z docelowym PGA... Teraz może odpuszczę wyświetlacz.
 
Reset-u nie liczę. Piny do kwarcu również nie są liczone jak porty I/O. Linie programatora, Miso, Mosi, Sck oraz Reset lepiej zostawić tylko do programowania. Dla dwóch enkoderów potrzebujesz min 4 linie, w tym dwa przerwania sprzętowe, plus ewentualnie jeszcze dwie linie do obsługi przycisku w enkoderze. Do RTC z kolei I2C by się przydało. Rozrysuj sobie to na spokojnie :) Flashu lepiej mieć zapas, różnica w cenie procka jest znikoma, a możliwości znacznie więcej :)
 
Przerwania sprzętowe... Na tą chwilę i tak będzie rozwiązanie tymczasowe, prostacki program w bascomie, obsługa enkodera bez przerwań. Wyświetlacz odpuszczę, teraz zrobię podstawową funkcjonalność na pilota na tej atmedze, a jak kupię PGA i nauczę się chociaż trochę C, kupię odpowiedni uC, ładnego OLEDa i wszystkie pozostałe funkcje dołożę :)
 
Ale piny od ISP można normalnie wykorzystać, nawet zotawiając połączenie z programatorem.
Z wyświetlaczem oledowym można się komunikować po SPI jak i po I2C czyli 2 lub 3 linie IO.
Z drugiej strony można dopłacic kilka zł i mieć znacznie więcej zasobów.

Dlatego ja stwierdziłem, że nie ma co męczyć AVRów jak za kilka zł drożej są STM32 :)

Hoglin, zostaw tego bascoma, ucz się C. To nie jest takie straszne jak mówią.
 
Stm32 czym się programuje?
Ja się C nie boję, już coś tam zacząłem, ale teraz mało czasu jest, a bascom wystarczy mi tylko zrobić ctrl c ctrl V i trochę pozmieniać. Plusem jest to, że jest trochę gotowych bibliotek, które może nie działają jakoś super, ale nie wymagają praktycznie żadnej wiedzy.
 
Powrót
Góra