Ich habe ein Design mit einem LPC1788 zusammen mit einem SDRAM-Modul von ISSI ( IS42S32800D ). Dies ist eine 32-Bit-Schnittstelle.
Ich habe dieses Design ausgearbeitet und einen Prototyp mit einem Leiterplattenhersteller herstellen lassen, der 6-Schicht-Prototypen herstellt. Der Prototyp der Leiterplatte funktioniert einwandfrei. Ich dachte dann, ich würde die Leiterplatte in einer kleinen Charge (100) von meinem üblichen Leiterplattenlieferanten herstellen lassen. Ich gab ihnen die Stapelinformationen, die mein Prototyp verwendete, um sicherzustellen, dass es keine Probleme gab.
Jedoch! Ich habe massive Probleme mit der Produktionsplatine. Anfangs konnte ich mit dem gleichen Code, den ich in meinem Prototyp-Board verwendet habe, keine Antwort vom SDRAM auslösen. Das vorherige Board arbeitete mit 120 MHz, daher war ich mir sicher, dass mit diesem neuen Board etwas nicht stimmte. Ich habe dann einen Beitrag gefunden, in dem Leute vorgeschlagen haben, den Repeater-Modus auf den SDRAM-Datenleitungen zu verwenden (ich hatte dies zuvor nicht verwendet), und dies hat eine Antwort vom SDRAM ausgelöst, die jedoch nicht stabil ist. Ich kann an ungefähr 16 Adressen schreiben, aber bei nachfolgenden Lesevorgängen sind die zurückgegebenen Daten (an jeder Adresse) die Daten, die ich zuletzt geschrieben habe (wahrscheinlich aufgrund des Repeater-Modus). Wenn ich den Repeater-Modus deaktiviere, sind die zurückgegebenen Daten 0xFFFFFFF. Ich versuche jetzt, eine Verbindung mit 48 MHz herzustellen, der niedrigsten Konfiguration, für die ich Zeit habe.
Ich verwende die gleichen Abschlusswiderstände (auf den Datenleitungen) von 22 Ohm auf beiden Karten, Datenleitungen sind durchschnittlich 3 cm lang. Die Uhrlinie ist 2,4 cm lang. Adressleitungen sind durchschnittlich 3,8 cm lang.
Ist dies zu falsch, sollte ich die Uhr länger verzögern, wenn sie wesentlich kürzer ist? Ich stecke hier wirklich fest, da ich nichts an dem Design geändert habe, das ich mir für einen nahtlosen Fertigungslauf für diese Boards erhofft hatte.
Maximum Data Line Length: 59mm (Although this includes the branch to the NAND Flash)
Minimum Data Line Length (Ctrl to Res): 18mm
Maximum Address Line Length: 44mm
Minimum Address Line Length: 24mm
CLK: 24.5mm
CKE: 25mm
CAS: 28mm
RAS: 28.7mm
Hier ist die PCB-Stack-Konfiguration für den ursprünglichen (funktionierenden) Prototyp:
Hier ist die PCB-Stack-Konfiguration für die Produktions-PCBs (nicht funktionierend)
Hier ist das Routing für das SDRAM: