RTV forum PL | NewsGroups PL

Prosty sposób na przesyłanie 1B/s z czujnika do AT91SAM7S256 przez USB?

Komunikacja przez USB pomiędzy dwoma uP

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Prosty sposób na przesyłanie 1B/s z czujnika do AT91SAM7S256 przez USB?

Paweł
Guest

Sat May 23, 2009 6:57 am   



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ł

T.M.F.
Guest

Sat May 23, 2009 9:20 am   



Quote:
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.

Paweł
Guest

Sat May 23, 2009 9:48 am   



Quote:

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ł

Adam Dybkowski
Guest

Sat May 23, 2009 10:42 pm   



Paweł pisze:

Quote:
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.

Paweł
Guest

Sun May 24, 2009 7:50 am   



Quote:
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ł

Paweł
Guest

Sun May 24, 2009 9:41 am   



Quote:

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ł

Adam Dybkowski
Guest

Sun May 24, 2009 9:11 pm   



Paweł pisze:

Quote:
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.

elektroda NewsGroups Forum Index - Elektronika Polska - Prosty sposób na przesyłanie 1B/s z czujnika do AT91SAM7S256 przez USB?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map