logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterowanie urządzeń z portu USB, propozycja projektu

Michal-01 19 Sty 2006 13:06 6666 11
REKLAMA
  • #1 2195502
    Michal-01
    Poziom 11  
    Posty: 36
    Ocena: 2
    Witam wszystkich.
    Wielokrotnie na różnego rodzaju forach (także i tym) pojawiały się pytania o sterowanie urządzeń z komputera za pomocą LPT, COM czy USB. Odpowiedzi było wiele, ale na ogół były to tylko podpowiedzi, na co się ukierunkować, jak rozwiązać jakiś szczegółowy problem, itp. Część osób, zadająca pytania na forum jest zapewne na moim poziomie – potrafią zbudować układ na podstawie schematu, podłączyć go, przetestować, zastosować, ale nie potrafią go zaprojektować. I tutaj wielki pokłon w stronę ludzi umiejących projektować układy elektroniczne. Chciałbym zainicjować taki wspólny projekt forumowiczów. Pytanie teraz czy będą chętni do takiego przedsięwzięcia.
    Moje założenia, co do projektu: układ starowany z portu USB załączający i rozłączający niezależnie 10 linii wyjściowych 5V (sterowanie z programu spod Windowsa).Uważam, że takie założenia są dość dobre, ponieważ napięcie 5V na wyjściu każdej z 10 linii już wiele osób będzie potrafiło w odpowiedni dla siebie sposób zagospodarować (np. załączanie przekaźników, sterowanie LED itp.)
    Na początek zapraszam do wyrażenia swojej opinii na ten temat, i podaniu własnych oczekiwań, co do takiego urządzenia.
    Pozdrawiam wszystkich.
    Michał.
  • REKLAMA
  • #2 2195560
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    fajna rzecz, dobry pomysł, tylko co masz na mysli sterowanie z pod Windows, czy przypadkiem nie bedzie potrzebny jakis program sterujący, który należałby napisać?
  • REKLAMA
  • #3 2195689
    Mad Bekon
    Poziom 23  
    Posty: 794
    Pomógł: 31
    Ocena: 36
    Takie cos juz jest w oparciu o atmega8. Tworca to Igor Cesko. Sprawdzone, dziala. Mozna sterowac wyjsciami, uartem, pisac do i czytac z jegn wewn eepromu. Na jdgo stronie jest kod w asm

    Posted from a mobile
  • #4 2195698
    Michal-01
    Poziom 11  
    Posty: 36
    Ocena: 2
    Może trochę źle to ująłem – sterowanie przez program spod windowsa. Niestety też trzeba będzie go napisać ale to już mniejszy problem.
  • #5 2196427
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Poszukaj moich postów, sam o to biłem. Technicznie wygląda to na wykonalne, tyle mądrych głów, ale jakoś nikt nie pomógł.
    Każdy pisze ze sterownik itp, wiele linków prowadzi na stronę Igora, ale mi osobiście ten projekt nie leży.
    Pod linuxem, najmniejszy problem, ale windows wydaje się koszmarem, albo te programy piszą tak, aby tylko autor wiedział, o co w nim chodzi.
  • #6 2196478
    yarpen2
    Poziom 22  
    Posty: 549
    Pomógł: 39
    Ocena: 39
    teoretycznie można by dać ft232bm + jakiś procek i to by starczyło
    do pełni szczęścia trzeba by było tylko napisać program pod windę i już !!
    bo program na procka raczej duży by nie był
  • REKLAMA
  • #7 2196835
    me_super
    Poziom 29  
    Posty: 1692
    Pomógł: 1
    Ocena: 44
    Samuraj napisał:
    Poszukaj moich postów, sam o to biłem. Technicznie wygląda to na wykonalne, tyle mądrych głów, ale jakoś nikt nie pomógł.
    Każdy pisze ze sterownik itp, wiele linków prowadzi na stronę Igora, ale mi osobiście ten projekt nie leży.
    Pod linuxem, najmniejszy problem, ale windows wydaje się koszmarem, albo te programy piszą tak, aby tylko autor wiedział, o co w nim chodzi.


    Adapter USB->RS232C kosztuje ok.20 zl, w srodku jest FT232BM jak sie kupi odpowiedni. Dziala pod Windowsem itp. Za takie pieniadze nia ma co kombinowac z podlaczeniem bezposrednio po USB, bo UARTa ma kazdy procek.
  • #9 2206466
    Michal-01
    Poziom 11  
    Posty: 36
    Ocena: 2
    Jak sądzę to do tego adaptera o którym pisał napisał me_super (USB->RS232) można podłączyć układ sterowania na rejestrze przesuwnym i nie powinno być problemu. Znalazłem opisy takich na necie w Elektronice praktycznej w archiwum - 05 / 1999 i pod linkiem: http://www.chip.pl/arts/archiwum/n/articlear_18145.html
    Wie ktoś może jakiego rzędu opóźnienia będą przy stosowaniu jednego rejestru 4094. Z tego co się doczytałem to jest też możliwość połączenia kaskadowo większej liczby rejestrów jednak zwiększą się opóźnienia w załączaniu kolejnych wyjść. Jakich opóźnień można się spodziewać przy połączeniu trzech takich rejestrów.
  • REKLAMA
  • #10 2225622
    Michal-01
    Poziom 11  
    Posty: 36
    Ocena: 2
    Witam wszystkich
    Zbudowałem układ sterowania na rejestrze przesuwnym wg schematu z chip: http://www.chip.pl/arts/archiwum/n/articlear_18145.html. Wszystkie połączenia są wykonane prawidłowo a do sterowania używam programów sterklik.exe, sterkonfig.exe, stertest.exe (także z chip 2/02). Programy są dostępne tu: https://www.elektroda.pl/rtvforum/topic221760.htmlJuż podczas pierwszych testów układu pojawiły się problemy. Po uruchomieniu programu stertest.exe diody kontrolne nie zapalają się tak jak powinny (po kolei), natomiast zapalają się mniej więcej w taki sam sposób jak podczas używania programu sterklik.exe.
    Uruchamiając program sterklik.exe mam załączone wszystkie 8 diod kontrolnych (stan początkowy).
    wyłączam nr 1 - gaśnie 1
    wyłączam nr 2 - gaśnie 2
    wyłączam nr 3 - gaśnie 3
    wyłączam nr 4 - gaśnie 5, 6, 7, zapala się 1, 2, 3
    wyąłczam nr 5 - zapala się 6, 7
    wyłączam nr 6 - gaśnie 6, 7, 1, 2, 3
    ...
    nr. 8 w ogóle nie reaguje.

    Co może być tego przyczyną? Czy ktoś używał wyżej wymienionych programów i może potwierdzić ich prawidłowe działanie. Nie mogłem dostać diod BAT85 i zastosowałem BAT42 - czy może to być przyczyną nieprawidłowego działania, a może to coś innego.
    Bardzo proszę o pomoc.
  • #11 2226163
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Czy ktoś może bawił się w programową emulację USB bezpośrednio na liniach procesora (widziałem taki projekt w sieci na ATMega8). Były tam też chyba sterowniki pod WIN.

    Michal-01 napisał:
    Moje założenia, co do projektu: układ starowany z portu USB załączający i rozłączający niezależnie 10 linii wyjściowych 5V (sterowanie z programu spod Windowsa).Uważam, że takie założenia są dość dobre, ponieważ napięcie 5V na wyjściu każdej z 10 linii już wiele osób będzie potrafiło w odpowiedni dla siebie sposób zagospodarować (np. załączanie przekaźników, sterowanie LED itp.)
    Na początek zapraszam do wyrażenia swojej opinii na ten temat, i podaniu własnych oczekiwań, co do takiego urządzenia.
    Pozdrawiam wszystkich.
    Michał.


    Jak już mamy budować takie urządzenie to może dołóżmy interfejs analogowy (np 4 wejścia, 2 wyjścia). Taki moduł może zastąpić wpinaną w komputer kartę COMBO.

    Michal-01 napisał:
    Moje założenia, co do projektu: układ sterowany z portu USB
    ...i zasilany z tego portu...

    Drugi postulat to opcjonalna optoizolacja, która uchroni komputer przed nieprzewidzianymi zdarzeniami w "kanale przemysłowym".

    Zrobiłem kilka podobnych projektów na RS232 a do USB się przymierzam jak pies do jeża.

    Michal-01 napisał:

    Wie ktoś może jakiego rzędu opóźnienia będą przy stosowaniu jednego rejestru 4094. Z tego co się doczytałem to jest też możliwość połączenia kaskadowo większej liczby rejestrów jednak zwiększą się opóźnienia w załączaniu kolejnych wyjść. Jakich opóźnień można się spodziewać przy połączeniu trzech takich rejestrów.

    Prędkość przesuwania danych w rejestrze wynika z prędkości transmisji (jest to bezpośrednie przełożenie danych szeregowych na dane przesuwane w rejestrze). Tak więc np. przy 2400 baud rejestr 8-bitowy wypełnia się w coś koło 1/(2400/8) =1/300 s, czyli 24 bity zostaną przesłane w 1/100 sekundy.
    Proporcjonalnie wyżej/wyżej (konwerter USB/RS, którym dysponowałem pozwalał na 1MBaud). Można też zrobić rozdzielacz, w którym rejestry odbierają dane równolegle, a wybrany przesyła je na wyjścia.
  • #12 2227113
    Michal-01
    Poziom 11  
    Posty: 36
    Ocena: 2
    Problem o ktorym pisalem w poprzednim poscie czesciowo rozwiazalem a mianowicie wymienilem diody z BAT42 na BAT85 - tak jak powinno byc (nie wiem czy mialo to znaczenie) i wymienilem 74HCT14. Efekt jest taki ze czesciowo sie to ustabilizowalo - diody kontrolne reaguja na polecenia wysylane z programu. Pozostal tylko problem 8 diody - nie reaguje na nic i caly czas sie swieci. Jest ona podlaczona do wyprowadzenia nr 4 rejestru.
    Ponadto napiecie na wyjsciach wg opisu powinno wynosic 5V przy stanie wysokim a wynosi 3,24V. Co robic? Jakies sugestie prosze.

    Kolejna sprawa jest zasilanie rejestru MC14094. Podlaczylem je wg dokumentacji ukladu do wyprowadzenia nr 16 i jest ok. Wg schematu podlaczone jest ono tez do 15 ktora wg dokumentacji jest jakims wyjsciem (???). I tu jest chyba wszystko ok.

Podsumowanie tematu

✨ Dyskusja dotyczy inicjatywy stworzenia wspólnego projektu układu sterowanego z portu USB, umożliwiającego niezależne załączanie i rozłączanie 10 linii wyjściowych 5V za pomocą programu działającego pod Windows. Poruszono kwestie techniczne dotyczące konieczności napisania dedykowanego oprogramowania sterującego oraz rozważano różne podejścia sprzętowe, m.in. wykorzystanie mikrokontrolera Atmega8 oraz konwertera USB-RS232 opartych na układzie FT232BM. Wskazano, że pod Linuxem sterowanie jest prostsze, natomiast Windows wymaga bardziej skomplikowanych sterowników i programów. Zaproponowano użycie rejestru przesuwnego MC14094 do rozszerzenia liczby wyjść, omawiając problemy z opóźnieniami i stabilnością sygnałów. Przedstawiono doświadczenia z budową układu według schematu z archiwum czasopisma "Chip" oraz testowaniem go za pomocą programów sterklik.exe, sterkonfig.exe i stertest.exe. Zgłoszono problemy z nieprawidłowym działaniem diod kontrolnych, niskim napięciem wyjściowym (3,24V zamiast 5V) oraz stałym świeceniem ósmej diody, co częściowo rozwiązano wymieniając diody BAT42 na BAT85 i układ 74HCT14. Poruszono także temat programowej emulacji USB na mikrokontrolerze oraz propozycję rozszerzenia projektu o interfejs analogowy i optoizolację dla ochrony komputera. Omówiono wpływ prędkości transmisji na opóźnienia w przesyłaniu danych do rejestru przesuwnego.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA