Komunikacja przez USB pomiędzy dwoma uP

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ł

Reply to
Paweł
Loading thread data ...

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

Reply to
T.M.F.

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ł

Reply to
Paweł

Paweł pisze:

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).

Reply to
Adam Dybkowski

Detekcji nie mam. Potrzebna jest tylko po stronie hosta.

Paweł

Reply to
Paweł

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ł

Reply to
Paweł

Paweł pisze:

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.
Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.