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

[Rozwiązano] Uzyskanie dokładnie 0V na nóżce

29 Maj 2017 11:07 1758 11
  • Poziom 4  
    Dzień dobry,

    mam takie pytanie. Jak uzyskać dokładnie 0V na nóżce uC? Pracuję na atmega32a, jak ustalam na wyjściu stan 0, to w dalszym ciągu jest tam napięcie, około 10mV. Podłączam do tej nóżki przycisk telefonu, tak aby po podaniu sygnału uC "wcisnął" przycisk. I faktycznie, gdy na nóżkę sygnał jest wysłany, telefon rozumie to jako zwarcie przycisku. Problem jest, gdy teoretycznie na uC jest 0. Telefon nie widzi stanu wysokiego, bo nie wpisuje przycisku, ale też nie widzi 0- widać to dobrze, bo kursor w telefonie mruga szybciej niż powinien, a sam telefon blokuje możliwość wciśnięcia innego przycisku. Wiecie może jak to rozwiązać? Z góry dzięki za pomoc.
  • Użytkownik usunął konto  
  • Pomocny post
    Specjalista - Mikrokontrolery
    A w tym telefonie klawiatura nie jest przypadkiem multipleksowana?
  • Poziom 4  
    Telefon, z którego korzystam to Siemens A52 http://www.mgsm.pl/pl/katalog/siemens/a52/Siemens-A52.html,

    aczkolwiek prawdopodobnie przerzucę się na Nokię 3310, bo ten telefon jest już trochę wymęczony przez ciągłe lutowanie.

    Szczerze to nie wiem co to to multipleksowanie, poczytam.

    Napięcie pomiędzy polami przycisku to około 2,4-2,8V. Jak wciskam przycisk, to napięcie na obu polach jest takie samo. I tak chciałem zrobić u mnie. Czyli np. jedno pole przycisku podłączam do zasilania układu- z usb 5V. I gdy fizycznie drugie pole zewrę do tego zasilania, przycisk się "wciska". Natomiast gdy to pierwsze pole jest do zasilania, a drugie do nóżki uC, to gdy sygnał z nóżki jest, to przycisk się "wciska", a gdy nie ma to blokuje telefon
  • Pomocny post
    Poziom 38  
    Witam,
    A nie mozesz sterowac telefonem przez komendy AT ? Nie musisz nic lutowac :)
    Pozdrawiam
  • Poziom 4  
    Też o tym myślałem, niestety się na tym nie znam. Wiem, że ten sposób, który robię nie jest najlepszy, ale wydaje mi się, że niewiele już brakuje i bardzo chciałbym skończyć w ten sposób.
  • Pomocny post
    Poziom 37  
    Witam,
    abstrahując od tego czy jest multipleksowanie czy nie, najbezpieczniej będzie użyć transoptor. Wejściem transoptora sterujesz z procesora, wyjście (dwa piny) podłączasz równolegle ze stykami przycisku. Wyjście transoptora jest "swobodne", to znaczy nie musi mieć żadnego konkretnego potencjału odniesienia: masy, zasilania lub innego. Po prostu zwiera dwa sygnały gdy transoptor jest wysterowany i rozwiera gdy nie jest (dokładnie płynie jakiś prąd ciemny, ale raczej pomijalny w Twoim przypadku).

    Pozdrawiam
  • Poziom 38  
    Witam,
    Komendy AT wysylasz portem szeregowym, poszukaj spisu komend jaki twoj telefon obsluguje.
    Wracajac do twojego rozwiazania, nie zadziala ono w przypadku wspomnianej klawiatury multiplexowanej, prosciej w takiej klawiaturze nie masz przypisanej jednej linj/pinu do jednego klawisza jak to ma miejsce w tradycyjnej. W multiplexowanej masz np. 4 linje sterujace i 4 czytajace co daje matryce 4x4=16 pol stykowych a kontroller wykrywa ktora linja z ktora zostala zwarta a nie wykrywa konkretnego stanu linji.
    Jezeli chcesz koniecznie pozostac przy tym rozwiazaniu to zastosuj klucz/przelacznik analogowy sterowany z twojego mikrokontrolera a zwierajacy oba styki na klawiaturze.
    Pozdrawiam
  • Pomocny post
    Poziom 11  
    Matijjos napisał:
    Dzień dobry,

    mam takie pytanie. Jak uzyskać dokładnie 0V na nóżce uC? Pracuję na atmega32a, jak ustalam na wyjściu stan 0, to w dalszym ciągu jest tam napięcie, około 10mV. Podłączam do tej nóżki przycisk telefonu, tak aby po podaniu sygnału uC "wcisnął" przycisk. I faktycznie, gdy na nóżkę sygnał jest wysłany, telefon rozumie to jako zwarcie przycisku. Problem jest, gdy teoretycznie na uC jest 0. Telefon nie widzi stanu wysokiego, bo nie wpisuje przycisku, ale też nie widzi 0- widać to dobrze, bo kursor w telefonie mruga szybciej niż powinien, a sam telefon blokuje możliwość wciśnięcia innego przycisku. Wiecie może jak to rozwiązać? Z góry dzięki za pomoc.


    Czy mógłbyś jeszcze raz to wyjaśnić, najlepiej z rysunkiem jak podłączyłeś się do telefonu? Przypuszczam, że w twoim przypadku jeden tranzystor rozwiązałby problem.

    Przyciski do uc podłącza się najczęściej tak
    Uzyskanie dokładnie 0V na nóżce
    (obraz pochodzi z https://www.embeddedrelated.com/showarticle/462.php), dlatego wymuszenie stanu tego przycisku nie powinno być skomplikowane.
  • Poziom 4  
    Wszystkim wielkie dzięki za pomoc, szczególnie dla krzysiek_krm, bo to jego pomysł z transoptorem wybrałem i działa dokładnie tak jak chciałem :-)

    Wcześniej podłączałem jedno pole przycisku do wybranej nóżki uC, z której chciałem dawać sygnał a drugą nóżkę do masy. Gdy sygnał się pojawiał na nóżce, to faktycznie telefon wpisywał wybrany przycisk. Ale gdy sygnału nie było, to telefon był jakby zablokowany, np wciskanie innych przycisków powodowało, że na ekranie pojawiał się ten przycisk podłączony do uC. Nie wiem dokładnie dlaczego tak było, ale opcja z transoptorem sobie z tym poradziła znakomicie, jeszcze raz dzięki!
  • Użytkownik usunął konto