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.

STM32F407VG - Zasilanie klawiatury PS/2 z STM32F407VG

Mich.Q 17 Lut 2016 12:15 996 13
  • #1 17 Lut 2016 12:15
    Mich.Q
    Poziom 8  

    Witam, jestem początkującym w sprawach mikrokontrolerów. (Nie)stety muszę wykonać projekt bazujący na komunikacji klawiatury PS/2 z stm32. Od strony programowej wiem jak to zrobić, niestety nie wiem właśnie 2 rzeczy (związanych z zasilaniem tej klawiatury).
    1) Wiem, że do prawidłowego działania klawiatury muszą być aktywne(?) rezystory podciągające do 1 - linia CLK z Vcc i linia DATA z Vcc. Rezystory te są wbudowane podobno(?) w klawiaturę. Czy muszę w jakiś sposób uaktywnić te rezystory czy po prostu nic z tym nie robię? Wiem, że jest też możliwość manualnie dolutowania tych rezystorów...

    2) Samo zasilanie klawiatury z STM32. Słyszałem, że po podłączeniu zasilania do klawiatury na chwilę zapalają się diody... Nie wiem czy to prawda, w każdym bądź razie po stworzeniu krótkiego projektu w którym przerwanie reaguje na zbocze opadające linii CLK podczas debuggowania wychodzi na to, że do tego przerwania nie dochodzi. Czyli coś jest źle z zasilaniem klawiatury, gdyż po podłączeniu zasilania to ona uruchamia(nadzoruje?) zegar na linii zegarowej.

    Moje podłączenie wygląda tak, że linie VCC z klawiatury podłączam pod pin 5V na moim STM, natomiast masę pod pin GND. Linie CLK i DATA mam podłączone pod piny FT(tolerancja 5v) czyli wychodzi na to, że wszystko jest w porządku. Dodam, że do zasilania klawiatury potrzeba 5V i max. 300mA. Pytanie jest czy ja robię coś źle, czy po prostu mój STM nie jest w stanie zasilić tej klawiatury? I czy jak nie jest w stanie jej zasilić to jak doprowadzić do tego aby ta klawiatury była zasilana?

    Wybaczcie, ale w sprawach mikrokontrolerów jestem amatorem a elektronika to leży zupełnie. Mam nadzieję, że jakoś się dogadamy :) Pozdrawiam!

    0 13
  • #2 17 Lut 2016 21:54
    r1pl3j
    Poziom 14  

    Cześć,

    Zakładając że post nie jest prowokacją:
    1. Jeżeli pull-upy są wbudowane w klawiaturę to znaczy że są wbudowane w klawiaturę :). Podciągnięcie jest realizowane od strony klawiatury i nie musisz niczego konfigurować. Możesz zweryfikować stan podciągniętych linii woltomierzem.

    2. Może źle zrozumiałem opis ale próbujesz zasilać odbiornik (5V/300mA) z pinu uC? Jeżeli tak to moje zastrzeżenia:
    a) Niewiem czy są wersje STM32 wytrzymujące zasilanie 5V. Na pinie wyjściowym max. napięcie to coś w okolicy napięcia zasilania - prawdopodobnie ok. 3.3V
    b) Jakie są Twoje oczekiwania do wydajności prądowej pinu uC ? Jeżeli dobrze pamiętam to dla STM32 max. co dostaniesz to 20mA. Zweryfikuj czy po pierwszych eksperymentach Twój uC jeszcze żyw...
    Moja sugestia to steruj z uC jakiś klucz na tranzystorze załączający 5V na klawiaturę.

    Jeżeli napisałem kompletnie nie na temat to daruj i powodzenia.

    0
  • #3 17 Lut 2016 22:04
    Mich.Q
    Poziom 8  

    Witam, dzięki za odpowiedź. Tak to jest jak kierunku typowo programistycznym spada na Cb zadanie z mikroelektroniki, a jesteś po liceum i nie miałeś kontaktu z takim czymś :). Jak najbardziej to nie żadna ściema. Dzięki za info o rezystorach, pożyczyłem miernik napięcia i na moim STM przy pinie 5V jest dokladnie napiecie 4.8. Czyli rozumiem, że powinno wystarczyć do zasilenia klawiatury? Dodatkowo zmierzyłem napięcie przy pinie CLK i jest ono 3.8V... Piny do których to podłączyłem według manuala są tolerancyjne na 5V. A problem mam taki, że po wciśnięciu na klawiaturze PS/2 przycisku to linia CLK nie zeruje się, a tak powinno to wyglądać - przynajmniej ja tak zrozumiałem czytając jak taka klawiatura działa.

    0
  • #4 17 Lut 2016 23:07
    r1pl3j
    Poziom 14  

    To może zacznijmy od początku (moja wyobraźnia jest ograniczona i płata figle):
    1. Czy możesz przybliżyć układ do którego podłączasz klawiaturę? To jakieś Nucleo czy bardziej autorskie rozwiązanie? Szczególnie interesuje mnie:

    Cytat:
    i na moim STM przy pinie 5V jest dokladnie napiecie 4.8


    Nie bardzo wiem o jaki pin chodzi.

    2.
    Cytat:
    zmierzyłem napięcie przy pinie CLK i jest ono 3.8V
    . Czy mierzyłeś napięcie przy zasilanej klawiaturze i odłączonej linii CLK?
    a) jeżeli linia "wisi" a zasilana klawiatura nic nie nadaje to zakładając wewnetrzny pullup klawiatury powinno być tam napięcie zbliżone do zasilającego klawiaturę.
    b) jeżeli linia "wisi", klawiatura nadaje a pomiaru dokonujesz zwykłym mierzydłem to zegar (10-15kHz?) mógłby zostać tak zinterpretowany przez multimetr.

    3. Na chwilę obecną moje wyobrażenie o tym układzie (jak powinien wyglądać) to:
    a) linia 5V podłączona do żródła 4.5-5V o wydajności 300mA. GND - wiadomo.
    b) CLK i DATA wchodzą na piny FT uC. Zakładamy że są podciągnięte do zasilania przez pull upy w klawiaturze.

    4. W detekcję sygnału, konfigurację IO, itd przez Twój soft na uC nie wnikam - większość na forum będzie tu mądrzejsza. Chciałbym się upewnić co do warunków pracy układu żeby gdybać dalej.

    Ja na dziś się  ewakuuję - przykro mi jezeli nie zdążyłeś na jutro. Bądź dzielny i kreatywny :D

    0
  • #5 18 Lut 2016 00:47
    Mich.Q
    Poziom 8  

    no uklad podalem w watku tematu :) jest to STM32F407VG. Z tym pinem 5V to jest tak oznaczony pin na płytce, nie mogę znaleźć innego jego oznaczenia, nawet w manualu. 2). Jeśli chodzi o zmierzenie napięcia lini zasilającej to mierzyłem i z wpiętymi liniami CLK i DATA oraz również bez. Wynosi ono ~4.8V. 2a) No właśnie domyślam się że tak być powinno, a nie jest - klawaitura nic nie nadaje, na lini zasilajacej jest ~4.8, a linia CLK to max. 3.85. 2b) No rzeczywiście co kilka-klikanaście kliknięć na klawiaturze widać na multimetrze jakieś zmiany, ale wygląda mi to strasznie losowo... Gdybym posiadał użyłbym oscyloskopu :)
    3) Niestety nie jestem w stanie Ci powiedzieć czy mogę tak to rozwiązać, gdyż prowadzący przedmiot jest w tej chwili nieobecny... Zastanawiałem się właśnie nad tym czy nie zrobić jakiegoś zasilania na takiej płytce nie wymagającej lutowania(płytka prototypowa?)...
    Zresztą wydaje mi się (mam przeczucie) że idzie to zrobić na samym mikrokontrolerze, inaczej (chyba?) prowadzący by coś wspomniał na ten temat. 3b) no i tu jest problem, bo według tego co mówisz te rezystory nie działają, chyba że znajdowały się one w końcówce (tj. to wyjście męskie PS/2) bo potrzebowałem ją po prostu uciąć...

    4) No właśnie może i być tu też problem z konfiguracją IO bo te piny FT może trzeba konfigurować w odpowiedni sposób aby przyjmowały 5V?

    Nie ma problemu z terminem póki co, znaczy śpieszy mi się bo wiem ile to jest roboty, ale mam jeszcze tydzień :)

    0
  • #6 18 Lut 2016 10:36
    2675900
    Użytkownik usunął konto  
  • #7 18 Lut 2016 13:09
    Mich.Q
    Poziom 8  

    Hmm skoro mają pull-upy to jak to możliwe, że przy lini zasilania jest 4.8V a linia CLK i DATA ma max 3.8?

    0
  • #8 18 Lut 2016 13:16
    2675900
    Użytkownik usunął konto  
  • #9 18 Lut 2016 13:23
    Mich.Q
    Poziom 8  

    Czyli wszystko jest ok tak? Czyli w zasadzie wina lezy wtedy po stronie mojej konfiguracji pinów, skoro nie występuje przerwanie u mnie?

    0
  • #10 18 Lut 2016 13:37
    2675900
    Użytkownik usunął konto  
  • #11 18 Lut 2016 13:48
    Mich.Q
    Poziom 8  

    No z STM32 to nie jest tak kolorowo... Znalazłem parę przykładowych projektów ale na AVR. I to właśnie na nich się bazowałem.

    0
  • #13 18 Lut 2016 14:50
    Mich.Q
    Poziom 8  

    No to akurat widziałem, tylko albo jestem ślepy, albo tej biblioteki nie idzie pobrać, nawet na tym ich libstocku bo nigdzie jej nie ma. A ten przykładowy kod, który jest podany na tej stronie to nie pomaga w ustawieniu pinów :)

    @edit znalazłem, zobaczę czy w czymś pomoże

    @edit2 niestety, ta biblioteka wydaje się niekompletna... są używane funkce konfiguracyjne ale nie ma ich podanych...

    0
  • #14 21 Lut 2016 17:14
    Mich.Q
    Poziom 8  

    Jednak jest coś nie tak z zasilaniem, kumpel jakoś ogarnął i z PC przez kompa zasilił i mu się diody zapaliły na klawiaturze. Sprowadziłem nową klawiaturę, podłączyłem do kompa i również diody się zapaliły. Postanowiłem zasilić klawiaturę w inny sposób = z płytki stykowej 820 pól oraz zasilacza do płytek stykowych AVT3072B + zasilacz do tego zasilania 1A i 12V. Polutowałem, sprawdziłem czy jest napięcie - wszystko działa, lecz jak podłączyłem to nową klawiaturę to oczywiście klapa, diody się nie zapaliły... Kilka pytań:
    1) Od czego jest ten przewód bez tej gumy wokół kabla?
    2) Czemu to nie działa?

    Według wiki - PS/2 kable to - brąz GND, czerwony VCC, zółty i siwy to data i clock nie podłączyłem ich.

    Dodaje zdjęcie jak to wygląda.
    STM32F407VG - Zasilanie klawiatury PS/2 z STM32F407VG

    0