Forum: Mikrocontroller und Digitale Elektronik EBI-Routing des LPC2478


von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
wollte mal eure Meinung zu einem wie ich meine grenzwertigem Routing
des Externen-Bus-Interface eines LPC2478 höhren.
Das Layout ist in den angehängten Bildern zu sehen. Das EBI läuft
rechts vom LPC nach links über den SDR-SDRAM, Flash zu den
drei BUS-Buffern. Alle Steuersignale sind serienterminiert, die
Daten- und Adressleitungen sind nicht terminiert. Wenn ich grob
die Leitungslängen der Daten & Adressleitungen aus dem Layout
abschätze komme ich auf ca. 8cm Leitungslänge.

Das PCB hat 4 Lagen, wobei GND und VCC jeweils einen eigenen Layer hat.

Nun, freue mich auf eine nette Diskussion und mögliche
Verbesserungsvorschläge.

Gruß,
Daniel

von Tobias P. (hubertus)


Lesenswert?

Hallo,
was wird denn das schönes? :-)
Bei NXP findest du eine AppNote dazu, wie das EBI beschaltet werden 
sollte, wenn man sowohl SDRAM als auch ein statisches Memory benutzt. 
Deine Vorgehensweise wird aber natürlich auch funktionieren (ich würde 
es auch eher so machen).
Ich habe etwas ähnliches hier realisiert; die längste Leitung ist sogar 
ca. 100 mm lang. Das macht aber nichts, der Speicher funktioniert 
bestens.
Dein Vorhaben wird also auch klappen.
Wenn du willst lade ich ein Bild von meinem Layout hoch.
Ein Foto von der Platine kann ich sonst auch machen.
Wenn du 4 Lagen hast, sehe ich aber kein Problem. Was ich allerdings 
noch gemacht habe: ich habe die Unterseite der Leiterplatte komplett mit 
Kupfer gefüllt (also natürlich einfach da wo keine Leiterbahnen sind 
;-)). Das bringt auch zusätzlich noch was.
Ich habe übrigens auf meinem ersten 4lagigen Testboard festgestellt, 
dass eine Serienterminierung nicht unbedingt erforderlich ist; ich hatte 
nämlich für einen ersten Versuch überall 0 Ohm Brücken reingelötet, und 
es hat alles funktioniert und die Signale sehen gut aus.

Gruss Tobias

von Daniel (Gast)


Lesenswert?

Das Board entsteht im Rahmen meiner Abschlussarbeit. Beim Design
habe ich mich an dem Eval-Board von Keil orientiert.
Ein Bild von deiner Platine wäre echt nett sag ich mal.

Du beziehst dich wahrscheinlich auf die AN10771, dort wird
zwar auf die logisch richtige Signalbelegung eingegangen,
aber nicht auf die Probleme die ich hier sehe.

1) Reflexionen und dadurch entstehende Setup- & Hold-Time violations
2) Crosstalk und dadurch entstehende Setup- & Hold-Time violations
bzw. einkopplung auf Control-Signale, also ganz allgemein eine miese
Signal-Integrity.

Leider kann ich, da das Layout in Eagle entsteht keine SI-Analyse
(bzw. nur mit extrem hohen Aufwand) in Mentor HyperLynx durchführen
Gruß,
Daniel

von Tobias P. (hubertus)


Lesenswert?

Hoi,
Bild folgt (ich muss es erst wieder suchen).

Die Signalintegrität ist zwar wichtig, aber bei den Geschwindigkeiten, 
von denen wir hier reden, ist das noch nicht so kritisch. Du hast ja 
eine Ground- und VCC Plane, und auf den beiden Bildern, die du angehängt 
hast, kann man sehen, dass du aufgrund der nicht so dichten Bestückung 
auch nicht soo viele Vias haben wirst, die diese Planes perforieren. Wo 
wirst du die Leiterplatte fertigen lassen? Ich habe meine im PCB-Pool 
machen lassen. Bei den Materialien, die dort zum Einsatz kommen, und den 
Abmessungen von Prepreg und Core kann ich bei 6 Lagen mit 6 mil breiten 
Leiterbahnen fahren, und die Impedanz passt. Bei 4 Lagen sollte das auch 
immer noch gut möglich sein. Nimm 6-8 mils als Untergrenze, und es wird 
funktionieren. Der LPC2468 kann nur 72 MHz, das heisst, die Flanken der 
Signale sind recht lahm.
Ich werde dir noch zwei Bilder vom Oszi hier hochladen, damit du siehst 
was ich meine.
Das Zeug ist so unkritisch, dass es sogar auf 2 Lagen ohne besondere 
Vorkehrungen funktioniert:

http://freeweb.siol.net/mpavlin7/lpc2400/lpc2400.htm

Zwar unschön, aber ich habe im Blog von dem Mann (ich kann den Link 
allerdings nicht mehr finden) verschiedene Berichte über das Board 
gelesen, es scheint zu funktionieren.

Was ich machen würde:

- RAS, CAS, CS, WE, OE, DQMx, CLK, CKE mit Seriewiderständen. So um 22 
Ohm.
- Datenbus, Adressbus - keine Terminierungswiderstände, da die internen 
Treiber des LPC2468 schon relativ langsam und schwach sind. Um bessere 
Signale zu erhalten, habe ich sogar die internen Pullup-Widerstände des 
Buscontrollers deaktiviert, dann wird es noch ein wenig besser.
- Auf der Unerseite der Leiterplatte alles mit Kupfer füllen.


Was ist das übrigens für ein Stecker, der links in der mitte gleich 
neben den Bustreibern zu sehen ist? Ich nehme an, da führst du die 
Signale des Busses drauf. Ich suche einen solchen Stecker, aber ich bin 
mir nicht sicher, welchen ich verwenden soll. Vielleicht kannst du mir 
da ja auch einen Tipp geben ;-)

von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

Hier mal mein Layout (nur die beiden äusseren Layer).
D2 ist, wie du unweigerlich erkennen wirst, der LPC2468.
Die links daneben liegenden D5 und D6 sind meine beiden SDRAMs 
(IS42S16160B), wo jedes 16Mx16 umfasst (deshalb müssen es 2 sein, um auf 
32 Bits zu kommen).
Gleich darüber liegt D7, welches ein NOR-Flash (S29GL032) von 4MB ist.
D12 ist ein kleiner FPGA, der auch noch mit am Bus hängt.
Da der Takt nun an 3 verschiedenen Orten benötigt wird, und ich bei 
meinem ersten Board feststellte, dass der Takttreiber des LPC2468 nicht 
allzu viel Power hat, habe ich ihm einen PLL-Takttreiber spendiert 
(CDCVF2505), welcher den Takt an die beiden SDRAMs und den FPGA liefert. 
Die Taktleitungen habe ich so dimensioniert, dass sie ein paar wenige 
mils länger sind, als das längste Signal, welches zum SDRAM soll - eben 
damit der Takt nicht früher beim SDRAM ankommt als die Daten ;-)
Auf dem 2. Bild siehst du die Unterseite, wo ich alles mit Kupfer 
aufgefüllt habe.
Dein Schaltreglerlayout sieht übrigens auch gut aus. Was ist es für ein 
IC?

von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Tobias Plüss schrieb:
> Die Signalintegrität ist zwar wichtig, aber bei den Geschwindigkeiten,
> von denen wir hier reden, ist das noch nicht so kritisch.

Nunja, so pauschal kann man das nicht sagen. Nimmst du ein CTRL-Signal 
wie !OE, !WE, !CAS, etc. das vom uC weg zu mehreren Peripherals (von 
Baustein zu Baustein) geroutet ist, siehst du in der Mitte der Leitung 
für 1x der Laufzeit der Leitung bei optimaler Serienterm. den halben 
Signalpegel. Fällt dieser undef. State in die Signalflanke (weil 
beispielsweise die Laufzeit auf der Leitung nur wenige 100ps beträgt) 
stört das relativ wenig. Allerdings kann bei grenzwertigen Laufzeiten 
(ich habe mir mit den Aufbau und Material-Angaben von MultiPCB vor ein 
paar Wochen mal 500ps / 80mm ausgerechnet) und schlechter Terminierung 
das ganze schon vollkommen anders aussehen.
Hierzu habe ich mal ne einfache Sim in LTSpice angehängt. Meiner Meinung 
nach sieht das alles andere als toll aus. Die Treiberimpedanz ist ganz 
grob aus der IBIS File ermittelt indem ich den dynamischen 
Innenwiderstand in der Flankenmitte aus dem angegebenen u(t) Werten und 
einem daraus errechneten di über dem testload herangezogen habe.

> Du hast ja eine Ground- und VCC Plane, und auf den beiden Bildern, die
> du angehängt hast, kann man sehen, dass du aufgrund der nicht so dichten
> Bestückung auch nicht soo viele Vias haben wirst, die diese Planes
> perforieren.

Solange keine 10Vias quer zum Rückstrompfad die GND oder VCC Plane 
kompl.
unterbrechen, spielen die Gehäuseimpedanzen (vor allem die des LQFP) die
durch den Abstand zwischen Signalpin und Package-GND entstehen eine
deutlich größere Rolle.

> Wo wirst du die Leiterplatte fertigen lassen? Ich habe meine im PCB-Pool
> machen lassen. Bei den Materialien, die dort zum Einsatz kommen, und den
> Abmessungen von Prepreg und Core kann ich bei 6 Lagen mit 6 mil breiten
> Leiterbahnen fahren, und die Impedanz passt.

Ich werde die Platine bei MultiPCB fertigen lassen. Sind einfach 
günstiger. Woran machst du das fest, dass die Impedanz passt? Die 6 mil 
(Microstripline!!!) hauen rechnerisch nichtmal bei 150um Prepreg hin, da 
du immernoch bei ca. 80 Ohm Wellenwiderstand liegst.

Epsilon r,eff |   h   |   w   |  Wellenwiderstand |
3,18          | 150um | 150um | 78 Ohm            |

Nimmst du für ein 4 Lagen Board einen gängigen Prepregaufbau von 360um 
erhälst du für 6 mil folgenden Wellenwiderstand

Epsilon r,eff |   h   |   w   |  Wellenwiderstand |
3,18          | 360um | 150um | 102 Ohm           |
3,18          | 360um | 300um | 82 Ohm            |

Selbst mit 12 mil hast du schwierigkeiten ohne Serienterminierung in 
einen 90% Matching Bereich zu kommen. Ein weiteres Proble das in der 
LTSpice sim zu sehen ist, ist dass bei zu hohen Wellenwiderständen der 
Leitung durch die Eingangskapazitäten der angeschl. Gatter das Signal zu 
stark verschleift wird.

> Bei 4 Lagen sollte das auch immer noch gut möglich sein. Nimm 6-8 mils
> als Untergrenze, und es wird funktionieren. Der LPC2468 kann nur 72 MHz, > das 
heisst, die Flanken der Signale sind recht lahm.
> Ich werde dir noch zwei Bilder vom Oszi hier hochladen, damit du siehst
> was ich meine.

Das wäre sehr nett, ich bin wirklich auf die Rise & Fall Times gespannt.
Das ganze ist aber nur aussagekräftig wenn du mit einem aktiven Tastkopf 
der weniger als ein paar pF hat gemessen hast (ausreichende 
Analogbandbreite des Oszis vorausgesetzt). Mit einem passiven Tastkopf 
kannst du ohne genaue Kenntnis der dyn. Treiberimpedanz die wirkliche 
Flankensteilheit nicht aus der gemessenen Flankensteilheit berechnen.

> Das Zeug ist so unkritisch, dass es sogar auf 2 Lagen ohne besondere
> Vorkehrungen funktioniert:
>
> http://freeweb.siol.net/mpavlin7/lpc2400/lpc2400.htm
>
> Zwar unschön, aber ich habe im Blog von dem Mann (ich kann den Link
> allerdings nicht mehr finden) verschiedene Berichte über das Board
> gelesen, es scheint zu funktionieren.

Das Layout ist echt krass, da hat der Autorouter ganze arbeit geleistet.
Bin mal wirklich gespannt was das noch wird. Habe mit der jetzigen
Buslänge einfach ein schlechtes Gefühl. Aber mit 4 Lagen lässt sich
das einfach kaum besser machen...

> Was ich machen würde:
>
> - RAS, CAS, CS, WE, OE, DQMx, CLK, CKE mit Seriewiderständen. So um 22
> Ohm.

Bei mir mit 33 Ohm vorgesehen terminiert.

> - Datenbus, Adressbus - keine Terminierungswiderstände, da die internen
> Treiber des LPC2468 schon relativ langsam und schwach sind. Um bessere
> Signale zu erhalten, habe ich sogar die internen Pullup-Widerstände des
> Buscontrollers deaktiviert, dann wird es noch ein wenig besser.

Also wenn ich in die IBIS-File schau sind die alles andere als schwach.
Die können echt einiges Treiben und das relativ flott.

> - Auf der Unerseite der Leiterplatte alles mit Kupfer füllen.

Sowieso ;)

> Was ist das übrigens für ein Stecker, der links in der mitte gleich
> neben den Bustreibern zu sehen ist? Ich nehme an, da führst du die
> Signale des Busses drauf. Ich suche einen solchen Stecker, aber ich bin
> mir nicht sicher, welchen ich verwenden soll. Vielleicht kannst du mir
> da ja auch einen Tipp geben ;-)

Samtec QSE-040-01-L-D-A. Sind allerdings schweine teuer...
Mein Betreuer wollte den für weitere Projekte drauf haben.

So an dem Beitrag hab ich jetzt über ne halbe Stunde geschrieben...

Gruß,
Daniel

von Daniel (Gast)


Lesenswert?

Tobias Plüss schrieb:
> Hier mal mein Layout (nur die beiden äusseren Layer).
> D2 ist, wie du unweigerlich erkennen wirst, der LPC2468.
> Die links daneben liegenden D5 und D6 sind meine beiden SDRAMs
> (IS42S16160B), wo jedes 16Mx16 umfasst (deshalb müssen es 2 sein, um auf
> 32 Bits zu kommen).
> Gleich darüber liegt D7, welches ein NOR-Flash (S29GL032) von 4MB ist.
> D12 ist ein kleiner FPGA, der auch noch mit am Bus hängt.

So wie ich das sehe, sind deine Datenpfade etwas kürzer wie bei mir,
kommen aber auf jedenfall in den Bereich der mir momentan Sorgen 
bereitet.
Mich würden wirklich mal Scopeshots interessieren ;)

> Da der Takt nun an 3 verschiedenen Orten benötigt wird, und ich bei
> meinem ersten Board feststellte, dass der Takttreiber des LPC2468 nicht
> allzu viel Power hat, habe ich ihm einen PLL-Takttreiber spendiert
> (CDCVF2505), welcher den Takt an die beiden SDRAMs und den FPGA liefert.

Sah das Signal zu verschliffen aus oder an was hast du das festgemacht?

> Die Taktleitungen habe ich so dimensioniert, dass sie ein paar wenige
> mils länger sind, als das längste Signal, welches zum SDRAM soll - eben
> damit der Takt nicht früher beim SDRAM ankommt als die Daten ;-)
> Auf dem 2. Bild siehst du die Unterseite, wo ich alles mit Kupfer
> aufgefüllt habe.

200ps Laufzeitunterschied sollten (bei sauberen Signalen :-) keine
Probleme machen wenn ich die Timings des LPC mit dem des SDRAM
(hier ISSI IS42S32400B) vergleiche.

> Dein Schaltreglerlayout sieht übrigens auch gut aus. Was ist es für ein
> IC?

LM5116 von National Semiconductor. Ist ein relativ neuer Baustein
mit nem sehr sehr weiten Eingangsspannungsbereich. Da kann der
Student später kaum was falsch machen :-)

von Tobias P. (hubertus)


Lesenswert?

Hi Daniel,
ja ich werde morgen ein paar Messungen mit dem Scope veranstalten. 
Allerdings habe ich hier zu Hause nur einen passiven Agilent-Tastkopf 
mit 1pF.

Mein Layoutprogramm sagt mir, dass mein CLK (welcher die längste 
Leiterbahn hat) eine Länge von 4500 mils aufweist - gut 110 mm. Des 
Weiteren verrät es mir auch, dass ich knapp 70 Ohm Impedanz habe. Zwar 
ist dies, zugegebenermassen, nicht optimal, aber dafür ist die Impedanz 
wenigstens konstant ;-) schlimm ist ja, meines Wissens (ich habe mein 
Studium erst angefangen und habe grade auf diesem Gebit mit 
Wellenwiderstand etc. noch nicht so viel Ahnung) eine Impedanzänderung. 
Und da die Impedanz überall die gleichen ~70 Ohm beträgt, kommt das hier 
nicht zum Tragen.

Dass ich den Clock-Treiber eingesetzt habe, hat 2 Gründe.
Ich habe ja schon früher einmal ein Testboard gemacht. Das hat zwar 
funktioniert, jedoch sah der Clock wirklich eher wie ein Sinus aus, als 
wie ein Clock. Das ist schlecht, weil mein SDRAM gerne eine rise tiem < 
5ns haben möchte (zumindest am Clock).
Des Weiteren habe ich in diversen AppNotes und Arikeln zum Thema 
Signalterminierung usw. gelesen, dass es schwierig ist, ein Signal 
korrekt zu Terminieren, wenn man Stichleitungen hat. Besser wäre es, 
wenn jeder "Verbraucher" seine eigene Taktleitung bekommt, da dies 
Impedanztechnisch dann leichter in den Griff zu kriegen ist. Das ist mit 
dem Clocktreiber sichergestellt; dieser beinhaltet ausserdem integrierte 
Terminierungswiderstände von rund 25 Ohm, was hier wohl nicht sooo 
schlecht passt (wie du auf dem Scope-Bild sehen wirst, sieht der Clock 
recht passabel aus).

Wie gesagt: das Board funktioniert bestens mit diesem Layout (Zumindest, 
was das externe Memory angeht - da habe ich stundenlange Ramtests laufen 
lassen ohne einen einzigen Fehler). Mag sein, dass meine Vorgehensweise 
recht hemdsärmlig ist, verglichen mit deiner - immerhin hast du da schon 
einiges gerechnet. Ich glaube aber auch, bei den Geschwindigkeiten des 
LPC spielt das noch nicht eine so grosse Rolle, das wird nicht so heiss 
gegessen, wie es gekocht wird ;-) Mehrere Forenbeiträge hierzu geben mir 
recht. Etwas anderes wäre es, wenn du ein ARM9 Board bauen würdest, das 
mit 180 MHz läuft - da würde ich dann auch langsam beginnen zu rechnen.
Aber bei deinem Layout bin ich überzeugt, dass es funktionieren wird. 
Schau dir mal die Boards von Olimex oder so an. Die sehen nicht viel 
anders aus, und funktionieren auch ;-)

Morgen (ach nein, das ist ja schon heute :O ) mache ich dir ein paar 
Bilder mit dem Scope.

Gruss


PS: wie ich sehe, hast du einen Ethernet-PHY auf deinem Board 
vorgesehen. Momentan kämpfe ich etwas mit dieser Ethernet-Geschichte 
beim LPC2468. Evtl. kannst du mir da etwas weiter helfen? Du hast ja, 
nehme ich mal an, auf einem Evalboard softwaremässig schon ein bisschen 
herumexperimentiert.

von Daniel (Gast)


Lesenswert?

Nabend,
Pas. Tastkopf mit 1 pF ? Helf mir mal bitte auf die Sprünge

> Mein Layoutprogramm sagt mir, dass mein CLK (welcher die längste
> Leiterbahn hat) eine Länge von 4500 mils aufweist - gut 110 mm. Des
> Weiteren verrät es mir auch, dass ich knapp 70 Ohm Impedanz habe. Zwar
> ist dies, zugegebenermassen, nicht optimal, aber dafür ist die Impedanz
> wenigstens konstant ;-) schlimm ist ja, meines Wissens (ich habe mein
> Studium erst angefangen und habe grade auf diesem Gebit mit
> Wellenwiderstand etc. noch nicht so viel Ahnung) eine Impedanzänderung.
> Und da die Impedanz überall die gleichen ~70 Ohm beträgt, kommt das hier
> nicht zum Tragen.

Dein Clock ist in diesem Fall aber auch eine Punkt zu Punkt Verbindung 
und Serienterminiert an der Quelle, also absolut kein Problem. Bei mir 
ist das nicht anders, ich mache mir um die Steuersignale ehr weniger 
sorgen als um die Daten und Adressleitungen.
Wie lange sind denn bei dir die Daten & Adressleitungen ? Längere Stubs 
hast du ja wahrscheinlich drin wenn ich mir das so anschau.

Ich fände es interessanter, wenn du auf zwei Kanälen den Clock zu
einer sich ändernden Adress sowie Datenleitung messen würdest.

> Schau dir mal die Boards von Olimex oder so an. Die sehen nicht viel
> anders aus, und funktionieren auch ;-)

Wenn ich mir das Olimex-Board anschaue kommen die auf ca. halb so
große Laufzeiten wie ich momentan habe (das wär mir auch ganz recht).

> Morgen (ach nein, das ist ja schon heute :O ) mache ich dir ein paar
> Bilder mit dem Scope.

Aber bitte schlafen nicht vergessen :P

> PS: wie ich sehe, hast du einen Ethernet-PHY auf deinem Board
> vorgesehen. Momentan kämpfe ich etwas mit dieser Ethernet-Geschichte
> beim LPC2468. Evtl. kannst du mir da etwas weiter helfen? Du hast ja,
> nehme ich mal an, auf einem Evalboard softwaremässig schon ein bisschen
> herumexperimentiert.

Da muss ich dich enttäuschen, habe bisher nur mit einem kleineren
LPC-Board von Olimex experimentiert um in die Toolchain usw. mal
reinzukommen. Aber in ein paar Wochen werde ich mir um den TCP/IP
Stack und die low-level Zugriffe mal ein paar Gedanken machen müssen.
Graphik-Bib usw. muss ich auch noch in angriff nehmen, wird noch
ein hartes Stück...

Gute Nacht

von Daniel (Gast)


Lesenswert?

Soviele downloads der Bilder und (fast) keiner will sich dazu äußern?

von Tobias P. (hubertus)


Lesenswert?

Hoi,
sorry dass es heute nicht gereicht hat wegen der Scope-Bilder. Ich werds 
morgen Abend nachholen :)

Gruss

von Daniel (Gast)


Lesenswert?

Null Problemo!
Mich ärgert nur, dass hier scheinbar so viele mitlesen
aber keiner der Nutznieser was beitragen will/kann...

von Tobias P. (hubertus)


Lesenswert?

Hi,
> Mich ärgert nur, dass hier scheinbar so viele mitlesen
> aber keiner der Nutznieser was beitragen will/kann...

das ärgert mich manchmal auch. Aber es wird wohl daran liegen, dass >99% 
der Leute hier AVRs benutzen; die ARM-User scheinen sich wohl eher in 
der entsprechenden Yahoo-Gruppe zu befinden (welche mir persönlich 
allerdings nicht so zusagt, da alles nur auf Englisch ist, und ein 
Registrierungszwang besteht, wo man extra noch eine Yahoo-ID anlegen 
muss, die nachher sicher mit Spam nur so überflutet wird).
Ans Oszillographieren komme ich übrigens erst heute Abend, da ich ja 
jetzt im Büro sitze ;-)

Gruss

von Daniel (Gast)


Lesenswert?

Hallo Tobias,
wenn du für die Messungen keine Zeit hast ist das auch nicht
weiter tragisch, eine kurze Info wäre allerdings nett.

Gruß,
Daniel

von Tobias P. (hubertus)


Lesenswert?

Hi Daniel,
au sorry - ich bin einfach fürchterlich vergesslich. Du hättest mir 
schon eine Mail schicken können! :-) Ich messe es heute aus.
Leider sitze ich grade im Büro und das Board liegt zu Hause rum...

Ich mach' dir ein Bild vom Clock und von den Daten- und Steuersignalen 
(WE und OE und so weiter).

von Tobias P. (hubertus)


Lesenswert?

Grüss dich Daniel,
so bin jetzt zu Hause angekommen und habe mal mein Oszi angeworfen. 
Bilder folgen....

von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

Hallo Daniel,
anbei ein paar Bildlein. Dient dier das soweit?

Gruss Tobias

von Daniel (Gast)


Lesenswert?

Hallo Tobias,
vielen Dank, dass du dir die Mühe gemacht hast, ist
ja alles andere als selbstverständlich.

Die Messergebnisse beruhigen mich, die Rise & Fall Times fallen
(zum Glück) sehr viel langsamer aus wie ich vermutet habe.
Reflexionen und damit einhergehende Überschwinger sind auch nicht
(sichtbar) vorhanden. Mein Design wird dann wohl auch problemlos
(zumindest was das routing angeht) laufen.

Der Thread und deine Messungen können dem einen oder anderen
beim Design-In mit Sicherheit eine Hilfe sein. Für mich ist
das Thema bis zum Test des Prototypen damit vom Tisch,
außer du möchtest noch was loswerden?

Werde mich dann nochmal zu Wort melden, wenn mein Proto läuft.
SW-technisch können wir uns dann bestimmt auch noch einmal
austauschen nehme ich an, du hast ja scheinbar auch noch ein
paar Baustellen offen.

Vielen Dank nochmal,
Daniel

von Tobias P. (hubertus)


Lesenswert?

Hi Daniel,
okay, wenn du sagst, dass meine Messungen vielleicht hilfreich sein 
können werde ich die vielleicht einmal noch ein wenig ausführlicher 
machen und dann auf meine Homepage stellen (welche zurzeit noch im Bau 
ist), dann kann die Jedermann angucken :-)

Tatsächlich habe ich die eine oder andere Baustelle noch offen, was die 
SW angeht. Und die Rückmeldung, wie es deinem Prototypen geht, würde 
mich natürlich auch interessieren. Es wäre also vielleicht nicht 
verkehrt, wenn wir uns zu gegebener Zeit wieder hier austauschen 
könnten!

Gruss Tobias


Edit:
Ach ja, noch was zu den Messungen. Wie du ja gesehen hast, hat mein 
Tastkopf 1pF. Ich bin mir nicht 100%ig sicher, wie stark das die Signale 
beeinflusst. Ein aktiver Tastkopf steht zwar auf meiner Wunschliste, 
aber ich habe fast das Gefühl, der wird wohl immer dort bleiben müssen, 
da die Dinger einfach nicht bezahlbar sind. Was haben die denn für 
typische Kapazitäten?

von Daniel (Gast)


Lesenswert?

Ich hab mal bei Agilent geschaut und keinen passiven
Tastkopf gefunden der so ne geringe Eingangskapazität hat.
Selbst bei aktiven Probes wirst du nur schwer fündig.
Welche bezeichnung hat dein TK ?

von Daniel (Gast)


Lesenswert?

Zur Beeinflussung,
also der CLKOUT sollte beispielsweise mindestens ein Gatter mit einer
representanten Lastkap. von ca 4pF + die Leitungskap. mit 45pF/m
(in meinem Fall mit 6mil und 360µm Prepreg) treiben können.
Dein 1pF sollte dann also kaum beitragen, bei nem 0815 Tastkopf
mit 10MOhm || 20pF würde dass dann schon anders aussehen....

von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab hier mal ne Appnote von Freescale zu nem PowerPC hochgeladen.
Hier wird auf das Thema Timingmargin beim Anschluss von
SDRAM eingegangen. Wenn du dir die durchliest stellst du
fest, dass die sogar davon aussgehen, dass die Lastkap.
größer 20pF ist, damit keine Timing-Violations eintreten.
Das ist echt grenzwertig würde ich mal sagen!

von Freies Elektron (Gast)


Lesenswert?

Tobias Plüss schrieb:
> Wie du ja gesehen hast, hat mein
> Tastkopf 1pF.

Passive Tastköpfe mit 1pF gibt es nicht. Standardwerte sind 10-12pF beim 
10:1 Teilerkopf.

von Tobias P. (hubertus)


Lesenswert?

Hallo,
au ja, sorry, ich hatte da was falsches im Kopf. Ihr habt natürlich 
recht, auf den Tastköpfen wäre es ja noch drauf gestanden :-) Sie haben 
natürlich 10 pF, nicht 1. Sorry wegen des Irrtums.

Daniel,
ich kann dir grade nicht folgen. Was meinst du sei grenzwertig? Mein 
Design? Oder das Timing das ich eingestellt habe? oder wie?

von Daniel (Gast)


Lesenswert?

Ne, dass die Voraussetzten, dass nur bei einer Kap. Last > 20pF
die Timing Margins eingehalten werden find ich grenzwertig.

von Daniel (Gast)


Lesenswert?

Ok, du hast also mit nem 10pF Tastkopf gemessen.
Wenn ich das zurückrechne verschleift der die
Flanke (beim Clock, also ein Sender, ein Empfänger)
um 1,5ns bis 2ns, dann hättest du ne reale Flankensteilheit
von ca 2ns, das deckt sich dann mit den typ. Werten
aus der IBIS File.

von Tobias P. (hubertus)


Lesenswert?

Jaa, das finde ich auch ein wenig seltsam. Ich hoffe doch sehr, dass der 
Memory Controller des LPC so designed ist, dass er die timings einhält. 
Das wäre ja schlecht, wenn die Lastkapazität einen so grossen Einfluss 
haben müsste - das würde dann z.B. dazu führen, dass man nicht jedes 
beliebige DIMM verwenden kann, da sicher nicht jedes 20 pF oder 
wasauchimmer hat - und diese Lastkapazität schwankt sicher auch mit der 
Temperatur usw. usf.

Meinst du denn, du wirst Probleme kriegen mit deinem LPC2478 Board? 
trotz meiner Messungen, die ja zeigen, dass es funktioniert? Du hast 
mich jetzt nämlich selber verunsichert. Ich behaupte mal, mein Board 
funktioniert zuverlässig, denn der RAM-Test läuft problemlos - und ich 
hoffe mal schwer, dass das Layout bei den verhältnismässig langsamen 
Anstiegs- und Abfallzeiten noch nicht so kritisch ist.
Zur Sicherheit werde ich das morgen unter verschiedenen 
Betriebsbedingungen testen, ob es wirklich zuverlässig ist (rein in den 
Kühlschrank und RAM-Test machen bzw. im Ofen wärmen und nochmal RAM-Test 
machen - wenn da irgend ein Timing oder eine Setup- bzw. Holdzeit nur 
aufgrund von zufälligen parasitären Effekten eingehalten wurde, dann 
müsste der RAM-Test ja spätestens unter solchen "extremen" Bedingungen 
fehlschlagen. Oder nicht?).

Oder was meinst du?

von Daniel (Gast)


Lesenswert?

Kann ich ausm Bauch raus nicht sagen, da muss ich mal
die Setup & Hold Forderungen von uC und SDRAM gegenüberstellen
und die Flight-Times auf dem PCB mit einrechnen, wollte ich
sowieso mal machen ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.