Forum: Mikrocontroller und Digitale Elektronik Seltsames Problem mit einer Mikrocontrollerkarte


von Christian B. (luckyfu)


Lesenswert?

Hallo Forum,

normalerweise bin ich ja darin geübt, Fehler zu finden und zu 
beseitigen, jetzt allerdings stehe ich tatsächlich vor einem Problem, wo 
ich nicht weiter weiß. Vielleicht hat ja von euch jemand eine Idee:
Folgender Zustand: Eine Platine mit 5 Mikrocontrollern (AtXMega192A3U) 
wird seit 5 Jahren ohne Probleme gefertigt. Nun kam eine neue Charge 
(keine Änderungen durchgeführt, nur neues Produktionslos) und keiner der 
Controller startet. (Sie haben alle das gleiche Programm)
Folgendes habe ich schon ausprobiert: Alle Spannungen gemessen, 
Versorgung ist bei 3,3V, Takt ist vorhanden (Externer Taktgeber, 8MHz) 
Reset ist nominal auf 3,3V. Die Controller lassen sich problemlos mit 
dem Programmer per UDI erkennen und auch programmieren, starten aber 
nicht. Fusebits sind identisch und Werksauslieferungszustand. Das 
Programm einer funktionierenden Platine ausgelesen und in die nicht 
funktionierende verpflanzt ändert auch nichts.
Die Kondensatoren sind an allen Stromversorgungspins vorhanden und haben 
je 100nF, zusätzlich ist auf dem Board an allen 4 Ecken je ein 22µF 
Stützkondensator verbaut. Spannungsversorgung erfolgt mittels POL 
(TSR2433).
Interessant wird es jetzt: Ich habe dann den Controller mit einem 
getauscht von einem funktionierenden Board. Fazit: der vorher nicht 
funktionierende Controller läuft ohne neu Programmierung direkt auf dem 
alten Board, der dort funktionierende läuft aber nicht mehr auf dem 
neuen Board.
Ein Test im Debugmodus zeigte, dass der Controller hierbei arbeitet und 
sich scheinbar normal verhält. Allerdings kann ich den Controller nicht 
im Debugmodus belassen, da die Platinen in eine normale Produktion 
eingeschleust werden und das Werk verlassen.
Aufgrund dessen, dass dies ein Laufendes Projekt ist, kann ich leider 
nur Ausschnitte der Schaltungsunterlagen zur Verfügung stellen, wenn 
also jemand etwas im detail wissen will, sollte das möglich sein, es zu 
liefern.Achja, er kommt offensichtlich nicht mal zur Initialisierung, 
denn gemerkt haben wir den Fehler, weil die Controller sich nicht via 
UART melden, gemessen ist der TX Pin Low, was nach initialisierung aber 
nicht der Fall ist und bei der funktionierenden Platine auch nicht 
vorkommt, dort springt der im idle Mode direkt auf 3,3V.

Die Frage ist nun: hatte jemand schonmal ein ähnliches Verhalten? Wie 
konnte es gelöst werden?
wie gesagt, der Fehler betrifft irgendwas an der Platine. In der 
gesamten Charge. Achja, die Platine ist eine einfache 4 Lagen Platine, 
routing und placement auf Top + Bottom, I1 GND, I2 VCC. Keine 
Impedanzkontrollierten Leitungen oder sonstige Spezialitäten.

p.s.: alle Messungen wurden mit einem Oszilloskop gemacht, die 
Spannungen sind glatt, der Takt ist in Ordnung, was Pegel und signalform 
angeht.

: Bearbeitet durch User
von Flip B. (frickelfreak)


Lesenswert?

So ohne schaltplan und Programmcode rate ich dir, die Platinen beim 
hersteller zu reklamieren.

5 Controller an board klingt für mich schon nach einer vermurksten 
architektur, vielleicht ist die umsetzung auch schlecht.

: Bearbeitet durch User
von Ron-Hardy G. (ron-hardy)


Lesenswert?

Mal gecheckt ob der TX-Pin Masseschluß hat ?

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Sämtliche Gnd- und Vcc-Pins durchgemessen?
AVcc und AGnd ebenfalls nachgemessen?
Nutzt Du die PLL für die Erzeugung des internen Takt aus dem externen?

Ich würde probehalber den Takt aus dem internen RC-Oszillator erzeugen.

Grüßle,
Volker

von Sebastian W. (wangnick)


Lesenswert?

Ein Taktgeber pro uC, oder alle 5 an demselben?

LG, Sebastian

von Peter D. (peda)


Lesenswert?

Sieht stark nach Softwarefehler aus. Irgendein Pin wird im Init 
ausgewertet, der noch floatet und bei den alten Bords zufällig den 
erwarteten Pegel hat. Gerne wird z.B. der /SS-Pin in der falschen 
Reihenfolge initialisiert.

von Jobst M. (jobstens-de)


Lesenswert?

Christian B. schrieb:
> Eine Platine mit 5 Mikrocontrollern

> nur neues Produktionslos

> und keiner der Controller startet.

Keiner der Controller auf einem der Boards oder alle Boards des Loses?
Oder ein bestimmter Controller auf dem Board, dafür aber bei allen 
Boards?

Haben sich andere Bauteile geändert? Also wurde ein anderer Hersteller 
z.B. für einen Kondensator verwendet?

Wie sehen die Spannungen rund um den/die Controller auf beiden Boards 
aus, wenn Du beide im Reset hältst? Gibt es hier auffällige 
Unterschiede?


Gruß
Jobst

von Rainer W. (rawi)


Lesenswert?

Christian B. schrieb:
> Die Frage ist nun: hatte jemand schonmal ein ähnliches Verhalten?

Nein, 5 Controller auf einem Board hatte ich noch nie 🤨
Bestückungs- oder Bautei- oder Herstellunsfehler bei der Platine sind 
ausgeschlossen?
Wieviele Lagen hat die PCB. Kommst du an alle Netze über Testpunkte ran?
Was für Endtests fanden an den Boards statt? Wie sehen die Daten im 
Vergleich zu vorherigen Chargen aus?

von DSGV-Violator (Gast)


Lesenswert?

> Die Frage ist nun: hatte jemand schonmal ein ähnliches Verhalten? Wie
> konnte es gelöst werden?

Ja ,ich hatte schon mal ein Board auf dem im Leerlauf alle Spannungen OK 
waren, aber trotzdem nichts lief. Bei Überprüfung der 
Bauteilaufschriften und damit der Typen fiel auf, das eine 
Speicherdrossel bei den DC-DC-Wandlern um 90° verdreht auf ihrem PADS 
sass, was zu einem harten Kurzschluss der Induktivität führte. Deshalb 
brachen die Ausgangsspannungen an den DCDC im Lastfall zusammen.

Deshalb solltest du die Spannungen im Lastfall überprüfen, vielleicht 
läuft auch ein Regler in den fold-back modus. Üblich ist, das man sich 
ein paar Labornetzteile nimmt, die DC/DC Wandler auf dem Board vom Rest 
des Boards abtrennt und die externen Labornetzteile dafür in das PCB 
"steckt" und schaut, das es damit läuft. vielleicht passt auch das 
PowerUp sequenzing nicht, oder der Reset-Impuls ist zu kurz ...
Wichtig ist, das man den Fehler systematisch einkreist.


Und natürlich kann man die Bestückung anhand der Beschriftung überprüfen 
oder nachmessen. Wäre nicht das erste mal, das ein Teil nicht richtoig 
bestückt ist (Thombstone), beschädigt wurd oder aus der falschen 
lagerkiste stammt. Oder ganz bei der (Handbestückung) vergessen wurde.
Lass da mal einen Hardware-Experten ran, den HW-Hersteller um die 
Fertigungs/Prüfprotokolle zu bitten wäre auch nicht schlecht.

Beitrag #7391593 wurde von einem Moderator gelöscht.
von DSGV-Violator (Gast)


Lesenswert?

> 5 Controller an board klingt für mich schon nach einer vermurksten
> architektur, vielleicht ist die umsetzung auch schlecht.

Das kannst Du aus der Ferne doch garnicht beurteilen.

Und was heisst vermurkst, es würden ja immerhin noch 80% funktionieren
wenn ein Controller grad "unpäßlich" ist. Andernfalls hätte man
Totalausfall, schlecht kritischer Technik wie bspw Fliegerei.

von Christian B. (luckyfu)


Lesenswert?

Flip B. schrieb:
> 5 Controller an board klingt für mich schon nach einer vermurksten
> architektur, vielleicht ist die umsetzung auch schlecht.

Nein, das hat schon seinen Grund. Die Platine ist Teil einer Steuerung 
und das Gerät hat 4 identisch aufgebaute, zu steuernde Einheiten, jede 
Einheit wird mit einem eigenen Controller betrieben. Der 5. ist als 
Überwachungssystem da und prüft die Entscheidungen der anderen 4. Um das 
zu ermöglichen haben die Controller 3 hart verdrahtete Adresspins, womit 
die ihre Position im System erkennen und entsprechend reagieren können. 
Alle 5 hängen am gleichen UART Bus, welcher auf der Platine mittels 
SP3070E zu einem RS485 umgewandelt wurde, Das spielt aber hier erstmal 
keine Rolle, da das Problem auch besteht, wenn dieser IC entfernt wurde.

Peter D. schrieb:
> Sieht stark nach Softwarefehler aus.

ist halt eher unwahrscheinlich, wenn das Board jahrelang produziert 
wird, ohne ein Problem und jetzt plötzlich eine Charge komplett 
ausfällt. Änderungen wurden keine durchgeführt.

Jobst M. schrieb:
> Keiner der Controller auf einem der Boards oder alle Boards des Loses?
> Oder ein bestimmter Controller auf dem Board, dafür aber bei allen
> Boards?

Alle Controller auf allen Boards des Loses

Rainer W. schrieb:
> Wieviele Lagen hat die PCB. Kommst du an alle Netze über Testpunkte ran?
> Was für Endtests fanden an den Boards statt? Wie sehen die Daten im
> Vergleich zu vorherigen Chargen aus?

Christian B. schrieb:
> Achja, die Platine ist eine einfache 4 Lagen Platine,
> routing und placement auf Top + Bottom, I1 GND, I2 VCC. Keine
> Impedanzkontrollierten Leitungen oder sonstige Spezialitäten.

Christian B. schrieb:
> nun kam eine neue Charge
> (keine Änderungen durchgeführt, nur neues Produktionslos)

Jobst M. schrieb:
> Wie sehen die Spannungen rund um den/die Controller auf beiden Boards
> aus, wenn Du beide im Reset hältst? Gibt es hier auffällige
> Unterschiede?

das muss ich heute mal ausmessen. Gestern habe ich sie schon einmal 
durchgemessen, dabei sind mir an den relevanten Pins 
(Spannungsversorgung, reset, Takt) keine unterschiede aufgefallen. 
Allerdings hatte ich die Controller dabei nicht im Reset gehalten.

Volker B. schrieb:
> Ich würde probehalber den Takt aus dem internen RC-Oszillator erzeugen.

das werde ich heute mal ausprobieren, auf die Idee bin ich heute auf der 
Anfahrt zur Firma auch schon gekommen.

Sebastian W. schrieb:
> Ein Taktgeber pro uC, oder alle 5 an demselben?

alle am selben.

Ron-Hardy G. schrieb:
> Mal gecheckt ob der TX-Pin Masseschluß hat ?

Ja, ich hab den nachfolgenden SP3070E heruntergelötet, hat leider nichts 
gebracht. Anschließend habe ich den Pin des Controllers in die Luft 
gehangen: gleiches Ergebnis, er bleibt low. Ausserdem gibt es noch einen 
pin, welcher in jedem main Durchlauf toggelt, dieser bewegt sich auch 
nicht.

Flip B. schrieb:
> So ohne schaltplan und Programmcode rate ich dir, die Platinen beim
> hersteller zu reklamieren.

Ja, nützt mir nur nichts, wenn der Fehler nicht auffindbar ist. Die 
Rohplatinen haben ein einwandfreies Prüfprotokoll. Bis auf den Datecode 
unterscheiden sie sich optisch nicht von bisher bereits gelieferten. Den 
Schaltplan kann ich nur in Ausschnitten posten, wenn ein Detail 
besonders interessant erscheint.

DSGV-Violator schrieb:
> vielleicht passt auch das
> PowerUp sequenzing nicht, oder der Reset-Impuls ist zu kurz ...

Ein manueller reset im Betrieb nützt leider auch nichts, hab ich schon 
ausprobiert.

DSGV-Violator schrieb:
> Lass da mal einen Hardware-Experten ran

Dummerweise bin ich der Hardware Experte. Eine Vorstellung des Problems 
bei 2, mir gut bekannten Personen, welche ebenfalls mit solch einem 
Problem hätten konfrontiert sein können, erbrachte ein paar neue 
Ansätze, aber leider keine Lösung, weshalb ich mich dazu entschlossen 
habe, das mal hier in die Runde zu werfen, gibt ja hier auch findige 
Personen mit mehr Erfahrung als ich, die sowas vielleicht schonmal 
hatten und sich daran erinnern, was das Problem war.

von DSGV-Violator (Gast)


Lesenswert?

Christian B. schrieb:
> gibt ja hier auch findige
> Personen mit mehr Erfahrung als ich, die sowas vielleicht schonmal
> hatten und sich daran erinnern, was das Problem war.

Das Problem ist immer das selbe, man muss das Problem einkreisen, auf 
die baugruppe oder das System. also passt der takt, die 
Energieversorgung, der reset?.

Und hasste das passende Mess-/Prüfequipment dabei? Scope, Multimeter, 
mikroskop?.

Und statt irgendwo rumfragen hilft manchmal auch 
Literaturstudium/Ausbildung.

https://de.elv.com/franzis-das-grosse-handbuch-fehlersuche-in-elektronischen-schaltungen-077821

https://www.amazon.de/Troubleshooting-Analogschaltungen-Robert-Pease/dp/3895760595

von S. K. (hauspapa)


Lesenswert?

Ich tippe auch auf Startup Sequenz. Irgendwelche Bootmode oder 
Bootloadergeschichten die versehentlich angesprungen werden?

Je nach Controller aufwändig: Einen nach dem anderen herunterföhnen und 
zwischendurch testen bis ein einzelner übrig bleibt.  Ich hatte mal 
Probleme mit zu langsam steigender Versorgungsspannung das lief mit 
sporadischen Aussetzern beim Start. War hässlich zu finden.

Viel Erfolg
Hauspapa

von Christian M. (christian_m280)


Lesenswert?

Das Problem ist immer dort, wo man nicht sucht, oder von vornherein 
ausschliesst!
Konkret in Deinem Fall: Tritt mal einen Schritt zurück und schaue das 
Ganze an!

Gruss Chregu

von Chris L. (kingkernel)


Lesenswert?

Das der Tktgeber auch wirklich taktet, has du mit einem oszi geprüft, 
nehme ich an?
mal versucht nur einen pin toggeln zu lassen? also ein reines 
testprogramm ohne alles andere auf den controller zu flashen?
einen fehler, den ich mal htte, die AVRs hatten bei einer neuen 
Lieferung auf einmal andere fuse-konfigurationen
wie sieht der stromverbrauch der neuen im vergleich zu den alten 
platinen aus?
ändert sich der stromverbrauch, wenn du die controller in den resetstate 
bringst?

von Klaus H. (hildek)


Lesenswert?

Christian B. schrieb:
> Interessant wird es jetzt: Ich habe dann den Controller mit einem
> getauscht von einem funktionierenden Board. Fazit: der vorher nicht
> funktionierende Controller läuft ohne neu Programmierung direkt auf dem
> alten Board, der dort funktionierende läuft aber nicht mehr auf dem
> neuen Board.

Dann tippe ich eindeutig auf ein Hardwareproblem.
Vergleiche akribisch die alten und neuen Boards! Sind die neuen Boards 
Redesigns oder nur eine Neuauflage aus dem gleichen Datensatz?
Softwarefehler würde ich mal auf Grund dieser deiner Aussage weit 
zurückstellen ...

Ich hatte mal einen Layouter, der trotz (roter) Warnung den Datensatz 
ausgeliefert hat.
Ich hatte mal einen Fertiger, der einen Kerko beim Handling zerbrochen 
hat: glücklicherweise an der Versorgung, das dann leichter lokalisierbar 
war.

von Peter D. (peda)


Lesenswert?

Christian B. schrieb:
> Ausserdem gibt es noch einen
> pin, welcher in jedem main Durchlauf toggelt, dieser bewegt sich auch
> nicht.

Dann sollte sich doch mit dem JTAG-Debugger feststellen lassen, an 
welcher Programmzeile die CPU gerade hängt.

Ich hab auch eine Heartbeat-LED und eine Error-LED auf den Platinen. Mit 
dem Tastverhältnis werden Betriebszustände codiert.

von Peter D. (peda)


Lesenswert?

Klaus H. schrieb:
> Ich hatte mal einen Fertiger, der einen Kerko beim Handling zerbrochen
> hat: glücklicherweise an der Versorgung, das dann leichter lokalisierbar
> war.

Kurzschlüsse an der Versorgung lassen sich nur schwer finden, da viele 
Bauteile parallel. Ich hatte mal einen Whisker unter dem Kondensator. 
Mit Konstantstromspeisung und IR-Thermometer konnte er eingekreist 
werden.

von Peter D. (peda)


Lesenswert?

DSGV-Violator schrieb:
> Und natürlich kann man die Bestückung anhand der Beschriftung überprüfen
> oder nachmessen.

Uns hatte mal der Bestücker 39R und 39k vertauscht.

von Christian B. (luckyfu)


Lesenswert?

Chris L. schrieb:
> Das der Tktgeber auch wirklich taktet, has du mit einem oszi geprüft,
> nehme ich an?

Ja, habe ich geprüft. Funktionierende Schaltung und nicht 
funktionierende nebeneinander. Ich habe nun nochmal die Fusebits 
überpfrüft. die XMegas haben keinen internen Taktgeber, damit fällt das 
schonmal raus. Da alle an der selben Leitung hängen, habe ich diese nun 
nochmal genauer inspiziert. Die Taktleitung hat, aus EMV Gründen, einen 
Serien und einen Abschlusswiderstand, welche natürlich die 
Signalamplitude etwas dämpfen. Hier gibt es ein Problem in der aktuellen 
Bestückung: Der Serien und der Abschlusswiderstand wurden vertauscht. 
Das macht am Ende einen Pegelunterschied von 100mV aus, aber 
offensichtlich war das zu viel. Bei einer ersten Überprüfung (der Takt 
war eins der ersten Signale, nach der Spannungsversorgung, welche ich 
mir genauer angesehen habe) ist mir das tatsächlich nicht aufgefallen. 
Mit der richtigen Bestückung funktionieren jetzt die Platinen.

Vielen Dank an alle, die mir hier helfen wollten!

von Peter D. (peda)


Lesenswert?

Ich hatte mit einem zentralen Takt auch mal Probleme.
Da die MCs eh nicht synchron arbeiten können, habe ich später jedem MC 
einen eigenen Oszillator spendiert. Das ist für die EMV deutlich 
entspannter.

von Klaus H. (hildek)


Lesenswert?

Peter D. schrieb:
> Kurzschlüsse an der Versorgung lassen sich nur schwer finden, da viele
> Bauteile parallel. Ich hatte mal einen Whisker unter dem Kondensator.
> Mit Konstantstromspeisung und IR-Thermometer konnte er eingekreist
> werden.

Ich habe (Konstant-)Strom eingespeist (aus dem Labornetzteil) und 
einfach mit Hilfe des Layouts die Stelle gesucht, wo die Spannung am 
geringsten ist.  Der Kurzschlusspunkt kann, muss aber nicht warm werden.

Christian B. schrieb:
> Hier gibt es ein Problem in der aktuellen
> Bestückung: Der Serien und der Abschlusswiderstand wurden vertauscht.

Gratuliere! Wie sagte ich doch:

Klaus H. schrieb:
> Dann tippe ich eindeutig auf ein Hardwareproblem.

von H. H. (Gast)


Lesenswert?

Mir hatten mal zwei Lagen von sechs im PCB gefehlt.

Ein Schlips hatte das günstige 4-L Sonderangebot des PCB-Herstellers 
wahrgenommen, und dem PCB-Hersteller ist nicht aufgefallen, dass da zwei 
Gerberdateien mehr dabei sind.

von Peter D. (peda)


Lesenswert?

Klaus H. schrieb:
> Ich habe (Konstant-)Strom eingespeist (aus dem Labornetzteil) und
> einfach mit Hilfe des Layouts die Stelle gesucht, wo die Spannung am
> geringsten ist.

Damit hatte ich keinen Erfolg, wenn VCC/GND als Plane ausgeführt sind. 
Die Spannungsunterschiede waren zu gering. Bei Signalen als Leiterbahn 
geht das aber recht gut, wenn der Kurzschluß nicht zu hochohmig ist.

von Christian B. (luckyfu)


Lesenswert?

Peter D. schrieb:
> Kurzschlüsse an der Versorgung lassen sich nur schwer finden, da viele
> Bauteile parallel. Ich hatte mal einen Whisker unter dem Kondensator.
> Mit Konstantstromspeisung und IR-Thermometer konnte er eingekreist
> werden.

Wenn man eine Wärmebildkamera hat, geht das schon. Am besten Strom von 
außen einspeisen und solange hochdrehen, bis etwas warm wird. das ist 
eine bewährte Methode, um solche Fehler zu finden. Allerdings ist sie in 
der Regel nicht zerstörungsfrei, denn oft genug stirbt dabei mindestens 
ein Bauteil.
So habe ich z.B. vor 2 Wochen ein Problem mit einer Lieferung gefunden, 
da war ein Bauteil 180° verdreht montiert. Zuerst hat es aber ein 
anderes Gatter vorgeschickt um sich zu opfern, als das dann weg war, 
zeigte sich der tatsächliche Fehler.

Sowas sollte man übrigens wirklich nur mit der Wärmebildkamera machen, 
mit dem Finger holt man sich da sehr schnell eine Verbrennung.

von Peter D. (peda)


Lesenswert?

Christian B. schrieb:
> Sowas sollte man übrigens wirklich nur mit der Wärmebildkamera machen

Welche könntest Du denn empfehlen?

von Christian M. (christian_m280)


Lesenswert?

Christian B. schrieb:
> Das macht am Ende einen Pegelunterschied von 100mV aus, aber
> offensichtlich war das zu viel.

Auf Kante genäht und so... 100mV zwischen funktionieren und nicht...

Flip B. schrieb:
> vielleicht ist die umsetzung auch schlecht.

Gruss Chregu

von Christian B. (luckyfu)


Lesenswert?

Peter D. schrieb:
> Welche könntest Du denn empfehlen?

Also wir haben eine Optris OPTPI16O23T900

Damit funktioniert das recht gut. Die Auflösung ist für Platinen absolut 
ausreichend um auch kleinere Wärmequellen lokalisieren zu können.

von Christian B. (luckyfu)


Angehängte Dateien:

Lesenswert?

Christian M. schrieb:
> Auf Kante genäht und so... 100mV zwischen funktionieren und nicht...

Naja, so ist das eben wenn man als Widersacher die Messkammer in der EMV 
hat. Alles, was man da senken kann, sollte man senken. Allerdings war 
mir persönlich nicht bewusst, dass die Oszillatoreingänge hier so 
empfindlich sind. Wenn man die Oszilloskop Bilder einer sicher 
funktionierenden und einer sicher nicht funktionierenden Platine 
nebeneinander legt, sieht man fast keinen Unterschied. Deshalb ist mir 
das bei der ersten Untersuchung auch durchgerutscht.

von Klaus H. (hildek)


Lesenswert?

Christian M. schrieb:
> Auf Kante genäht und so... 100mV zwischen funktionieren und nicht...

Ja, das war auch mein Gedanke.
Vielleicht sollte der TO den Teil als Schaltplan zeigen. Auch wundert 
mich das Vorhandensein eines Abschlusswiderstands:

Christian B. schrieb:
> Hier gibt es ein Problem in der aktuellen
> Bestückung: Der Serien und der Abschlusswiderstand wurden vertauscht.

Die Art der Verdrahtungsstruktur und die Dimensionierung würde ich gern 
sehen ...

Christian B. schrieb:
> sieht man fast keinen Unterschied

Das ist es, was Christian M. mit 'auf Kante genäht' meinte.
Wenn du jetzt noch Temperaturzyklen fährst ...

von H. H. (Gast)


Lesenswert?

Wie hoch ist denn die Versorgungsspannung des µC?

von Christian B. (luckyfu)


Lesenswert?

Klaus H. schrieb:
> Das ist es, was Christian M. mit 'auf Kante genäht' meinte.
> Wenn du jetzt noch Temperaturzyklen fährst ...

War das bis dato kein Problem. Die Maschinen werden ausgiebigen 
Zulassungstests unterzogen. Auch ist mir aus dem Feld bis dato kein 
solcher Ausfall bekannt (was aber nicht zwingend ausschließt, dass es so 
etwas nicht vereinzelt gibt). Prinzipiell ist das aber dennoch zu knapp. 
Ich muss halt jetzt schauen, wann der nächste zyklische EMV Test für 
dieses Gerät anberaumt ist und in diesem Zuge kann ich dann größere 
Veränderungen an der Beschaltung vornehmen. Bis dahin muss die Korrektur 
der Beschaltung erstmal ausreichen.

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Christian B. schrieb:
> Allerdings war
> mir persönlich nicht bewusst, dass die Oszillatoreingänge hier so
> empfindlich sind. Wenn man die Oszilloskop Bilder einer sicher
> funktionierenden und einer sicher nicht funktionierenden Platine
> nebeneinander legt, sieht man fast keinen Unterschied.

Naja, die Logik-Pegel aus dem Datenblatt sollte man bei einem 
kommerziellen Produkt m.E. schon berücksichtigen.
Bei VCC = 2.7 - 3.6V wäre VIH mindestens 2V.
Da hatte jemand aber bisher sehr viel Glück!

Ggf. kann das Taktsignal kapazitiv auf einen hochohmigen Spannungsteiler 
am Eingang eingekoppelt und somit angehoben werden.

Grüßle,
Volker

: Bearbeitet durch User
von Klaus H. (hildek)


Lesenswert?

Christian B. schrieb:
> und in diesem Zuge kann ich dann größere
> Veränderungen an der Beschaltung vornehmen.

Skizziere doch mal die prinzipielle Verdrahtung deiner Taktverteilung - 
Struktur, Längen, Beschaltung usw. Wenn du dann tatsächlich Änderungen 
vornehmen musst, dann hat man dir wenigstens ein paar Tipps geben 
können.

Ich habe ein wenig die Befürchtung, dass du eine verzweigte Struktur 
hast und die ist oftmals schwer zu beherrschen.
Je nach Stärke der Quelle kann man zwei oder auch drei sternförmig 
verdrahtete Verbraucher anschließen wobei jede Leitung eine eigene 
quellseitige Serienterminierung bekommt und auf der Empfängerseite 
'open' ist.
Sind es mehr Äste, dann wäre ein Buffer direkt nach der Quelle sinnvoll, 
wieder mit Serienterminierung.

Volker B. schrieb:
> Ggf. kann das Taktsignal kapazitiv auf einen hochohmigen Spannungsteiler
> am Eingang eingekoppelt und somit angehoben werden.

Auch das ist eine zielführende Lösung. Ebenso wie eine 
Thevenin-Terminierung auf der Empfängerseite.

von Klaus H. (hildek)


Lesenswert?

Nachtrag:
Ich habe ein ganz brauchbares Papier zur (vermutlichen) Problematik 
gefunden: 
https://homepages.thm.de/~hg7313/lehre/avt/skript/avt_hightechspeed_bg_kap2.pdf
Nur mit den genannten Nachteilen der Serienterminierung auf S. 18 unten 
bin ich überhaupt nicht einverstanden - die sind imho alle falsch!

von Christian B. (luckyfu)


Angehängte Dateien:

Lesenswert?

Klaus H. schrieb:
> Skizziere doch mal die prinzipielle Verdrahtung deiner Taktverteilung -
> Struktur, Längen, Beschaltung usw. Wenn du dann tatsächlich Änderungen
> vornehmen musst, dann hat man dir wenigstens ein paar Tipps geben
> können.

Anbei ein Ausschnitt wo man die Taktleitung sehen kann. Sie ist nicht 
verzweigt.

von Gerald B. (gerald_b)


Lesenswert?

Haben die neuen Prozessoren eine neue Revision?
Vom allseits beliebten Atmega 328 gibt es P, PB und weiß der Geier was 
noch alles. Mit so einem Fehler kann man dann wahnsinnig werden, wenn 
man das als mögliche Fehlerquelle nicht auf dem Schirm hat.

von Klaus H. (hildek)


Angehängte Dateien:

Lesenswert?

Christian B. schrieb:
> Anbei ein Ausschnitt wo man die Taktleitung sehen kann. Sie ist nicht
> verzweigt.

Es ist leider schwer zu erkennen, was wo ist.
Ganz oben ist wohl die Taktquelle, da sind zwei unbekannte Zweipole 
angeschlossen - Rs vermutlich und als Spannungsteiler geschaltet? Das 
wirkt wie eine Serienterminierung mit reduziertem Pegel. Bei der darf 
man aber ausschließlich am Ende der Leitung das Signal abnehmen!
Außer man hat am Ende auch eine Terminierung. Und deine Messung erfolgte 
vermutlich an dem TP201, also am Leitungsende.

Schau dir mal meine beiden Simulationen an - die Zahlen werden mit 
deinen Gegebenheiten nicht übereinstimmen, aber das Prinzip sollte 
deutlich werden. Es ist natürlich idealisiert, weil z.B. die 
Pinkapazitäten fehlen und meine Anstiegzeiten gezielt kurz eingestellt 
sind (100ps). Das zeigt die theoretischen Effekte besser.
Ich weiß auch nicht die Werte der Rs am Anfang und nicht die Impedanz 
der Leitung. Die Simulation geht von 50Ω an der Quelle aus, von einer 
50Ω-Leitung und in einem Bild ist die Ltg. mit 50Ω terminiert 
(100Ω||100Ω).
Die Problematik sollte aber deutlich werden.

Wenn du die Struktur so beibehalten willst, dann baue mal testhalber die 
Variante mit Thevenin-Terminierung auf und miss an jedem Taktpin der 
Controller.

von Flip B. (frickelfreak)


Lesenswert?

Was ist das denn, den 8MHz Takt auf seinen 120mm Viaslalom über die 
leiterplatte versuchen auf 50 Ohm zu terminieren, und dann in einen 3,3V 
Logikeingang zu gehen?  Wenn überhaupt, dann nimmt man halt einen 20MHz 
tiefpass, um die Flanken etwas zu entschärfen. Was soll denn bei 10 oder 
20MHz auf dieser kurzen leiterbahn absrahlen?

von Klaus H. (hildek)


Lesenswert?

Flip B. schrieb:
> Wenn überhaupt, dann nimmt man halt einen 20MHz
> tiefpass, um die Flanken etwas zu entschärfen.

Quellseitig? Tiefpass heißt RC-Glied - bloß nicht!

von Markus M. (adrock)


Lesenswert?

Wie schon Hinz angemerkt hat, könnte das Taktsignal vom Pegel her 
grenzwertig sein.

Auch bei dem funktionierendem Board scheint laut dem 
Oszilloskop-Screenshot ja das Taktsignal gerade mal bei ~1.7V für "high" 
zu liegen.

Bei einer Versorgung von 3,3V ist das (vermutlich) außerhalb der 
Spezifikation. Im Datenblatt konnte ich speziell zum Clock-Signal 
allerdings keine Angaben finden, für I/O-Ports sind es bei Vcc=3,3V min. 
2V für High-Level, ich würde eher allgemein mit 0.7*Vcc rechnen.

Ich würde echt sagen da hatte der TO Glück dass es bis jetzt so gut 
funktioniert hat.

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

Markus M. schrieb:
> Auch bei dem funktionierendem Board scheint laut dem
> Oszilloskop-Screenshot ja das Taktsignal gerade mal bei ~1.7V für "high"
> zu liegen.

Wenn die Ausgangsimpedanz des Oszillators derart belastet ist, können 
womöglich schon die Tastköpfe des Oszilloskops die wahren Werte 
verfälschen ...

LG, Sebastian

von Klaus H. (hildek)


Angehängte Dateien:

Lesenswert?

Markus M. schrieb:
> Ich würde echt sagen da hatte der TO Glück dass es bis jetzt so gut
> funktioniert hat.

Ich auch.

Sebastian W. schrieb:
> Wenn die Ausgangsimpedanz des Oszillators derart belastet ist,

Das muss keine zu große Last sein. Siehe den Ausschnitt aus seinem 
Layout, es sieht so aus, als ob da ein Spannungsteiler am 
Oszillatorausgang angebracht wäre. Und messen tut er ganz am Ende der 
Leitung (vermutlich).

von Christian B. (luckyfu)


Lesenswert?

Naja, von dem Spannungsteiler ist nur ein 47Ohm Serienwiderstand 
gesetzt. Der Abschlusswiderstand ist am vorletzten Controller mit 75Ohm. 
Gemessen habe ich das Signal oben, hinter dem Serienwiderstand.

Markus M. schrieb:
> Wie schon Hinz angemerkt hat, könnte das Taktsignal vom Pegel her
> grenzwertig sein.

Das sehe ich ja mittlerweile auch ein. Wird bei passender Gelegenheit 
abgeändert, ist halt nicht so einfach eben schnell gemacht.

Markus M. schrieb:
> Ich würde echt sagen da hatte der TO Glück dass es bis jetzt so gut
> funktioniert hat.

Ist das einzige Board, welches ein derartiges Konzept verfolgt. Das 
wurde uns damals vom Tüv aufgedrückt. Normalerweise hat jeder Controller 
/ CPLD /FPGA seinen eigenen Quarz oder Oszillator, welcher dann mit 
einem deutlich kleineren Serienwiderstand und einer deutlich kürzeren 
Leitung auskommt. (Normalerweise zwischen 0,5 und 2cm)

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Christian B. schrieb:

> Ist das einzige Board, welches ein derartiges Konzept verfolgt. Das
> wurde uns damals vom Tüv aufgedrückt.

Aus Gründen der Zuverlässigkeit? Dann wäre es doch sinnvoller, wenn 
jeder xmega seinen internen, temperaturkompensierten Oszillator 
verwenden würde.

Wie heißt's so schön: Gut gemeint ist nicht automatisch auch gut 
gemacht.

Vielleicht sollten die "Dampfkesselfritzen" doch lieber bei ihren 
Kesseln bleiben? Wenn die Kerlchen Abwasserdämme zertifizieren, wird ja 
auch so manches "übersehen", aber Hauptsache, das Honorar stimmt :-(

Grüßle,
Volker

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Man könnte die XMEGA von externem Takt auf externen Quarz 
umkonfigurieren, dann sollte ein deutlich niedrigerer Pegel reichen.
Testweise kann man dann den Widerstand am Generator soweit erhöhen, bis 
die XMEGA wieder aussetzen. In den Datenblättern gibt es leider 
keinerlei Angaben dazu.

: Bearbeitet durch User
von Christian B. (luckyfu)


Lesenswert?

Peter D. schrieb:
> In den Datenblättern gibt es leider
> keinerlei Angaben dazu.

Naja, und das ist genau das Problem. Also baut man das einmal auf, es 
funktioniert und dann schaut man es sich 5 Jahre nicht mehr an. Und 
irgendwann ändert dann der Oszillatorhersteller den internen Aufbau 
etwas ab und schwupps merkt man, dass das Ganze System bisher knapp über 
der Schwelle funktioniert hat. Das ist natürlich nicht der angestrebte 
Weg, aber manchmal rutschen so Nebenkriegsschauplätze einfach durch. 
Ohne mich da jetzt aus der Verantwortung ziehen zu wollen.

von Klaus H. (hildek)


Lesenswert?

Christian B. schrieb:
> Naja, von dem Spannungsteiler
Welcher Wert? Und warum einen Spannungsteiler?
> ist nur ein 47Ohm Serienwiderstand
> gesetzt. Der Abschlusswiderstand ist am vorletzten Controller mit 75Ohm.
Warum nicht am Ende?
> Gemessen habe ich das Signal oben, hinter dem Serienwiderstand.
Das ist die uninteressantest Stelle. Und wie sieht das Signal an den 
Taktpins der Controller aus? Das ist die entscheidende Stelle!

Warum schaffst du es nicht, eine kleine Skizze von dem Taktnetz mit 
allen Werten hier zu zeigen. Bleistift und Papier reichen aus ...
Und noch die nachgefragten Messungen zu machen.

Generell: diese Art der Taktverteilung ist das Schlechteste was man 
machen kann. Zumindest muss ich davon ausgehen von dem was du bisher 
genannt hast.

von Mi N. (msx)


Lesenswert?

Christian B. schrieb:
> Naja, von dem Spannungsteiler ist nur ein 47Ohm Serienwiderstand
> gesetzt. Der Abschlusswiderstand ist am vorletzten Controller mit 75Ohm.

Abschlußwiderstand ist ja nett, aber dann bitte auch nach VCC/2, wo der 
Schaltpunkt des Eingangs zu vermuten ist.
Probiere doch mal aus Spaß, einen weitern 75 Ohm Widerstand nach VCC. 
Der Pegel wird sich verringern aber es wird trotzdem funktionieren.

Peter D. schrieb:
> Man könnte die XMEGA von externem Takt auf externen Quarz
> umkonfigurieren, dann sollte ein deutlich niedrigerer Pegel reichen.

Aber dann wiederum auf VCC/2 einstellen oder besser mit 1 nF kapazitiv 
einkoppeln: "Das machen Wir immer so". ;-)

von Peter D. (peda)


Lesenswert?

Es gibt auch MCs, die bei instabilem externen Takt wieder auf den 
internen Takt zurück fallen können, um dann einen Fehlercode z.B. über 
eine LED zu melden.

von Falk B. (falk)


Lesenswert?

Mi N. schrieb:
>> Naja, von dem Spannungsteiler ist nur ein 47Ohm Serienwiderstand
>> gesetzt. Der Abschlusswiderstand ist am vorletzten Controller mit 75Ohm.
>
> Abschlußwiderstand ist ja nett, aber dann bitte auch nach VCC/2, wo der
> Schaltpunkt des Eingangs zu vermuten ist.
> Probiere doch mal aus Spaß, einen weitern 75 Ohm Widerstand nach VCC.

Nö, wenn schon, dann je 150 Ohm nach VCC und GND, siehe 
Wellenwiderstand, Thevenin-Terminierung. Bei einem Takt aber 
unnötig, da reicht AC-Terminierung. 10nF in Reihe zum Widerstand, 
fertig.

Die Leitung hat sowieso keine 75 Ohm, eher 100-150. Das würde ich bei 
sowas sowieso anstreben, denn normale 3,3V Logik ist im Normalfall nicht 
für 75 oder gar 50 Ohm Terminierung gedacht bzw. hat zu wenig 
Treiberleistung.

von Falk B. (falk)


Lesenswert?

Peter D. schrieb:
> Es gibt auch MCs, die bei instabilem externen Takt wieder auf den
> internen Takt zurück fallen können, um dann einen Fehlercode z.B. über
> eine LED zu melden.

Mag sein, aber das war nicht das Konzept. Der Takt wurde als stabil 
angesehen, was in 99% aller Designs auch so ist. Naja, Lehrgeld bezahlt 
man halt auch ab und an in den höheren Semestern ;-)

von Peter D. (peda)


Lesenswert?

Falk B. schrieb:
> Mag sein, aber das war nicht das Konzept.

Der Chip gibt es aber her, siehe:
7.8 PLL and External Clock Source Failure Monitor

Warum sollte man also auf einen geringen Aufwand verzichten, um die 
Diagnose zu erleichtern. Vielleicht ist sogar ein Notbetrieb weiterhin 
möglich.

von Falk B. (falk)


Lesenswert?

Peter D. schrieb:
> Der Chip gibt es aber her, siehe:
> 7.8 PLL and External Clock Source Failure Monitor
>
> Warum sollte man also auf einen geringen Aufwand verzichten, um die
> Diagnose zu erleichtern.

Weil es Humbug ist. Man kann einen Takt auch vorher solide 
bereitstellen. Das kann und sollte man bei den Entwicklungstest messen. 
Wurde wohl verpasst bzw. der Pegel falsch bewertet. Eine 
Parallelterminierung ist hier auch nicht sonderlich sinnvoll, siehe 
oben. Noch besser und ausreichend wäre vermutlich ein RC-Tiefpass am 
Oszillatorausgang, um die Anstiegszeit so weit zu verlängern, daß 
Reflektionen keine Rolle spielen. Wir reden hier schließlich nicht von 
mehreren Metern Taktleitung, sondern irgendwas um die 150-200mm. Da 
reicht ein Runterbremsen auf 10ns Anstiegszeit.

> Vielleicht ist sogar ein Notbetrieb weiterhin
> möglich.

Jaja, pfusche jederzeit, dann hast du immer Not.
Solche Taktrückfallgeschichten macht man nur, wenn es die Lage WIRKLICH 
erfordert. Ist hier nicht der Fall.

von Mi N. (msx)


Lesenswert?

Falk B. schrieb:
> Nö, wenn schon, dann je 150 Ohm nach VCC und GND, siehe
> Wellenwiderstand, Thevenin-Terminierung

Mal wieder nicht kapiert, was gemeint ist?
Den genauen Wellenwiderstand kennt zum einen keiner und es geht darum zu 
zeigen, daß VCC/2 der angestrebte Pegel am µC-Eingang sein sollte.
Anstatt aus- und einzulöten, einfach einen weiteren (bedrahteten) 
Widerstand testweise ergänzen.
So einfach kann das Leben sein, wenn man sich ein wenig bemüht.

von Falk B. (falk)


Lesenswert?

Mi N. schrieb:
> Mal wieder nicht kapiert, was gemeint ist?

Das sagt der Richtige!

> Den genauen Wellenwiderstand kennt zum einen keiner und es geht darum zu
> zeigen, daß VCC/2 der angestrebte Pegel am µC-Eingang sein sollte.
> Anstatt aus- und einzulöten, einfach einen weiteren (bedrahteten)
> Widerstand testweise ergänzen.
> So einfach kann das Leben sein, wenn man sich ein wenig bemüht.

Jaja, immer schön faseln. Und der Oszillatorausgang, der so schon 
dampft, wird sich über die Parallelschaltung der beiden 75 Ohm 
Widerstände freuen. Denn die liegen aus Sicht der Quelle parallel!

von Mi N. (msx)


Lesenswert?

Falk B. schrieb:
> Denn die liegen aus Sicht der Quelle parallel!

Nicht schreien, Kleiner. Dass sollte so sein, damit die Amplitude 
abnimmt.
Daß das beachsichtigt war, hat doch (nahezu) jeder hier verstanden.

Bei 8 MHz und wenigen Zentimetern Länge mit "Wellenwiderstand" zu 
"argumentieren" ist doch völlig realitätsfern.
Oder geht es Dir nur ums Stänkern - mal wieder?

von Christian B. (luckyfu)


Lesenswert?

Mi N. schrieb:
> Anstatt aus- und einzulöten, einfach einen weiteren (bedrahteten)
> Widerstand testweise ergänzen.
> So einfach kann das Leben sein, wenn man sich ein wenig bemüht.

Werde ich nächste Woche mal ausprobieren. Im Moment sind andere Probleme 
wieder dringender als das hier zu Ende zu untersuchen. Deshalb kann ich 
auch vorerst keine updates mehr geben. Die Ursache ist erkannt, wie ich 
sie genau lösen werde (im Idealfall ohne Änderung der LP Daten, also mit 
reiner Umbestückung) weiß ich noch nicht, das werde ich zu gegebener 
Zeit untersuchen.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

Beitrag "Re: Seltsames Problem mit einer Mikrocontrollerkarte"

Das soll doch eine Art Redundanz sein? Wäre es da nicht ohnehin schlauer 
jedem Controller eine eigene Taktquelle zu spendieren? Mindestens dem 5. 
Überwachungscontroller?

von Mi N. (msx)


Lesenswert?

Christian B. schrieb:
> Die Ursache ist erkannt, wie ich
> sie genau lösen werde (im Idealfall ohne Änderung der LP Daten, also mit
> reiner Umbestückung) weiß ich noch nicht, das werde ich zu gegebener
> Zeit untersuchen.

Wenn ich Dich richtig verstanden habe, war zunächst der 47 Ohm 
Widerstand vorhanden und wegen Störstrahlung wurde der 75 Ohm Widerstand 
ergänzt?

Da die µCs am XTAL-Eingang kein steiles Rechtecksignal benötigen, würde 
ich die 75 Ohm durch testweise 100 pF ersetzen, um eine definierte 
kapazitive Last zu erhalten. Dann noch die 47 Ohm auf 470 Ohm erhöhen 
und Amplitude und Flanken kontrollieren. Das Layout könnte so bleiben.

Die 75 Ohm kannst Du wiederverwenden, wenn mal 10 m Antennenkabel 
eingefügt werden müssen oder sich auf dem analogen Monitor Geisterbilder 
zeigen ;-)

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.