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.