Skocz do zawartości

Pytanie odnośnie kilku scalaków


adam30010

Pomocna odpowiedź

Witam!

Obecnie poszukuję do pewnego projektu kilku układów:

- układ hub'a USB z jednego USB (od hosta) na dwa USB (klienckie) - co ważne w tym układzie NIE MOŻE być żadnych innych peryferiów (jak. np LAN)

- układ USB<->4xUART (tutaj też liczy się tylko i wyłącznie układ który ma TYLKO UART).

Macie może jakieś sprawdzone układy? Dodam tylko że im mniejsze te układy by były tym lepiej - jak dla mnie może być i nawet CSP byle w logicznej cenie (bardzo mocno ograniczone miejsce).

Mam już kilka typów (FTDI i Microchip) ale może ktoś ma jakieś inne propozycje?

Link do komentarza
Share on other sites

Texas robi trochę scalaków USB.

http://www.ti.com/lsds/ti/interface/usb-overview.page

Używałem 4-portowego HUBa TUSB2046, ale Microchipy (czyli niedawne SMSC) są OK. USB2412 działał bez problemu (ale to 2-portowy choć ma większego brata) a bardzo wygodny jest np. highspeed'owy USB2514 - programowany stripami lub z zewnętrznego EEPROMa lub jako I2C slave device. Ja programowałem go przez I2C. Można mu dowolnie konfigurować wszystkie porty np. odwracać pary D+/D- gdy nie pasują wprost do podłączonych urządzeń/gniazdek USB itp.

Acha, no i ważne czy zależy Ci na 480MHz czy wystarczy fullspeed - to duża różnica i w projekcie/koszcie płytki (ścisła kontrola impedancji - grubość laminatu, prowadzenie par różnicowych, power plane itd) no i w aplikacji.

Niestety w sprawie UARTów - używałem tylko FT4232 - cóż, działał..

Po co Ci aż 4 porty UART? Może da się to samo zrobić jakoś inaczej? Co to będzie?

Link do komentarza
Share on other sites

Niestety do końca nie wiem co to będzie gdyż to nie dla mnie będzie robione, dostałem pewne wytyczne i rozglądam się za układami 😉

Parametrów laminatu nie mam jeszcze ustalonych, wstępnie zakładam że grubość będzie w granicach 1.2-1.6mm wstępnie dwie warstwy (nie wykluczam czterech warstw).

Co do prędkości, to powinien z zapasem wystarczyć fullspeed, chociaż na 480 bym się nie obraził - chodzi mi tu o prędkość między hubem a komputerem, a nie między hubem i urządzeniami do niego podłączonymi 😉

Niestety elementem ograniczającym projekt będzie rozmiar płytki, pasywka jeśli będzie to możliwe będzie montowana w rozmiarze 0402 albo 0603 - większe rozmiary przewiduję tylko dla elementów których nie znajdę w tym rozmiarze. Do tego będę musiał tam upchać 2 układy do uartu i jednego huba dlatego zależy mi żeby były te układy jak najmniejsze (jak wspominałem mogą być nawet to układy CSP), no i jeszcze jakieś układy zasilające/zabezpieczające.

Zapytałem na forum bo może ktoś korzystał z różnych hubów i UART'ów.

Na razie upatrzone mam USB2412 i FT4232 w obudowach QFN - więc typy które przytoczyłeś 😉

Link do komentarza
Share on other sites

"chodzi mi tu o prędkość między hubem a komputerem"

To bez znaczenia. Jeśli chcesz mieć upstream highspeed to cały hub musi być highspeed. To zależy co to za urządzenia. Np. moduły komunikacyjne LTE lub kamery potrafią zupełnie spokojnie zapchać łącze fullspeed. Jeśli to będą jakieś fullspeed'owe małe procesorki a jeszcze po drodze będą UARTy to w ogóle nie masz się czym przejmować.

Szkoda, ze nie wiesz co robisz, ja zawsze wypytuję bardzo dokładnie i najczęściej wychodzi, że zamawiający w ogóle nie wiedział czego chce... No i zawsze to lepiej się optymalizuje projekt: wiedząc dużo nie przestrzelisz ale też nie okaże się, że czegoś nie doceniłeś.

Zabezpieczaj dobrze przed ESD wszystko co wychodzi z płytki na zewnątrz urządzenia - szczególnie te UARTy, jeśli nie będą miały dobrych tranceiverów RS232 lub 485 to chociaż jakieś bufforowanie TTL żeby nie prosto ze scalaka. Do linii USB są specjalne transile, z normalnymi nie działa. To samo z zasilaniem: nie wierz w poprawne podłączenie. Coś przeciwprzepięciowego, odwrotna polaryzacja i filtry EMI to podstawa.

Jak już wybierzesz laminat to sam sobie policzysz jak na tej konkretnej grubości wyglądają pary różnicowe USB. Kontrola impedancji jest absolutnie konieczna.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Powiem inaczej 😉

Wiem dokładnie co to ma być, ale nie znam do końca specyfikacji całego urządzenia i do czego będzie używane, to będzie jeden z wielu modułów użytych w tym urządzeniu.

Hub USB musi ogarnąć tylko 8x UART(baud 115200) więc full speed (1.5MB) bez problemu to ogarnie.

Jedynym elementem który będzie miał "kontakt ze światem zewnętrznym" będzie wtyczka USB od tego urządzenia.

Prototyp koncepcyjny działa prawidłowo (oparty na hubie USB z 4 portami i uartach 2 portowych) ale zajmuje za dużo miejsca (5 dość dużych układów scalonych) - dlatego rozglądam się za hubem 2 portowym i uartach 4 portowych - zawsze to trochę miejsca zaoszczędzonego będzie (2 układy mniej).

Co do zabezpieczenia uartów wychodzących mam wyraźną wytyczną że NIE MAJĄ być w żaden sposób zabezpieczone - klient ma już dodatkowy moduł z zabezpieczeniami tych portów i dodatkowymi układami, więc mają być dostępne tylko sygnały bezpośrednio ze scalaków (mówiłem im że mimo wszystko lepiej byłoby to zabezpieczyć, ale się uparli przy tym).

Co do USB to wiem, że to trzeba zabezpieczyć, i oczywiście odpowiednie zabezpieczenia będą. Przynajmniej odpada mi problem z zasilaniem tego bo też mam wytyczną że nie może być tam przetwornicy, więc zostaje tylko jakiś mały stabilizator liniowy i zasilanie po USB, więc też mniej "śmieci" będzie latać po zasilaniu (zasilanie tylko do hubów i uartów). Płytka z zabezpieczeniami będzie zasilania już z "wewnątrz urządzenia" więc poborem nie muszę się martwić w ogóle, tylko sygnał odniesienia trzeba będzie wywalić do płytki z zabezpieczeniami.

Kilka aspektów które mi narzucili (jak na przykład osobna płytka z układami zabezpieczającymi) nie podoba mi się, ale tak sobie klient wymyślił i muszę się do tego dostosować.

Całość musi się zmieścić w polu trochę większym od połowy pudełka po zapałkach (50x25mm albo 50x30mm) więc dość ciasno będzie trzeba to wszystko upakować, ale przynajmniej sygnałów różnicowych nie będę musiał daleko ciągnąć.

Większość projektu w zasadzie jest gotowa, poszukuję tylko możliwie małych scalaków jako HUB USB na 2 porty wychodzące i uartów na usb z 4 portami. Zdecydowałbym się na pojedynczy układ 8x UART na usb ale wszystkie jakie znalazłem były w obudowach BGA, a chciałbym uniknąć większej niż 2 liczby warstw PCB, a dla BGA raczej bez 4 warstw by się nie obyło.

Link do komentarza
Share on other sites

To jeśli te rozgałęzione USB nie są do niczego potrzebne oprócz powielania UARTów, to na Twoim miejscu w ogóle bym tak nie rzeźbił tylko wziął jeden scalak:

http://www.atmel.com/images/Atmel-8385-8-and-16-bit-AVR-Microcontroller-ATxmega64A1U-ATxmega128A1U_datasheet.pdf

W obudowie 7x7mm BGA masz tam 8 UARTów i USB device plus mnóstwo nóżek do zapalania jakichś LEDów czy sterowania protokołem (RTS/CTS na przykład). Widzę że wiesz co w trawie piszczy więc program do tego zrobisz w Atmel Studio pewnie w jeden wieczór. Zarówno USB jak i UARTy są w ASF gotowe.

EDIT: Hm, zapomniałem o tym BGA... no to posadź to w TQFP (16x16mm). Trzeba by się do tego przymierzyć.

Link do komentarza
Share on other sites

Też myślałem żeby wrzucić tam jednego proca ale kilka rzeczy miało wpływ na to że zdecydowałem się na gotowe interface'y.

Po pierwsze i tu jest główny argument że proce trzeba oprogrogramować. Owszem daje to znacznie większe możliwości, jak np. dorzucenie ledów sygnalizujących pracę urządzenia jest banalnie proste ale z drugiej strony oznacza to że każdy układ trzeba oprogramować dodatkowym urządzeniem w dodatkowym kroku produkcyjnym :/

Projekt jest na razie w fazie prototypu ale przy wdrożeniu będą to dodatkowe koszta i ewentualne problemy.

Po drugie wątpliwości budzą sterowniki do urządzenia nadrzędnego. Większość sterowników do obsługi gotowych układów HUB i UART'ów już jest w systemie a wiedząc jakich "speców" mają w tej firmie odpowiedzialnych za system to wolałbym żeby nie kombinowali ze sterownikami bo później pretensje do mnie będą że nie działa jak należy, a sam raczej nie za dobrze bym się czuł w pisaniu sterowników pod kilka systemów, zwłaszcza że nie wiem czy można by taki proc oprogramować tak by był widziany tylko jako 8 portów szeregowych bez potrzeby dogrywania sterowników (tu jest kolejne miejsce które mogłoby robić u nich pewne problemy). Co prawda drugi problem byłby do przeskoczenia o tyle z pierwszym za wiele już się nie zrobi. Chociaż z drugiej strony niższy koszt jednego proca niż 3 układów mógłby to rekompensować.

W skrócie nauczony doświadczeniem wolałbym 3 układy i moduł bardziej idiotoodporny (i w sumie droższy), gdzie jest o wiele mniej miejsc gdzie ktoś po stronie odbiorcy może popełnić błąd niż moduł tańszy gdzie z "ograniczonej wiedzy" po stronie odbiorcy mogą być problemy z kompatybilnością modułu.

Link do komentarza
Share on other sites

No tak, o produkcji nie wspomniałeś albo ja to przeoczyłem. Większe serie rządzą się swoimi prawami i inne pozycje w rachunku ekonomicznym stają się ważne. W tym jednak przypadku czuję, że to nie będzie produkt wielkoseryjny skoro znasz użytkownika końcowego - nawet jako firmę. Argument o dodatkowym kroku programowania jest istotny choć weź pod uwagę, że FTDI ma swój EEPROM bez którego scalak jest goły. Przydaje się unikalny numer seryjny, własna nazwa (wypisywana w żółtym okienku windowsowym podczas podłączania) czy parametry (prąd) lub typ (bus/self powered) zasilania USB. A to wszystko trzeba kiedyś do EEPROMu wpisać. Natomiast kod programu może już być poważnym kosztem, który przy krótkiej serii rozłoży się na małą liczbę urządzeń i tu masz rację - w robocie komercyjnej zaniedbać go nie można. A do tego te sterowniki... to faktycznie kładzie pomysł procka. Wyobraziłem sobie jedną-dwie płyteczki do jakiegoś robota "marsjańskiego" a tam z powodów czysto hobbystyczno-ambicjonalnych można pobawić się w pisanie programu nawet do jednej sztuki 🙂

Daj znać jak to wyszło.

BTW: Zabezpieczenia ESD po drugiej stronie kabla to jakaś pomyłka. One potrzebne są tu , bo mają chronić Twoje scalaki a nie tamte. A może będzie to płytka montowana na stałe do jakiegoś większego urządzenia? Wtedy problem ESD trochę łagodnieje, bo na stanowisku montażowym można pewne reguły wymusić. Tak czy tak, klient nasz pan, mówi się trudno...

Link do komentarza
Share on other sites

Miałem dać znać jak wyszło 🙂

Wyszło całkiem zgrabnie, użyłem koniec końców układów USB2412 i FT4232.

Udało się wszystko upchnąć na płyteczce mieszczącej się do obudowy wtyku DB25 (LPT) podobnej do tej:

https://www.tme.eu/pl/details/mhdm25-db25p-k/zlacza-d-sub/mh-connectors/

Nie żeby to było montowane do takiej wtyczki, bardziej rozmiar dla porównania 🙂

Na dobrą sprawę nie musiałem się aż tak bardzo martwić o programowanie układów itp. - wystarczyło że dałem wytyczne jak to mają ustawić i sami wszystko ograneli bez większych problemów (czym mnie mocno zdziwili).

Urządzonko montowane jest do innego urządzenia, w ilości 2-6 sztuk na urządzenie (chyba dużo uartów potrzebują...) i od uruchomienia produkcji (jakoś w okolicy połowy lutego tego roku) naliczyli (do początku czerwca tego roku) blisko 10000 wyprodukowanych modułów. Na razie bez problemów z działaniem układu.

Niestety do czego dokładnie tego używają to nie wiem, profil firmy to sterowanie przemysłowe i większość idzie za granicę - tylko tyle wiem 🙂

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.