Serial Flash und Datenintegrität

Hallo,
Ich debugge gerade ein Design mit einem seriellen 66Mhz AT45DB642D Datenflash. Ein Problem was ich habe ist, dass ich unter stärkeren
externen Störungen (Z.b. 10V/m in der Messhalle im Bereich von < 200Mhz und/oder Burst) Probleme habe mit diesem Baustein. Die Probleme äußern sich durch Datenkorrumption beim Lesen und Schreiben. Beim Lesen ist das ganze nicht so schlimm, da dies zu keinen permanenten Probleme führt. Beim Schreiben ist es jedoch anders. Korrumpieren dort die Daten schreibe ich vielleicht an die falsche Speicherstelle oder eventuell auch falsche Daten. Softwareseitig werden wir jetzt beim Schreiben ein mehrfaches Verify machen und auch beim Lesen werde ich die Daten nun zur Kontrolle zweimal lesen und nur bei Korrektheit weitergeben. Die Daten wo CRC geschützt sind, sind klarerweise noch etwas einfacher.
Meine Frage hier ist aber natürlich eher von der Hardwareseite. Schaltungsmässig habe ich die Eingänge des Atmel einmal mit 100pF bedämpft. Die SPI Leitungen sind alle mit Serienwiderständen ausgeführt (Bei den jeweiligen Treibern). Vom Layout her gibt es einen Controllerteil mit ungefähr 40mm Abstand zum seriellen Datenflash. Leider müssen/gehen diese Leitungen auch über einen 250mm FCC Kabel zu einer weiteren Platine. Die Geschwindigkeit des SPI ist 2Mhz zum Flash und 250kHz zu den anderen Modulen. Ich sehe noch folgende Möglichkeiten auf die schnelle, währe aber dankbar für weitere Anregungen. Das Layout des Controllers ist ein 2-Lagen Design und hat ein paar unglückliche Cuts in der Groundplane. Die habe ich aber testweise schon gebrückt, weil ich dort das Problem vermutete. Die Versorgung des AT45DB642D ist mit 1uF, 100nF und 10nF gestützt.
- Filter beim FCC Stecker um Störungen dort nicht auf den Bus zu lassen. Im einfachsten Fall ein RC auf Masse. - Eventuell die Signal auf den externen Bus nur bei Bedarf aufschalten (Buffer mit Enable)
Danke, Christian
Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@sil.at wrote:

Autsch! Das ist in >50% meiner Faelle der Hauptgrund.

Hier wuerde Layout und Schaltbild helfen. Was ist ein FCC Stecker? Wie lang ist der SPI? Sauber terminiert? Muss SPI denn mit 2MHz laufen?
Notfalls helfen nur mehrgliedrige Tiefpassfilter fuer SCLK, MOSI und eventuell auch MISO.
--
Gruesse, Joerg

http://www.analogconsultants.com /
  Click to see the full signature.
Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Danke,
Ich meine natuerlich einen FFC Stecker. Da ich kein Attachment so schnell anhängen kann - Das Datenblatt unter http://www.molex.com/pdm_docs/sd/526101671_sd.pdf ist äquivalent zu diesem Stecker. Das FFC Kabel selbst ist 210mm. Die Leitung auf dem Controllerboard < 30mm. Die Leitungen auf der Hauptplatine sind nochmals 70mm. In diesem Fall gibt sich eine gesamte Buslänge von 300mm. Das bestehende Bussystem ist nicht terminiert, macht auch nicht soviel Sinn, da man die Impedanz auf dem FFC Kabel nicht kontrollieren kann.
Die SPI Frequenz kann ich notfalls runtersetzen und damit könnte ich stärkere Filterbeschaltungen machen. Ein Layout werde ich schauen, dass ich das als JPG bekomme. Den Cut in der Groundplane habe ich repariert, denke aber nicht, dass das bei diesem stark bedämpften Signal viel ausmacht. Beim Auffangen von Störungen aber schon eher.
Lg, Chris

Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@gmail.com wrote:

240mm Gesamtlaenge und nicht terminiert? Erstaunlich, dass das erst bei 10V/m vom Hocker gefallen ist. Das braucht ordentliche Filterung. Wenn es immer die gleiche Art FFC-Kabel ist, kann man die Impedanz bestimmen und zumindest sanft AC-terminieren mit ein paar zig pF in Serie. Lieber 30% danebenliegen als 100% danebenliegen.

Kann man erst nach Betrachtung von Schaltbild und (altem) Layout sagen. Aber wenn Du den Split weggemacht hast, ist das ja zumindest schon in Butter.
--
Gruesse, Joerg

http://www.analogconsultants.com /
  Click to see the full signature.
Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Würdest du wenn du auf der einen Seite AC terminierst die Serienwiderstände drinnen lassen? Das Problem der kapazitiven Kopplung zwischen den Signalleitungen bleibt nämlich. Wenn nun der Treiber zu stark wäre, und damit starke Flanken auf die Leitung gibt koppelt es über.
Ich hätte dann zum testen eine Konfiguration mit z.B. 100R Serienwiderstand und einer AC-Terminierung im Bereich von 50-100pF und einem Widerstand den ich noch probieren werde. Aber auch im Bereich von 50R-150R.
Lg, Chris
PS: Ich habe heute die Software-Modifikationen schon eingebaut, da es ja auch darum geht den Schaden am bestehenden System zu vermindern und mit einem Burst-Generator getestet, der die Fehler sehr gut erzeugt. Das System läuft in dieser Konfiguration nur halbwegs stabil und der Rest sollte jetzt durch passende Elektronikänderungen ebenfalls kein Problem sein.

Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@sil.at wrote:

Waehle den Kondensator dann so klein, dass Dir die Pegel zu den Schaltzeiten nicht auf die Haelfte absacken. Das sieht natuerlich alles etwas "hingebastelt" aus, aber wie wir hier sagen, you are between a rock and a hard spot. Ferritperlen am Ende des SPI koennen auch helfen.
Sauber waere ein Verfahren ohne Serienterminierung, wobei MISO dann auf der Steuerseite AC-terminiert werden muss.

Geht alles. Bislang ist mir noch kein EMV Fall vorgekommen, wo wir das Handtuch geschmissen haetten.
--
Gruesse, Joerg

http://www.analogconsultants.com /
  Click to see the full signature.
Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Hallo,
hmm - bei MOSI und SCK ist mir die Sache klar, da ich die Terminierung am Ende des Buses anbringen und damit verhindere, dass ich eine reflektierende Welle bekommen. Bei MISO habe ich das Problem, dass nun mehrere Sender am Bus sind. 2 entfernte Sender am Ende des FFC und das Flash am anderen Ende des FFC direkt neben dem Microkontroller. Von meiner Logik her würde ich, am Ende des FFC terminieren und falls noch zusätzlich beim Eingang des Microcontrollers.
Länge 25 60 210 40 30 +------------------#-------------------------#---------------- MISO | | | # # | | | T S1 S2 # KABEL # Flash T MCU | | | # # | | | +------------------#-------------------------#---------------- "GND"
Das Signal S1/S2 wird beim Eingang des Microcontrollers abgeschlossen. Die Signale vom Flash haben Leitungscharakter zu S1/S2. Daher wird dort abgeschlossen.

Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
snipped-for-privacy@gmail.com wrote:

Ok, so ganz komme ich nicht dahinter, was FFC ist und wie Deine Anlage aussieht. Aber nach HF-Gesichtspunkten muesste man dann MISO dort AC-terminieren, wo die Funktion "Input" liegt. Also am Master, vermutlich der uC. SCLK, MOSI, CE bei den Empfaengern, wobei bei einer groesseren Anzahl selbiger eine Serienterminierung (ausser vielleicht bei CE) am Master nicht mehr sinnvoll erscheint, denn dann geht Dir rasch die Amplitude in die Knie.
--
Gruesse, Joerg

http://www.analogconsultants.com /
  Click to see the full signature.
Add pictures here
✖
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.