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

[Pomysł] Sterowanie czterema urządzeniami przez usb.

Gloomwing 23 Sty 2010 23:36 3848 14
  • #1 23 Sty 2010 23:36
    Gloomwing
    Poziom 17  

    Witam!

    Jestem szczęśliwym posiadaczem laptopa marki Asus pod tytułem eeePC 900.
    Jest to 8.9" netbook, którego popularność sprawiła, że w internecie pojawiło się mnóstwo artykułów o tym co i jak do niego wsadzić.

    Jak się okazuje miejsca w środku jest dostatecznie dużo, by wsadzić tam:

    Code:
    USB hub #1
    
    Bluetooth
    GPS module
    SDHC reader
    USB hub #2
    Touch screen
    FM transmitter power
    FM audio diversion switch
    Flash drive
    Temperature sensor

    A to tylko jeden z wielu przykładów.

    Oczywiście, ponieważ nikt nie chce kupować utramobilnego laptopa po to tylko by wsadzić do niego mnóstwo urządzeń usb i tym samym uziemić go 'małą' pojemnością baterii, więc powstaje plan 'jak odłączać urządzenia', oczywiście nie rozbierając samego Asusa.

    Stąd pomysł Przełączników. Ale te też trzeba, znowu, wsadzić do środka, czyli, znowu, by coś odłączyć, trzeba otworzyć (zdjąć klapkę) obudowę.

    Moim pomysłem jest by zamiast fizycznego sw, zastosować przełącznik usb.

    Teraz, trochę szczegółów na temat samego 'projektu'.
    Do środka planuję wsadzić:
    1. Hub Usb + Touchscreen
    2. Bluetooth
    3. Podświetlanie klawiatury
    4. coś jeszcze

    Sam hub został zaprojektowany tak by zmieścić się z kontrolerem touchscreena na jednej płytce. Hub podłącza się do portu usb kamery, zaś samą kamerę podłącza się do huba.

    Niestety albo i stety w moim wypadku tak się nie da. Okazuje się, że komputer nie chce się włączyć gdy zamiast kamery podłączone jest co innego.

    Na szczęście, w oparciu o doświadczenia innych użytkowników, znalazłem inne rozwiązanie. Tu chciałbym wspomnieć, że stronię od modyfikowania oryginalnej płyty głównej. Rozwiązanie polega na wykorzystaniu nieużywanych portów usb przy karcie sieciowej na pcie-e: http://beta.ivancover.com/wiki/images/a/ae/Eee_flash_con_pinout.png

    Ponieważ port pcie-e nie wykorzystuje napięcia 5v a jedynie 3.3v muszę jednak wykorzystać zasilanie od kamery.

    Zatem układ wygląda tak:

    Code:
    1. zasilanie kamery usb + usb +/- z pcie ->
    
       2a. Hub usb + touchscreen
           3a. przełącznik usb
           3b. bluetooth
           3c. pamięć flash (dla ułatwienia)
       2b. podświetlanie klawiatury
       2c. kamera


    Wg. użytkowników forum eeeuser.com gdy software'owo wyłącza się kamerę płyta główna odłącza również jej zasilanie. Kamery używam stosunkowo rzadko, więc to będzie pierwszy niezbędny wyłącznik (1). Podświetlanie to rzecz druga (2). Dalej bluetooth (a), pamięć flash (b) i sam hub (I). Sam hub mogę wyłączyć wyłączając port kamery, więc w rzeczywistości absolutne minimum to 2 przełączniki (1 i 2), a przewidywane są 4 (1, 2, a, b).





    Po przyjrzeniu się układowi huba spodziewam się, że wyłączenie urządzenia przez hub wystarczy by odłączyć jego zasilanie. Nie mam jeszcze możliwości by to sprawdzić, więc zakładam, że potrzebuję 4 przełączników.

    Teraz sedno. (Wiem, piszę za dużo.)
    Znalazłem na elektrodzie taki temat: https://www.elektroda.pl/rtvforum/topic461935.html
    Układ absolutnie nie skomplikowany, trzeba dołożyć jedynie jakieś proste przełączniki (n)logicze i po kłopocie.
    Ale,
    po pierwsze, sam potrzebuję tylko 4 przełączników. Owszem, myśląc przyszłościowo 8 to z zapasem, ale 16 to już przesada. Niestety, taka płytka to dużo miejsca, a tego, nie przesadzajmy, aż tyle nie mam.
    Stąd moje pierwsze pytanie:

    1. Jak przerobić w/w układ na układ 8-bit?

    Idąc dalej:

    2. Czym go zastąpić, by stworzyć układ 4-bit?

    I do tego pytanie konstrukcyjne:

    3. Jak zmniejszyć jego wymiary końcowe?

    Co do tego ostatniego, spodziewam się, że najprostszą odpowiedzią było by SMD, ale, o ile jestem wstanie sklecić coś samemu na płytce jednostronnej metodą z użyciem elementów przewlekanych, to nie widzę tego w moim wykonaniu w technologii SMD.

    Teraz ostatnie pytanie, które właściwie powinno być przed resztą:

    4. Czy mogę w jakiś sposób pominąć konwerter usb -> port szeregowy i wykorzystać inny układ bardziej bezpośredni?

    W końcu usb to również technologia szeregowa.
    Liczę na zrozumiałe odpowiedzi.

    Podrawiam!

    0 14
  • Relpol
  • Pomocny post
    #2 18 Lut 2010 19:31
    _jta_
    Specjalista elektronik

    (1) Użyć tylko 1 74HC595 (a jak trzeba 24 bity, to użyć 3).
    (2) Nie wiem, czy jest odpowiednik 74HC595 na mniej bitów.
    (3) Oj, nie wiem czy się da bez użycia SMD - popatrz (w karcie
    katalogowej), jakie obudowy są do wyboru, i których potrafisz użyć.
    (4) USB ma jakiś protokół, na prostych układach typu bramek, czy
    przerzutników go nie obsłużysz. Ale jest port drukarki na USB.
    Albo można jakiś µC (np. ATtiny2313 chyba wystarcza), żeby
    zrobić obsługę USB i mieć kilka pinów, żeby coś sterować.

    0
  • Pomocny post
    #3 18 Lut 2010 20:40
    wlw_wl
    Poziom 38  

    Możesz pod USB podłączyć bezpośrednio AVR'a, zerknij na V-USB Link.
    Potem na tym AVR'ku możesz porobić sobie przełączników ile potrzeba. W sensie fizycznych przełączników albo aplikacji z guzikami.
    Na pewno możesz zaadoptować któryś z projektów Link
    O tym chyba z resztą mówił kolega _jta_

    0
  • #4 18 Lut 2010 21:15
    Gloomwing
    Poziom 17  

    http://www.obdev.at/products/vusb/prjdetail.php?pid=0

    ten projekt wygląda bardzo obiecująco i jest łatwy do zaadaptowania.
    Powiedzcie mi tylko, czy trzeba tutaj coś programować? Jak?

    Dziękuję za wielce trafne odpowiedzi.

    edit.
    ok, wiem już, że zaprogramować trzeba.

    0
  • Relpol
  • Pomocny post
    #5 19 Lut 2010 02:05
    wlw_wl
    Poziom 38  

    Tak, trzeba zaprogramować tego procka na płytce i jeszcze sobie skompilować program na windowsie. Możesz użyć gPowerSwitch danego tam jak kompilować nie chcesz.
    Zaprogramowanie AVR'a to żaden problem, potrzebujesz 4 oporniki i port LPT.

    0
  • #6 20 Lut 2010 20:59
    Gloomwing
    Poziom 17  

    Załączam układ z tej strony.

    1. Czemu tam jest oddzielne zasilanie?
    Czy mogę zamiast całego 'podukładu' od R14 do wyjść AVR podłączyć CD4066 (Quad Bilateral Switch) wejściami 'Control A/B/C/D' (dwa takie)?

    2. Czy to 'ISP Connector' to wyjście do programowania?

    Korzystam głównie z linuksa i tam będę używał tego układu.

    0
  • #7 20 Lut 2010 22:52
    _jta_
    Specjalista elektronik

    1. Żeby komunikacja z PC działała nawet jak nie ma zasilania z sieci;
    możesz zamiast przekaźników podłączyć tego CD4066, ale te BC547 zostaw
    - napięcia z uC mogą być za małe, żeby wysterować CD4066;

    2. Na pewno, i być może nie tylko do tego, ale i do śledzenia co się dzieje
    (uC to jak komputer, można debugować jego program).

    0
  • Pomocny post
    #8 20 Lut 2010 23:33
    wlw_wl
    Poziom 38  

    Z parametrów w nocie katalogowej CD4066 wynika, że powinno działać bez problemu. Działa on od 3V, więc nawet jeśli układ będzie zasilany z 3.3V z USB nie powinno być żadnego problemu.
    Napięcia stanów logicznych też są bardzo "liberalne" więc z tym również nie powinno być problemu.
    Warto sprawdzić z samym układem bez tranzystorów, bo to go uprości i zawsze to zysk a w laptopie pewnie na nadmiar miejsca nie narzekasz. Płytka uniwersalna czy prototypowa i wiadomo na czym się stoi :)

    A ISP to złącze pozwalające programować Ci AVR'a wmontowanego w gotowy układ bez wyjmowania go stamtąd, co prawda mogą wtedy klikać przekaźniki/załączać się przełączniki/mrygać LEDy/kręcić się silniki czy cokolwiek do niego podłączysz, bo bity latają po portach procesora.

    Jeszcze co do pytania 3. z pierwszego postu, możesz elementy SMD lutować lutownicą kolbową z cienkim grotem, jeśli wybierzesz elementy 1206 lub 1210 bez problemu, 0803 też powinno się udać. Procesorek możesz zamontować w podstawce i problem lutowania jego malutkich padów znika.

    0
  • #9 20 Lut 2010 23:47
    Gloomwing
    Poziom 17  

    Cytat:
    Z parametrów w nocie katalogowej CD4066 wynika, że powinno działać bez problemu. Działa on od 3V, więc nawet jeśli układ będzie zasilany z 3.3V z USB nie powinno być żadnego problemu.

    Zasilać bezpośrednio z 5v czy zmniejszyć do tego 3.3v?
    Właśnie przeglądałem notę katalogową, ale tam wszystko było od 5v.

    Pominąć tranzystory po drodze do 4066? Oporniki też? Czy dobrać jak największy opornik, przy którym AVR zmienia stan 4066?

    W sumie i tak w samym układzie ze strony jest stabilizator 3.5v (LE35CZ).


    edit. faktycznie, stoi, że przy zasilaniu 5v, do załączenie potrzebne jest 3.5v, a zasilać można nawet 3v. zatem powinno wystarczyć. chociaż nie wiem jakie jest napięcie na wyjściu ATtiny. i oporniki też sobie darować, prawda?

    0
  • #10 21 Lut 2010 00:41
    _jta_
    Specjalista elektronik

    Zależy co chcesz robić tym CD4066, bo im niższe napięcie zasilania, tym większy opór połączenia.

    0
  • #11 21 Lut 2010 09:38
    Gloomwing
    Poziom 17  

    Odcinać zasilanie urządzeń usb, podświetlania klawiatury.

    Cytat:
    Jeszcze co do pytania 3. z pierwszego postu, możesz elementy SMD lutować lutownicą kolbową z cienkim grotem, jeśli wybierzesz elementy 1206 lub 1210 bez problemu, 0803 też powinno się udać. Procesorek możesz zamontować w podstawce i problem lutowania jego malutkich padów znika.

    Ale to znacząco wpływa na wysokość układu, a to wielki wróg projektu.

    0
  • Pomocny post
    #12 21 Lut 2010 11:03
    _jta_
    Specjalista elektronik

    To nie na CD4066 przy zasilaniu 5V - jego opór przy włączeniu jest typowo 270R.

    0
  • #13 21 Lut 2010 18:55
    Gloomwing
    Poziom 17  

    1. Czyli zostajemy przy tranzystorach jako kluczach czy może jest jakaś alternatywa dla CD4066?

    2. Czy mogę zaprogramować układ przed montażem i darować sobie wyprowadzenia dla programatora? Jak długo utrzymują się dane zapisane w procesorze?

    3. Po zrestartowaniu układu wyjścia są ustawione na logiczne jeden (tak przynajmniej zrozumiałem specyfikację), mi zależy jednak na sytuacji odwrotnej. Czy jest możliwość zaprogramowania AVR'a by działał odwrotnie?

    Jeśli nie, to musiałbym zastosować bramki NOT, prawdopodobnie na każdym wyjściu, to znowu duża strata miejsca jak i energii. Lub odłączać wszystkie wyjścia po każdym restarcie komputera. Czy może jest jeszcze inne rozwiązanie?

    4. Jakie zużycie energii ma ten układ (orientacyjnie) dla wszystkich bramek wyłączonych? Nie sądzę, by mogło to wyjść więcej niż włączone BT, kamerka i podświetlanie (bo okazuje się, że tak będzie prezentował się początek mojego moddingu), ale wolę się upewnić.

    0
  • #14 21 Lut 2010 20:48
    prezeswal
    VIP Zasłużony dla elektroda

    Autor uzyskał na tyle dużo informacji, że powinien wykazać więcej inicjatywy w samodzielnym poszukaniu odpowiedzi na pozostałe - często banalne - pytania.
    Jeśli kolejne posty będą miały roszczeniowy charakter na tak niskim poziomie - temat zamknę (p.16 regulaminu).

    0
  • #15 22 Lut 2010 00:00
    _jta_
    Specjalista elektronik

    Zamieszczam tu informacje, które już autorowi wysłałem na PW (bo temat był zamknięty),
    z dodatkową informacją, której na PW nie było - aby inni wiedzieli, co autor tematu już wie,
    oraz żeby ktoś inny mógł z nich skorzystać, jak będzie miał podobny problem.

    1. Jeśli przełączane prądy mają być większe, niż parę mA, to raczej tranzystory.
    Uzupełnienie: jest coś takiego jak PROFET - układ scalony, który działa jak przekaźnik,
    jest w sprzedaży BSP450 - ale on wymaga napięcia zasilania powyżej 12V (do 48V),
    więc nie wiem, czy się nadaje; do włączenia potrzebuje napięcia na wejściu 3V.

    2. Układ można zaprogramować wcześniej (pytanie, czy to wygodne, jeśli to będzie SMD - jak do niego coś podłączyć?),
    czas utrzymywania się programu trzeba sprawdzić w danych katalogowych, ale pewnie nie jest krótszy, niż 10 lat; może
    podłączyć do płytki przewody do programowania układu, a potem je odciąć, jak już nie będą potrzebne?

    3. Możliwość jest, tylko trzeba coś zmienić w programie, i pytanie, czy naprawdę tak będzie lepiej pasować?
    Najpierw trzeba by się zastanowić, jaki ma być układ wykonawczy, co ma robić, co jak łączyć...

    4. Układ ma tryb "uśpienia", w którym ma bardzo mały pobór prądu - nie pamiętam, ale chyba około mikroampera;
    może być z niego "obudzony" przez przerwanie - trzeba pod tym kątem przejrzeć opisy, może będzie działać tak,
    że dopiero po połączeniu się z nim przez USB zacznie pobierać jakiś znaczący prąd?

    0