Forum: Mikrocontroller und Digitale Elektronik IC zerschossen


von Thorsten S. (thorstens)


Lesenswert?

Hallo liebe Experten,

ich bin leider kein Elektroniker, entwickle aber seit 30+ Jahren in 
C/C++. Nun spiele ich ein bisschen mit einem AVR, dabei hat sich 
folgendes Problem ergeben:

Ich habe ein LED-Board mit vier HT1632C (Steuerung einer LED Matrix). 
Die HT haben OSC und SYNC Pins, so dass ein HT als Master konfiguriert 
werden kann, und die anderen als Slaves. Das wird erreicht, indem alle 
OSC Pins der vier HT miteinander verbunden werden, und die SYNC Pins 
ebenfalls.

Nun dachte ich mir, ich kann das gemeinsame SYNC Signal mit einem 
Port-Eingang meines AVR verbinden, um so eine Art "Vertical Blank 
Interrupt" zu erhalten, um dann in dem Augenblick ein Update der 
Speicher der HT Chips vorzunehmen.

Daraufhin ist das Board aber scheinbar leider gestorben. Ich verstehe 
nur leider nicht, warum. Vielleicht kann mir jemand eine Erklärung 
geben, oder einen Link, um mein Wissen zu erweitern?

Mir ist aufgefallen, dass im Datenblatt für SYNC nicht die Einheit Volt 
angegeben ist, sondern eine Stromstärke in mA. Gleichzeitig wird aber 
Vlow mit 0.5V und Vhigh mit 4.5V angegeben. Ist das dann kein TTL Pegel? 
Hätte eine Schaltung dazwischen gemusst, statt SYNC direkt mit einem 
Port-Pin des AVR zu verbinden?

Für eure Hilfe wäre ich dankbar.

Grüße
Thorsten

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Thorsten S. schrieb:
> Daraufhin ist das Board aber scheinbar leider gestorben.
Welches Board?
Wie sieht das "scheinbar" aus?
Wie ist das Ganze versorgt und verschaltet, kannst du da mal eine Skizze 
malen?

> Mir ist aufgefallen, dass im Datenblatt für SYNC nicht die Einheit Volt
> angegeben ist, sondern eine Stromstärke in mA. Gleichzeitig wird aber
> Vlow mit 0.5V und Vhigh mit 4.5V angegeben.
Sync kann Eingang oder Ausgang sein. Für beide Betriebsarten werden 
Daten angegeben. Hast du die richtig programmiert? Schlecht wäre es, 
wenn alle 4 Ausgang wären. Oder alle Eingang und kein Sync-Impuls 
kommt...

von Thorsten S. (thorstens)


Lesenswert?

Das LED Board mit den Holtek HT1632C Chips ist gestorben, d.h. ich 
bekomme keine LED mehr zum leuchten. ("scheinbar" deshalb, weil man nie 
Seiteneffekte ausschließen kann)

Schade, ich hatte nämlich einen schicken Treiber entwickelt, mit 3 
unterschiedlich großen Fonts, 4-Way Scrolling, Linien, Rechtecken und 
Laufschrift.

Das LED Board (ein Sure Electronics 32x16 Bi-Color) hat einen eigenen 5V 
Eingang zur Stromversorgung. Von meinem STK 600 habe ich PD4 - PD8 mit 
den 4 Steuerleitungen des Boards verbunden, und zusätzlich GND.

(Laienfrage: Ich hatte ganz zu Anfang auch +5V vom STK mit dem 
Sure-Board verbunden, dann zeigte aber mein gleichzeitig am STK 600 
angeschlossenes LCD-Display ein schwaches aufleuchten der Pixel, obwohl 
das STK noch nicht eingeschaltet war. Ergo ging die Spannung vom Sure 
Board in das STK. Daraufhin hatte ich die +5V vom STK zum Sure entfernt, 
war das richtig? Jedenfalls arbeitete das Sure Board danach tagelang 
völlig korrekt. Ist es richtig, GND vom STK zum Sure zu führen? Ohne 
Verbindung funktionierte es auch.)

Ich habe eben zur Sicherheit meinen PORTD komplett mit den LEDs des STK 
verbunden, um zu testen ob mein PORTD noch funktioniert. Ich kann alle 8 
LEDs noch einzeln ansteuern. PORTD ist also als Ausgang ok. Zur 
Steuerung des Sure Boards nutze ich nur Ausgänge.

Ich möchte noch anfügen, dass das original Sure-Board die OSC und SYNC 
Pins der vier HT1632C nicht miteinander verbindet. Da ich aber Probleme 
mit sauberem Scrolling hatte, habe ich mit Kupferlackdraht jeweils die 
OSC und SYNC Pins miteinander verbunden. Das funktionierte auch. Einen 
HT1632C hatte ich dabei als Master konfiguriert, und die anderen drei 
als Slaves. Zur Gegenprobe hatte ich alle 4 HT1632C als Slaves 
konfiguriert, und alle 4 LED-Gruppen blieben dunkel. Zusätzlich hatte 
ich noch jeweils einmal den dritten HT1632C als einzigen Master 
konfiguriert und einmal den vierten. In allen Fällen lief alles korrekt. 
(An dem unsauberen Scrolling (äußerst unerklärliches Vorauslaufen der 
unteren beiden LED-Bänke) änderte sich leider nichts - mehr dazu vllt in 
einem anderen Thread).

Erst als ich dann SYNC mit PD2 verband (PD2 als Eingang), blieben alle 4 
LED Gruppen dunkel. Ich habe dann die Verbindung wieder entfernt, aber 
seitdem ist das Board nicht mehr zum Leuchten zu bewegen. :-(

Mich würde interessieren, was ich falsch gemacht habe, und wie man es 
richtig macht. Bisher dachte ich: TTL = alles prima... ist ja fast wie 
Lego zum Zusammenstecken (mit Pull-Ups/Downs). Aber offensichtlich ist 
es nicht so.

Auch kann ich zB garantieren, dass immer ein HT1632C als Master und die 
anderen drei als Slaves konfiguriert waren. Mich würde aber rein vom 
Verständnis her interessieren, ob ich etwas hätte zerstören können, wenn 
alle vier als Master (und somit alle OSC und SYNC als Ausgänge) 
konfiguriert worden wären.

von Peter D. (peda)


Lesenswert?

Thorsten S. schrieb:
> Das LED Board (ein Sure Electronics 32x16 Bi-Color) hat einen eigenen 5V
> Eingang zur Stromversorgung.

Das ist schlecht.
ICs dürfen nie Spannung an den anderen Pins sehen, bevor VCC anliegt.
Vermutlich haben also die HT1632C versucht, Dein STK600 über die 
Ausgänge zu versorgen und sind daran gestorben (Überstrom).

Entweder die VCC für alle ICs gleichzeitig zuschalten (ein Netzteil für 
alles) oder mit Schutzwiderständen (z.B. 1k) entkoppeln.

von Thorsten S. (thorstens)


Lesenswert?

Vielen Dank für eure Beiträge.

D.h. den SYNC Ausgang des HT1632C mit einem Porteingang des AVR zu 
verbinden ist bei gemeinsamen Netzteil unbedenklich, und ich kann das 
Signal dann korrekt auslesen? Mich verunsichert die Angabe der 
Stromstärke statt Spannung im Datenblatt.

von Ham Burger (Gast)


Lesenswert?

Thorsten S. schrieb:
> Mich verunsichert die Angabe der
> Stromstärke statt Spannung im Datenblatt.

Die Strömstärke soll Dir sagen, wie Hoch diese IOs als Quelle bzw. Senke 
max. betreiben darfst. Wenn Du nur einen ATMega IO da angeschlossen 
hast. Dann sollte alles gut sein. Wenn aber durch eine fehlende 
Versorgung mehr Strom aus dem Pin gezogen wird, dann Tschüss. Oder 
manchmal hat man auch Glück und der Strom wird nur begrenzt.

von Dumdi D. (dumdidum)


Lesenswert?

Peter Dannegger schrieb:
> oder mit Schutzwiderständen (z.B. 1k) entkoppeln.

Wie meinst Du das?

von Christian B. (luckyfu)


Lesenswert?

in alle Digitalen Verbindungen einen Schutzwiderstand einbauen. Dieser 
verhindert dann, im Falle eines Fehlers, daß durch zu hohe Ströme noch 
mehr Bauteile kaputt gehen.

Dimensionieren muss man sie so, daß einerseits nicht zu viel Strom 
fließen kann, andererseits sich aber die korrekten Pegel noch 
einstellen. (vor allem, wenn man mit Pull Ups/ Downs Leitungen auf ein 
Potential zieht)

von Thorsten S. (thorstens)


Lesenswert?

Mich würde auch noch mal die grundlegende Vorgehensweise interessieren.

Angenommen, man verbindet zB einen AVR mit eigener Stromversorgung mit 
einem USB-Port an einem PC (ohne sich dort die 5V zu holen). Reicht es 
dann aus, die Datenleitungen mit 1k zu entkoppeln? Muss dann die Masse 
durchverbunden werden?

von Stephan B. (matrixstorm)


Lesenswert?

Thorsten S. schrieb:
> Reicht es
> dann aus, die Datenleitungen mit 1k zu entkoppeln? Muss dann die Masse
> durchverbunden werden?
Prinzipiell reicht das verbinden der Masse aus, um mit Datenpegeln 
gekoppelt zu sein.

!!ABER VORSICHT!!

USB setzt auf den Datenleitungen nur maximal 3.3V ein. Also je nach der 
Spannung deiner "unabhaengigen Quelle" musst du Regler oder mindestens 
Zenerdioden einetzen.

Seh dir mal diese Schematics an:
http://matrixstorm.com/avr/tinyusbboard/#revthreepictures

Diese verwenden zwar die +5V vom USB, muessen aber den Pegel anpassen.
Zur Erkennung des USB-Standards muss desweiteren ein 1.5k PullUP 
entweder an D- oder D+. (low-speed vs. high speed).
Datenleitungen mit je 1k zum AVR ist zu viel...

!!!!!!!!!!!!!!!!!

MfG

von Thorsten S. (thorstens)


Lesenswert?

Ich muss da leider noch mal nachhaken.

Peter Dannegger sagt weiter oben: "Entweder die VCC für alle ICs 
gleichzeitig zuschalten (ein Netzteil für alles) oder mit 
Schutzwiderständen (z.B. 1k) entkoppeln."

Stephan B. sagt: "Prinzipiell reicht das verbinden der Masse aus, um mit 
Datenpegeln gekoppelt zu sein."

Lassen wir das Beispiel mit USB weg, sondern gehen durchgängig von 5V 
Pegeln aus, aber zwei Stromquellen für zwei Schaltkreise, deren 
Datenleitungen gekoppelt sind. Welche Aussage ist dann zutreffend?

von sterpa (Gast)


Lesenswert?

Thorsten S. schrieb:
> Ich muss da leider noch mal nachhaken.
>
> Peter Dannegger sagt weiter oben: "Entweder die VCC für alle ICs
> gleichzeitig zuschalten (ein Netzteil für alles) oder mit
> Schutzwiderständen (z.B. 1k) entkoppeln."
>
> Stephan B. sagt: "Prinzipiell reicht das verbinden der Masse aus, um mit
> Datenpegeln gekoppelt zu sein."
>
> Lassen wir das Beispiel mit USB weg, sondern gehen durchgängig von 5V
> Pegeln aus, aber zwei Stromquellen für zwei Schaltkreise, deren
> Datenleitungen gekoppelt sind. Welche Aussage ist dann zutreffend?

DIe beiden Aussagen haben 0,0 miteinander zu tun. Das eine bezieht sich 
auf die Versorgung von ICs, das andere bezieht sich auf gemeinsame 
Schnittstellenpotentiale. ICs müssen immer versorgter werden bevor an 
anderen Leitungen Potentiale anliegen. Ansonsten ziehen sich die ICs den 
Versorgungsstrom aus den Datenleitungen. Diese sind natürlich nicht 
nennenswert belastbar und werden damit zerstört.

Ohne einen SCHALTPLAN können wir allerdings nur weiterraten.

von Peter D. (peda)


Lesenswert?

Die 1k beziehen sich auf die Datenleitungen zwischen Schaltungen, die 
nicht an der selben VCC hängen, d.h. zu unterschiedlichen Zeiten 
angeschaltet werden können.

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.