Komunikacja przez USB pomiędzy dwoma uP

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
Witam !

Zrobiłem urządzenie na AT91SAM7S256. Ma ono port USB, który obecnie nie
jest używany. Pojawiła się potrzeba przesłania do tego urządzenia
sygnału z zewnętrznego czujnika. Wystarczy do tego przepustowość na
poziomie 1 bajtu na sek.
Mogę wbudować do czujnika klasyczny host i przesyłać dane zgodnie ze
standardem USB. Zastanawiam się jednak czy nie można zrealizować takiej
transmisji w jakiś prostszy sposób. Zmian sprzętowych w urządzeniu nie
mogę zrobić ale mogę dowolnie modyfikować jego oprogramowanie. Po
stronie czujnika nie ma żadnych ograniczeń.

Paweł

Re: Komunikacja przez USB pomiędzy dwoma uP
Quoted text here. Click to load it

Przy takiej predkosci wykorystaj cokolwiek - 1wire, I2C itd. Calkowicie
softwarowa realizacja takiego interfejsu i tak bedzie ktorsza i prostsza
niz USB.

Re: Komunikacja przez USB pomiędzy dwoma uP

Quoted text here. Click to load it

Tych urządzeń jest wiele. Są już zamontowane i nie można w nich dokonać
żadnych sprzętowych zmian. Mogę jednak dowolnie zmodyfikować ich
oprogramowanie. Urządzenie ma wolny tylko interfejs USB. Więc to jest
jedyna droga wprowadzenia danych z czujnika. Jak już napisałem
realizacja w czujniku hosta USB jest jakimś rozwiązaniem problemu choć
nie jest to proste. Jeśli nie wymyślę nic innego to tak zrobię. Być może
jednak można wykorzystać port USB w AT91SAM7S w jakiś niestandardowy
sposób i przy jego pomocy zrealizować jakąś prymitywną komunikację.

Paweł

Re: Komunikacja przez USB pomiędzy dwoma uP
Paweł pisze:

Quoted text here. Click to load it

W tych ARMach sygnały DDM, DDP są na dedykowanych pinach i nie są
współdzielone z liniami I/O ogólnego przeznaczenia. Nie sądzę, aby
tranceiver USB dało się wykorzystać w sposób niestandardowy.

Natomiast jeżeli przewidywałeś już wcześniej komunikację przez USB,
musisz mieć przecież zrobioną po stronie ARMa detekcję napięcia
zasilania z USB oraz wyprowadzony sygnał włączający pull-up linii D+. To
wystarczy do trywialnej komunikacji dwukierunkowej z resztą świata a'la
UART (dane w kierunku do ARMa lecą linią zasilania USB, dane w kierunku
od ARMa to włączanie/wyłączanie pull-up'a linii DDP).

--
Adam Dybkowski
        http://dybkowski.net /

We've slightly trimmed the long signature. Click to see the full one.
Re: Komunikacja przez USB pomiędzy dwoma uP

Quoted text here. Click to load it

Detekcji nie mam. Potrzebna jest tylko po stronie hosta.


Paweł

Re: Komunikacja przez USB pomiędzy dwoma uP

Quoted text here. Click to load it

Z tym hostem pomyliło mi się z detekcją napięcia na linii DDP.
W urządzeniu nie mam jednak detekcji napięcia zasilana. Nie była ona
konieczna. Urządzenie jest zasilane przez złącze USB (nie z PC tylko z
zewnętrznego zasilacza).

Pytanie przy okazji.
W następnych wersjach urządzenia mogę podłączyć jakiś pin IO z uP przez
rezystor do linii DDM i użyć go do komunikacji szeregowej. Jednak w
AT91SAM7S podczas resetu na chwilę przejdzie on na 1. Czy z tego powodu
nie wystąpią problemy z wykrywaniem tego urządzenia na porcie USB  w PC ?

Paweł

Re: Komunikacja przez USB pomiędzy dwoma uP
Paweł pisze:

Quoted text here. Click to load it

To zamiast rezystora zastosuj tranzystor P-MOS, którym wysterujesz
N-MOSa podciągającego linię DDM. Podczas resetu procki AT91SAM7
wystawiają jedynkę na wszystkich liniach I/O, co nie spowoduje włączenie
tranzystora. Parę komplementarną MOS znajdziesz nawet w małych
6-pinowych obudowach SOT.

--
Adam Dybkowski
        http://dybkowski.net /

We've slightly trimmed the long signature. Click to see the full one.

Site Timeline