-
1. Data: 2009-05-23 05:57:11
Temat: Komunikacja przez USB pomiędzy dwoma uP
Od: Paweł <p...@n...pl>
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ł
-
2. Data: 2009-05-23 08:20:08
Temat: Re: Komunikacja przez USB pomiędzy dwoma uP
Od: "T.M.F." <t...@n...mp.pl>
> 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.
Przy takiej predkosci wykorystaj cokolwiek - 1wire, I2C itd. Calkowicie
softwarowa realizacja takiego interfejsu i tak bedzie ktorsza i prostsza
niz USB.
-
3. Data: 2009-05-23 08:48:47
Temat: Re: Komunikacja przez USB pomiędzy dwoma uP
Od: Paweł <p...@n...pl>
>
> Przy takiej predkosci wykorystaj cokolwiek - 1wire, I2C itd. Calkowicie
> softwarowa realizacja takiego interfejsu i tak bedzie ktorsza i prostsza
> niz USB.
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ł
-
4. Data: 2009-05-23 21:42:42
Temat: Re: Komunikacja przez USB pomiędzy dwoma uP
Od: Adam Dybkowski <a...@4...pl>
Paweł pisze:
>> Przy takiej predkosci wykorystaj cokolwiek - 1wire, I2C itd.
>> Calkowicie softwarowa realizacja takiego interfejsu i tak bedzie
>> ktorsza i prostsza niz USB.
>
> 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ę.
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/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
5. Data: 2009-05-24 06:50:34
Temat: Re: Komunikacja przez USB pomiędzy dwoma uP
Od: Paweł <p...@n...pl>
> Natomiast jeżeli przewidywałeś już wcześniej komunikację przez USB,
> musisz mieć przecież zrobioną po stronie ARMa detekcję napięcia
> zasilania z USB
Detekcji nie mam. Potrzebna jest tylko po stronie hosta.
Paweł
-
6. Data: 2009-05-24 08:41:45
Temat: Re: Komunikacja przez USB pomiędzy dwoma uP
Od: Paweł <p...@n...pl>
>
> Detekcji nie mam. Potrzebna jest tylko po stronie hosta.
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ł
-
7. Data: 2009-05-24 20:11:31
Temat: Re: Komunikacja przez USB pomiędzy dwoma uP
Od: Adam Dybkowski <a...@4...pl>
Paweł pisze:
> 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 ?
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/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.