USB, Bufor, CY7C68013, dlugie

Jan 11, 2005 5 Replies

Witam i od razu pytam :)



Robie karte przetwornikow a/c komunikujaca sie z PC-tem poprzez USB 2.0 (juz kiedys o tym wspominalem). Dwa przetworniki a/c 8-bitow zsynchronizowane ze soba, a wiec 1 probka to



16bitow (2 bajty). Odstep czasowy miedzy nastepujacymi po sobie probkami opisany jest zmienna losowa o rozkladzie gamma. Dla uproszczenia przyjmuje ze minimum tego czasu to 2us (max czest 500kHz) i tego na razie bede sie trzymal. Komunikacje z PC ma zapewnic CY7C68013-56 (Cypress). Jak najlepiej podlaczyc te 16linii danych do procka? Zdaje sie, ze ma on jakis dodatkowy interfejs rownolegly 16 bitowy zintegrowany z pamiecia FIFO. Tylko jaka wielkosc jest tej pamieci - 4kB (4k x16bit ??) jak to pokazano na sch. blokowym czy tez to 4kB jest rozdzielone pomiedzy "endpointy" ? A moze bedzie potrzebny jakis zewnetrzny bufor o jakiejs wielkosci?

Do transmisji po USB "pasuje mi" tryb Interrupt - choc szczerze mowiac nie wiem dlaczego sie to tak nazywa. Dla trybu tego poczynilem pewne oszacowanie wielkosci buforu wejsciowego - prosze o korekte:


1 probka = 2 bajty, 500 000 probek na sekunde FullSpeed: host usb odpytuje co 1 ms, czyli maxymalnie moze pojawic sie w miedzyczasie 500sampli=1000bajtow, HighSpeed: odpytywanie co 125 us, czyli max. w cyklu pojawia sie ~64 probki=128bajtow.

Zatem wielkosci buforow przy podwojnym buforowaniu to: FS - 2kB HS - 256B



Czy ktos moze mi jeszcze wytlumaczyc jaki mechanizm kryje sie pod nazwa "potrojnego" lub "poczwornego buforowania" ? Buforowanie podwojne jest raczej zrozumiale (mozliwosc zapisu z jednej strony z jednoczesnym odczytem z drugiej strony, i odwrotnie).



Dzieki za wszelkie podpowiedzi i wybaczcie ciut przydlugi post.



Pozdrawiam M.S.


ma, GPIF, ale lepiej uzyj slave FIFO

rozdzielone, ale jak uzywasz jednego endpointa, to mozesz ja uzyc calosciowo. mozesz tez ja uzyc jako 2 lub 4 -krotny bufor, ale wtedy bedzie miala pojemnosc 2 lub 1 KB

jak bedziesz w maire szybko odbieral, to nie, ale lepiej zrob jakis handshake..masz do dyspozycji FLAGi

w sumei mi dzial podobnie, neizaleznie jaki ustawie..ja przysylam 8MB w ciagu 0.5s

poczworne - 4 pameici fifo jedna za druga po to, zeby plyniie sobie wszystko szlo..

w samym procu jest jeden bug - w przerwaniach..czasami sie bez powodu blokuja..mimo ze flagi wyzeruje, on nei przyjmuje nastepnych..dlatego musialem zrezygnowac z przewania od USB. nawet w swoich przykladowych aplikacjach nei uzywaja przerwan, lecz petli..

Czy ten procek ma jakies dedykowane wejscie do wpisywania slowa do wewnetrznego FIFO ?

Hmm.. Niezla elastycznosc !

Dzieki za ostrzezenie i wszystkie podpowiedzi. Do programowania procka mam jeszcze troche czasu. Na razie musze zaprojektowac plytke. Pozdrawiam M.S.

tak, SLWR - strobowanie zapisu FIFO1,FIFO0 - adresy

w razie czego sluze bibliotekami w P99SE i przykaldowym schematem

>

Witam,

To ja się podepne pod wątek, gdzie można kupić te układy Cypressa?

Poszukuję takiego CY7C64603-52NC

Pozdrawiam, sword

Swietna wiadomosc ! Co prawda biblioteteke sch. sobie juz zrobilem, no ale moze Twoja ladniejsza :) . A tak na powaznie, jesli mozesz to prosze podeslij mi. Szczegolnie pozadam ten przykladowy schemat. Wielkie dzieki i pozdrowienia !

M.S.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required