Zasady projektowania PCB

Jul 10, 2005 40 Replies

Właśnie nie dalej jak w piątek kumpel pokazywał mi notę z analoga (chyba), w której wyraźnie było napisane, że to jest najlepszy sposób na zrobienie anteny i kłopoty z emisją :-). Z tekstu wynikało, że należy placek łączyć w kilku miejscach, albo się go pozbyć.

W maritexie też to mają i to w dobrej cenie:

formatting link

Dam wiêksz± pamiêæ i interfejs pamiêci zmie¶ci siê na jednej stronie. Tylko mam pytanie: czy pecetowe ko¶ci pamiêci o danej architekturze (np. 16 bitów x 4 banki x 4 mega) maj± ustandardyzowane pinouty?

Pozdrawiam Piotr Wyderski

PS. Otrzyma³e¶ mojego maila? ;-)

Potwierdzam, też widziałem. Robią ładne soldermaski (nie to co z Faldruku - tamte po lekkim przygrzaniu podczas lutowania jakoś się tak rozchodzą i faflują). Z ITRu też kiedyś przychodziły niezłe płytki, ale ostatnio chyba zmienili załogę i zrobili serię krzywo powierconego badziewia.

Adam Dybkowski napisał(a):

Niektóre płytkarnie mają dziwny nawyk cynowania ścieżek pod maską. Przez to podczas lutowania cyna jest zasysana pod spód i chyba stąd ten efekt.

Może w tym jest problem. A normalnie powinno się cynować płytki z już nałożoną soldermaską? To chyba inny proces (HAL?).

IMO w Faldruku w ciągu ostatnich 2 lat soldermaski i opisy i tak znacznie się poprawiły. :-)

A TS? Ot, normalne, przyzwoite płytki, takie jakie być powinny. Więc nie widzę powodów do zachwytu.

Regards, /J.D.

Piotr Wyderski napisal(a):

A nie wiem. Moja wiedza na temat pinoutow kosci ogranicza sie do tego, ze jest z tym syf. Pod kazdym wzgledem.

Tak, wyslalem zbiory, ale dopiero dzisiaj.

Adam Dybkowski napisal(a):

ITR to parszywa fabryka z dobra opinia. Od zawsze pamietam starszne buble, ktorych nie powstydzilby sie garazowy Zenez.

dq napisal(a):

To nie jest dziwny proces. To jest technologia cynowania cyna galwaniczna. Zamawiajac plytki pisz o HALu.

Ja bym dal po drugiej stronie. Popatrz tylko, zeby czesc sciezek nie byla 3x dluzsza ;-)

Nie mialem problemow (jest 1cm od lm2676).

2 arstwy... grrr... IMHO lepiej GND na dole.

Po stronie FPGA. Jak najblizej pinow. Daj 33/47n w 0603. Pamietaj - dla Ciebie nie potrzeba setek nF - masz szybkie zegary, wiec bardziej jestes zainteresowany kondziorkiem z malymi ESR/ESL => mniejsza pojemnosc oraz mniejsza obudowa. Dlaczego po tej samej stronie plytki? Bo viasy maja swoja indukcyjnosc.

core

Przy tej dlugosci IMHO nie ma znaczenia. Nie dawaj tylko za blisko masy (bedziesz miec pojemnosci pasozytnicze).

Prowadzenie powinno byc w gwiazde. Znaczy nie doslownie, ale oddziel czesc HF od LF i od analogowki. Oraz nie ganiaj duzych pradow przez wspolne sciezki.

IMHO za mala czestotliwosc. Ale mi zawsze wychodzilo tak, ze sciezki do pamieci byly ladnie poukladane - wtedy sciezki mniej miejsca na plytce zajmuja (bo piny w Alterze mozesz przyporzadkowac jak chcesz).

Strasznie duzo.

GND

Drabinki - juz znalazles.

Czemu nie? Zreszta - masz jakis lepszy oscyloskop? Zrobisz pierwsza sztuke, jak nie bedzie dzialac to oscylka w lape i szukac smieci. Drugi raz juz takich samych bledow nie popelnisz.

No to widzê, ¿e s± dwie szko³y... ;-) Tylko po wcze¶niejszych radach specyfikacja siê nieco zmieni³a: zamiast o¶miu kostek 2Mbitx16 bêd± dwie 4Mbit x 4 banks x 16 z pecetowego modu³u PC133.

A jak mam to rozumieæ? Je¶li jedna ¶cie¿ka ma 7 mm, a druga

4 cm, to bêdzie to 3x wiêcej, ale czy to ma znaczenie na tym dystansie?

To ¶wietnie, bo w³a¶nie tam by³by dla niech odpowiedni zak±tek. :-)

Ano dwie, przy czym na swoj± "obronê" mam fakt, ¿e jedynym krytycznym fragmentem layoutu bêdzie po³±czenie do SDRAMów. Reszta bêdzie dzia³aæ albo na "pr±dzie sta³ym" rzêdu max. 12MHz, albo na wiêkszych (do 65MHz), ale na krótkich (10 mm max.) i prostych jak drut odcinkach. Zasilanie te¿ bêdzie bardzo blisko FPGA, w przyp³ywie fantazji móg³bym nawet umie¶ciæ MOSFETy prostowników synchronicznych bezpo¶rednio nad ko¶ci±, ale wtedy wyd³u¿y siê droga do d³awików przetwornic, co jest równie z³e.

Zdefiniuj "dó³". ;-) Na warstwie Top (na której znajduje siê ko¶æ =>

"dó³" = bezpo¶rednio pod ko¶ci±), czy dos³ownie na Bottom Layer?

Tylko w przypadku VIA odleg³o¶æ do kondensatora to 2x1,5 mm, a po po³o¿eniu go na stronê ko¶ci nie da siê poprowadziæ tak krótkich ¶cie¿ek, bo piny CORE i IO s± bezpo¶rednio obok siebie, wiêc kondensatory bêd± musia³y byæ w pozycji "pionowej" (tj. krótszym bokiem do ko¶ci). A wówczas jedna ¶cie¿ka bêdzie mia³a ze 2 mm, a druga ~6 z dwoma za³amaniami. Czy mimo tego to jest lepiej ni¿ przez VIA?

Masy na tej warstwie, co ¶cie¿ki sygna³owe? O tym wspomina datasheet FX2. Pod ¶cie¿kami muszê daæ masê, w koñcu to ma byæ mikropasek.

Analogówka bêdzie zasilana z osobnego zasilacza, wiêc separacja VCC jest zapewniona. GND te¿ powinno daæ siê ³adnie poprowadziæ, bo analogówki na tej p³ytce prawie nie ma -- jest tylko ADC i DAC, oddalone maksymalnie od przetwornic i zasilane z 5V, analogówka w³a¶ciwa bêdzie na osobnej p³ycie (na której z kolei nie bêdzie cyfrówki). P³yta cyfrowa bêdzie ekranowana.

Na ilu warstwach? :-) Bo ja w³a¶nie próbujê po³±czyæ ze sob± 2 SDRy i za chiñskiego boga nie chce mi wyj¶æ ³adny layout. :-( Je¶li umieszczê ko¶ci tak, by linie danych wychodzi³y bezpo¶rednio na Alterê pod ko¶ci± pamiêci (bez przelotek, po prostu zakrêt i wyprowadzenie gór±), to najkrótsza linia danych ma 7 mm, a najd³u¿sza linia steruj±ca jakie¶

5 cm, do tego leci daisy chainem przez 2 przelotki. :-( Je¶li obrócê pamiêæ o 180 stopni, to otrzymujê bardzo ³adne wyrównanie d³ugo¶ci ¶cie¿ek, ale za to nie da siê po³±czyæ ze sob± linii steruj±cych modu³ów (RAS, CAS, adres, CLK itd.) bez stosowana ¶cie¿ek tak cienkich, ¿e mnie p³ytkarnia wy¶mieje (0,07 mm, milsy wy³±czy³em)...

Tak dos³ownie jak chcê? To dlaczego wyró¿niono piny DQS, tylko do DDRów? Poza tym czy "dziwne" przeploty, typu DQ0, DQ1, RAS, DQ2, CLKE, DQ4, DQ5, ADDR8 itd. nie bêd± dla Cyclone problemem pod wzglêdem czasu propagacji? Czy¿by routing resources by³y _a¿ tak_ dobre? :-)

Sprawdzi³em ponownie, tyle jest w PDFie.

Lepszy oscyloskop w warunkach amatorskich? :-) To chyba z napadu na serwis Teka... ;-)

Drugi raz zrobiê na czterowarstwowej. :->

Ale póki co dam szansê dwóm warstwom.

Pozdrawiam Piotr Wyderski

O blokowaniu to był kiedyś taki wątek:

formatting link
sword

Hehe, a mo¿na siê z niego dowiedzieæ, ¿e kondensator blokuj±cy powinien byæ mo¿liwie ma³y, bo wówczas mo¿na go umie¶ciæ blisko uk³asu sacalonego i ma ma³± indukcyjno¶æ szeregow±; ma³e kondensatory maj± gorszy dielektryk, wiêc kondensator blokuj±cy powinien byæ du¿y. Po drugie powinien byæ on zamontowany od strony uk³adu, bo przelotki maj± du¿± indukcyjno¶æ, a du¿a indukcyjno¶æ ¶cie¿ek do kondensatora blokuj±cego po stronie uk³adu powoduje, ¿e zaleca siê zamontowanie tego kondensatora po drugiej stronie p³ytki i jego pod³±czenie do pinów przelotkami.

To tak w podsumowaniu... ;-P

Pozdrawiam Piotr Wyderski

Piotr Wyderski napisal(a):

;--) IMO optymalne jest stosowanie dwoch caps. Jeden w malutkiej obudowie i nieduzej pojemnosc (badz nieco wieksza pojemnosc i male napiecie znamionowe) prawie bezposrednio na nogach i wiekszy dalej. W kazdym badz razie nalezy uwazac na duze pojemnosci w malych obdowach - czesto sa to caps z Y5V badz Z5Y.

A jesli chodzi o strone montazu, to na zdrowy rozum powinno to byc po tej samej stronie w przypadku obudow QFP. W przypadku BGA to inna bajka, ale z kolei montaz dwustronny podraza projekt.

jerry1111 napisal(a):

To jest wlasnie, jak dla mnie jedna z wiekszych zalet PLD/FPGA, ze mozna poprzestawiac piny dopasowujac do plytki. Dzieki temu mozna zrobic plytke optymalnie pod wzgledem sygnalowym.

Mysmy chyba jeszcze nie mieli problemu z przepinaniem pinow. aczkolwiek nasze najwieksze Altery to 10k20 czy 1k30. W 1k10 mielismy prawie 100% zajetosci, a sie komilowalo.

My prawie wszystkie plytki robimy na 2l. warto plytke z altera zaprojektowac jako gwaide z Altera w punkcie centralnym.

Dokladnie - ladne sciezki wychodza, takie jak 'grzebien' ;-)

Wiem ze w mocno zajetych (>98%) i malutkich alterach mialem problem. Wieksze nigdy nie byly zajete w tym stopniu, ale w wiekszych problem bedzie inny - jak sie zrobi naprawde gesto w ktoryms miejscu struktury Altery, to timingi szlag trafi. Raz tak mialem i nie wiedzialem dlaczego - dopiero podglad struktury pokazal o co chodzi. Przestawilem kilka pinow na druga strone scalaka i bylo OK.

Zgadza sie - jak masz miejsce na scalaki _i_ sciezki na tej samej warstwie. Mi zabraklo ;-(

Bo normalnie sie tak robi ..p solder masce dopiero haluje sie plytki , kiedys cynowlai przed maska ..ale to stare dzieje, a co do soldermaski w faldruku to nie wiem jak wyglada bo nie widzialem ..ale moze oni klada ja sitodrukiem i dlatego tak wyglada.

Tomek

A jednak w przypadku 2 kostek SDRAM zamontowanych jedna nad druga zaczyna wychodzic bardzo zwarta kanapka. Gdy lezaly one obok siebie, za nic nie udalo sie polaczyc razem odpowiednich pinów, a teraz oprócz wykonalnosci takiego polaczenia bardzo skrócily sie sciezki sygnalowe, poza tym teraz jest co najwyzej jedna przelotka na trasie kazdego sygnalu.

Dokoncze projekt bloku pamieci jutro i postaram sie udostepnic wynik czesciowy w sieci i poprosze o komentarze i dalsze porady. Tylko jaki format bedzie odpowiedni? Moze byc postscript?

Obecnie skonczylem projektowanie zasilania najwazniejszych ukladów (Cyclone, FX2, ADC) i na moje amatorskie oko wyglada on bardzo porzadnie. :-) W tym miejscu chcialbym bardzo podziekowac Marcinowi Hamerli za udostepnienie mi projektu swojej plytki, przez co udalo mi sie sporo dowiedziec o prowadzeniu zasilania.

Na chwile obecna mam nastepujace uwagi i pytania.

  1. Cyclone ma PLL rozmieszczone po obu stronach obudowy, wiec z braku warstwy AGND nie da sie zrobic jednopunktowego polaczenia masy analogowej PLLi z masa cyfrowa calego chipu. Dlatego wycialem wysepki AGND w DGND polaczone z nim w jednym punkcie. Do kazdej z wysepek sa podlaczone sygnaly PLL_GND oraz kondensatory filtrujace zasilanie PLL. Natomiast PLL_VCC jest zrobione poprzez przebicie sie przelotka Vcore z warstwy top na bottom, gdzie jest umieszczony dlawik SMD 0805. Z dlawika zasilanie trafia na wysepke PLL_VCC, która jest porzadnie odsprzegnieta do PLL_GND. Nastepnie zasilanie z wysepki wraca przez przelotke bezposrednio na pin zasilania PLL w Cyclone. Kazdy PLL ma po jednym takim filtrze. Podobna metode zastosowalem do zrobienia AVCC i AGND chipu FX2. Czy to dobre rozwiazanie?
  2. Kazda linia zasilania w Cyclone ma umieszczony po stronie kosci kondensator 0402. Linie Vio maja po dodatkowym kondensatorze równiez po drugiej stronie PCB. Czy to wystarczy?
  3. W przypadku ADC dalem mase po obu stronach plytki pod przetwornikiem. Powinno to zaowocowac bardzo mala impedancja masy oraz dalo mozliwosc poprowadzenia róznicowych sygnalów analogowych w "korytkach" ekranowanych: pod spodem jest masa, po obu stronach kazdej pary róznicowej tez jest masa. Czy to dobry pomysl?
  4. Czy na magistrali do DACa tez dac drabinki rezystorowe?
  5. Co zrobic z niewykorzystanymi wejsciami negatywnymi PLLi w Cyclone (CLK1 i CLK3)? Sygnal wejsciowy jest single-ended, na poziomie 3,3V. Podlaczyc je do masy albo do Vio, zostawic wiszace czy podlaczyc do nich np. jakis reset? BTW, czy mozna wykorzystac CLK0 (odpowiednio: 2) jednoczesnie jako wejscie PLL oraz podlaczyc je bezposrednio do sieci zegarowej? Sporo by mi to uproscilo -- dzieki jednemu pinowi mialbym 65MHz bardzo wysokiej jakosci zegara z zewnatrz, a z jednej petli PLL bralbym 130MHz do m.in. RAMów i obwodów przetwarzania sygnalu kwadraturowego oraz ~180MHz do pewnych krytycznych czasowo zadan.

W moim przypadku to jest na szczescie wymuszone przez geometrie plytki -- jedynym miejscem, w którym mógl znalezc sie Cyclone to prawie sam srodek plytki. A majac go tam da sie tak porozmieszczac przetwornice, ze powinna wyjsc niezla gwiazda.

Pozdrawiam Piotr Wyderski

No przeciez mowilem. Aha - co najwazniejsze. Nie musisz laczyc danych oraz adresow jednej i drugiej kosci w porzadku alfabetycznym (znaczy D0 do D0 itp). To tez uprosci plytke ;-) Trzeba tylko uwazac na adresy jesli chcesz burst-mode uzywac.

PDF?

O widzisz - zapomnialem Ci napisac, ze ja mase analogowa podlaczam do cyfrowej w jednym punkcie za pomoca malej perelki ferrytowej o Al=3000 (po prostu przekladam srebrzanke przez srodek perelki).

Chcialo Ci sie?? ;-) Wyglada fajnie - tylko nie przesadz z wartoscia dlawika, bo Ci napiecie bedzie siadac w szpilkach.

Tak. Ten dodatkowy na dolnej stroine plytki (== bottom) moze byc wiekszy (rownie maly nic nie poprawi, wiec smialo mozesz dac 0603 albo i wiekszy).

Jak roznicowe to nie powinny wymagac 'korytek'. Natomiast sprawdz czy przez mase pod ADC nie puszczasz duzego pradu. Jak ma tam byc duzy prad AC, to lepiej wyrzuc ta mase.

Jak tam szybko? Albo zrob rozwiazanie uniwersalne - wsadz oporniki 0603, najwyzej dasz 0 Ohm i w nastepnej plytce wyrzucisz.

Popatrzec na compilation report -> pinout file? Tam znajdziesz odpowiedz ;-)

Mozna. Po prostu sprawdz efekt kompilacji.

Co do danych to jest jasne, wystarczy z dokladnoscia do 8-bitowej grupy (aby sygnaly masek DQM wybieraly wlasciwy bajt), ale w przypadku adresów nie bardzo rozumiem taka mozliwosc -- przeciez SDRAM to nie jest prosty RAM statyczny.

Chce, a wlasciwie chce sobie zostawic taka furtke do przyszlych zastosowan, bo w tym ukladzie pamiec RAM nie musi byc zbyt random -- znacznie bardziej przydadza sie szybkie transmisje blokowe o maksymalnie duzej dlugosci, a ewentualne dostepy swobodne i tak zalatwi buforujace SDRAM cache na banku MK4.

Nie ma problemu. Gdy polacze ze soba krytyczne uklady, to podam linki do layoutów na grupe, co sie powinno stac dzis wieczorem albo jutro.

To sie powinno dac prosto zrobic.

Tak mnie postraszyliscie, ze uznalem to za koniecznosc. ;-)

Hm, jakich szpilkach? Przeciez PLL powinien pobierac w miare staly prad. A jaka wartosc dlawika zalecasz?

Dalem 0805, bo mam tego duzo.

Moze nie wymaga, ale zakladam, ze tak bedzie lepiej. Slusznie? W bezposrenim poblizu nie ma sygnalów cyfrowych, tylko druga para róznicowa równolegle (do zegara).

Nie, ADC bedzie w skrajnym punkcie plytki, wiec zaden obcy prad nie moze przez jego mase plynac.

104MHz max., choc najprawdopodobniej bedzie tylko 65MHz (to zalezy od wsadu do Cyclone, których wiele wariantów bedzie trzymane w postaci plików na karcie CF, a w danej chwili bedzie zaladowany odpowiedni do potrzeb).

No prosze, kolejna ciekawa rzecz... :-)

Pozdrawiam Piotr Wyderski

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required