PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 4-fach 7-Seg. Anzeigemodul aus DVD-Player



Padavan
03.09.2011, 13:19
Hallo

Beim Ausschlachten eines DVD-Players ist mir unter anderem dieses tolle Modul in die Hände gefallen.
Es handelt sich dabei um ein 4-Fach 7 Segment Anzeige mit 3 Tastern, 1 IR-Empfänger und 2 Leds.
Beim Identifizieren der Anschlüsse mit Multimeter und LA und MCU(myavr Board MK2) habe ich folgends raus bekommen:

1.GND
2.Taster oben und unten(teilen sich ein pin) tasten ohne R miteinander verbunden.
3.Taster mitte
4.Q1 (schattransen) H (L= Tran. an)
5.Q2 " H
6.Q3 " H
7.Q4 " H
8.Grüne Led mit High = 3,6V an Katode (L = led an)
9. H = VCC ?
10. H = VCC ?
11. N.C. (VCC oder GND an diesem pin,haben keinen effekt auf rest der Schaltung)
12. VCC Modul 5V+
13. IR-Empfänger Signal
14. Rote Led mit Low an Anode (H=led an)

auf der Rückseite der Platine ist ein 14piner zusehen mit der bezeichnung MM74HC????
mehr ist leider nicht zuerkennen.Das Modul wird mit multiplexen angesteuert,getestet und funkt,nur und hier fängt mein Problem an,habe ich keine Ahnung wie ich da etwas Anzeigen lassen kann.

AsuroPhilip
03.09.2011, 13:31
mh.... genau das selbe problem habe ich auch, 4x7 seg. mit 12 pins und keine Ahnung, wie man das anschließt bzw. ansteuert.

Padavan
03.09.2011, 18:08
Habe gerade nochmal gemessen und festgestellt das der IR-Empfänger an der roten led mit dran hängt!
die pins 9 und 10 könnte das I2C sein ???

021aet04
03.09.2011, 19:00
Da auf dem IC 74HC draufsteht würde ich eher an SPI tippen. Die 74er Reihe ist eine Logikreihe. http://de.wikipedia.org/wiki/74xx

Du könntest die Datenblätter der 74er Reihe durchsuchen und so auf das IC schließen, das wird aber viel Arbeit.

http://www.mikrocontroller.net/articles/74xx

MfG Hannes

seite5
03.09.2011, 19:43
hallo,
ich vermute, dass es sich bei dem ic um ein '147 o.ä. handelt, also einen einfachen BCD-7S-Wandler, dann müssten 7 Leitungen vom IC direkt zur LED
gehen, die 4 Transistoren rund ums Display treiben wahrscheinlich die Stellen, irgendwie müsste ihre Basis via R-Teiler an den Steckverbinder gehen.
4 Leitungen vom IC direkt an den Steckverbinder (evtl. über Diode, R) bilden dann die BCD-Info.
mfg
Achim

Kampi
03.09.2011, 20:07
Das kannst du leicht feststellen ob das ein BCD Wandler ist. Du schaust dir das Datenblatt an und legst eine Spannung an die Platine an. Anschließend legst du ein Bitmuster auf die Eingangspins z.B. 0001 und dann sollte die eine Anzeige eine 1 anzeigen. Du musst natürlich die Anzeige auch aktiv schalten also den Transistoreingang auf high legen. Wenn was passiert weißt du das es ein BCD Wandler ist wenn nicht musst du weiter forschen ;)

BMS
03.09.2011, 20:15
ich vermute, dass es sich bei dem ic um ein '147 o.ä. handelt, also einen einfachen BCD-7S-Wandler, dann müssten 7 Leitungen vom IC direkt zur LED
gehen, die 4 Transistoren rund ums Display treiben wahrscheinlich die Stellen, irgendwie müsste ihre Basis via R-Teiler an den Steckverbinder gehen.
4 Leitungen vom IC direkt an den Steckverbinder (evtl. über Diode, R) bilden dann die BCD-Info.
Sehe ich auch so. Dass die Transistoren die Stellen treiben,
hat er ja schon herausgefunden (Steckerbelegung Pin 4...7).
Was mich noch wundert ist, dass bisher nur 3 Anschlüsse in Frage kommen,
die mit dem IC verbunden sind. Das spräche dann eher für ein Schieberegister.
Gibt es doch noch einen 4. Anschluss, spräche das wieder für den BCD-7-Segment-Wandler.
Ist bekannt, ob die Anzeige im Gerät bestimmte Sonderzeichen dargestellt hat?
Ein BCD-7-Segment-Wandler hat nur einen begrenzten Zeichenvorrat ;)

Wobei die Pinbelegung doch danach aussieht, als hätte jemand mit allen Tricks versucht, Pins zu sparen ;)
Da hängt dann bestimmt ein Mikrocontroller dran, der das alles nacheinander abarbeiten darf

Für die weitere Suche der Nadel im Heuhaufen (welches IC da jetzt drin steckt) wäre es gut zu wissen, welche Leitungen alle an's IC führen. Dann kann man auch mit den Pinbelegungen in den Datenblätter der vermuteten ICs vergleichen. :-k

Noch zu den Tastern: es kommt mir etwas spanisch vor, dass zwei Taster sich eine Leitung teilen. Zwei Taster parallel geschaltet ergibt für mich bei einer Eingabe wenig Sinn. 2 Taster für ein und dieselbe Funktion? Da muss es noch einen
Trick geben. Sind da noch Dioden in der Gegend vorhanden? Vielleicht 'zieht' ein Taster ja beide Leitungen auf GND ??
[EDIT]Sehe da keine Dioden, möglicherweise verbindet ein Taster Pin 2 und Pin 3 der Steckerleiste miteinander?

Grüße,
Bernhard

Padavan
03.09.2011, 21:16
Hallo Leutz
ich hab da was verwechselt das Modul stammt aus einem Sat.Receiver!sorry

@seite5
richtig,die pins 4-7 sind die Transistoren.

@BMS
Es gehen wirklich 3 leitungen auf der unterseite zum ic, der rest geht auf die oberseite ich kann nicht erkennen wo da durch 7-seg. verdeckt aber ich schätze mal die richtung ist in ordnung(zum IC hin).bei pin8 der grünen led bin ich mir auch nicht sicher(doppelfunktion?).Das Teil hat im Receiver nur: Ch.00 ,also die kanäle angezeigt.Mit den Tasten auf einen Pin konnte man kanal rauf/runter stellen.
19878
Hier das Teil mal angeschlossen ans myavr-MK2 es wurden nur die Transistoren eingeschaltet und läuft mit 200hz multiplex.Falls pin8 eine doppelfunktion hat bleiben für daten Senden 3 pins übrig also pin8,9,10 reicht das für BCD?

Besserwessi
04.09.2011, 08:55
Wenn so etwas wie CH00 angezeigt wird, kann das kein BCD-7 Seg Wandler sein. Da bräuchte man auch schon so 4 Leitungen. Ein Schieberegister wie HC595 macht da mehr Sinn. Das passt auch gut zu 3 Leitungen die zum IC gehen.

Padavan
04.09.2011, 10:05
Moin

Der IC kann auch kein HC147 sein der hat nähmlich 16 pins,ich habe aber einen 14 pin IC drauf?

@Besserwessi
Wie gesagt wenn pin8 ne doppelfunktion hat dann ja,aber wenn nicht dann bleiben nur noch die pins 9,10 übrig.
Wie steuere ich den das schieberegister so an das es mir ne 1 als bsp. anzeigt?

BMS
04.09.2011, 11:43
Da der BCD-7-Segment-Wandler nicht mehr in Frage kommt, bleibt "nur" noch die Frage, um welches Schieberegister o.ä. es sich handelt ;)
Erst dachte ich an http://www.rn-wissen.de/index.php/Portexpander_am_AVR#Schaltplan - da ist ein 74595 verbaut, der kann es aber
nicht sein weil er 16 Pins hat. Ich such mal weiter...
Grüße,
Bernhard

021aet04
04.09.2011, 11:46
Wie du eine z.B. eine 1 Anzeigen kannst kann man so nicht sagen. da müsstest du dich in das SPI Bussystem einlesen (damit du weißt wie man Daten überträgt) und dann schaust wo die Anschlüsse des ICs zum Display geht. Du musst also wissen welcher Pin vom IC welches Segment setzt. Je nachdem sieht dann dein Protokoll aus bzw deine Daten aus.

MfG Hannes

BMS
04.09.2011, 11:51
Habe kurz einen Blick auf http://www.mikrocontroller.net/articles/74xx geworfen,
es könnte z.B. ein 74164 in Frage kommen (Serial In, Parallel Out 8 Bit Schieberegister).
Wichtig wäre, WELCHE Pins des ICs auf der Steckerleiste heraus geführt sind.
Grüße,
Bernhard

EDIT: Hier gibt es noch eine umfangreichere Liste: http://www.domnick-elektronik.de/elekttl.htm

EDIT 2: Was ist denn mit Pin 11 der Steckerleiste ? Gibt es da vllt. eine Verbindung zum IC? Durchgangsprüfer hilft ;) Und kannst du auf dem IC
wirklich nicht mehr als MM74HC erkennen? Schon die nächste Ziffer würde die Suche um einiges erleichtern!

Padavan
04.09.2011, 12:55
19884

Hier mal ne nahaufnahme des unbekannten ICs in der hoffnung das da einer mehr erkennen kann als ich,es ist sau schwer auszumachen wohin die pins gehen teilweise unter den IC entlang teilweise oberseite Platine aber das 4x7seg. deckt alles ab!

@ BMS
Steckerleiste PIN11 Nix nada mit DMM gemessen!
ja,beim 1. link war ich auch schon hab den da auch gefunden 74hc164?
den 2. schau ich mir mal an,thx

Kampi
04.09.2011, 13:03
Schau mal hier:
http://pdf1.alldatasheet.com/datasheet-pdf/view/194215/NSC/MM74HC.html

Vielleicht hilft dir das ja weiter ;)

Padavan
04.09.2011, 13:55
Das gibts doch nicht oder , guckt euch das letze Bild mal bitte genauer an , ich glaub ich habs gefunden
unter MM74HC steht da nicht 164M also MM74HC164M! ich habs auch erst gerade bemerkt.Mit nem Negativ vom Bild sieht man es besser.

19885

http://www.alldatasheet.com/datasheet-pdf/pdf/53749/FAIRCHILD/MM74HC164M.html

somit sind an Steckerleiste pin9,10 Seriell ! :p

021aet04
04.09.2011, 14:02
Das ist ein 74HC164. Man muss bei ICs teilweise sehr genau schauen und eventuell mit unterschiedlichen Blickwinkeln schauen (bzw den Beleuchtungswinkel) ändern. Eine Lupe ist oft auch sehr hilfreich. Ich habe ein USB Mikroskop (mit dem prüfe ich auch teilweise Platinen die ich anfertige). Ansonsten habe ich noch ein Objektiv von einem Fotoapparat. Bei dem gib ich die Linsen heraus (es bleiben nur 2). Mit der sieht man auch sehr viel.

MfG Hannes

Padavan
04.09.2011, 14:25
Hallo Hannes

da hast du recht ich habs erst mit der Makroaufnahme von meiner Digicam entdeckt, ich kenn das bis jetzt nur von Dip-gehäuse das alles am stück steht also 74hc164,da es sich hier ein SMD-SOIC ist,ist es da etwas anders,mal wieder was dazu gelernt!

So müsste jetzt nur noch raus bekommen welche pins rx un tx sind?Kann ich da einfach mit den pins experimentieren oder muss ich da was beachten.

Danke an alle die mir hier geholfen haben das Problem zulösen!!!

VG

021aet04
04.09.2011, 14:46
Die Anschlüsse, die du brauchst, aber auch die Ansteuerung findest du im Datenblatt => http://www.fairchildsemi.com/ds/74/74VHC164.pdf

Bei SPI gibt es kein RX, TX sondern 1 Anschluss für Clock, 1 (oder wie hier 2) Anschlüsse für Daten. Es gibt noch welche wie z.B. EN (Chip freischalten, damit die Daten erkannt werden), es gibt aber noch andere Bezeichnungen dafür.

Die Wahrheitstabelle, Ansteuerung,... findest du immer im Datenblatt.

MfG Hannes

Hubert.G
04.09.2011, 14:51
Wie wäre es mit ins Datenblatt schauen? DIL und SOIC sind gleich.
http://pdf1.alldatasheet.com/datasheet-pdf/view/23047/STMICROELECTRONICS/74HC164.html

Padavan
04.09.2011, 15:13
So nochmal nachgeschaut es ist definitiv ein 164er da Pin9(IC) Clear mit Vcc verbunden ist,pin8(IC) Clock ist mit 2,2k an pin 10 von Steckerleiste wenn der für clock ist, bleibt nur noch pin9 an Steckerleiste übrig?vergleich negativ Bild weiter oben da sieht man es.

BMS
04.09.2011, 15:51
Also die Eingänge des ICs sind ja Clock, Clear (negiert), Serial in A/B.
Clock und Clear hast du schon herausgefunden, ich denke dass serial A und B (IC Pin 1,2)
miteinander verbunden sind und dann auf Pin 9 (Steckerleiste) herausgeführt sind ?
Dann steht der Ansteuerung ja eigentlich fast nichts mehr im Wege.
Jetzt gilt es noch die Zuordnung der Segmente der Anzeige zu den QA,QB,QC...QH
herauszufinden ;)
Grüße,
Bernhard

radbruch
04.09.2011, 16:59
Hallo

Ich hab auch mal eine vierstellige 7-Segmentanzeige aus einem alten Videorekorder ausgeschlachtet. Allerdings konnte ich die Daten des Ansteuerchips noch lesen und diesen dann per Software-SPI auch erfolgreich ansteuern:

#include <avr/io.h>
#include <avr/interrupt.h>

#define pause_lang for(i=0; i<20; i++) for(n=0; n<65000; n++) dummy^=n+i
#define pause_mittel for(n=0; n<1000; n++) dummy ^= n
#define pause_kurz for(n=0; n<10; n++) dummy ^= n

void send_7segment(uint16_t wert, uint8_t punkt)
{
#define enbh PORTA |= 1<<PA4 // Portdefinitionen
#define enbl PORTA &= ~(1<<PA4)
#define clkh PORTC |= 1<<PC0
#define clkl PORTC &= ~(1<<PC0)
#define datah PORTC |= 1<<PC1
#define datal PORTC &= ~(1<<PC1)

uint16_t i, n, dummy, temp;
uint8_t t, h, z, e;

clkh; // Clock ist high als Startbedingung
pause_kurz; // kurz warten

if(wert == 0xffff) temp=wert; else // Blank
if(wert>9999) temp=0xeeee; // Überlauf "----"
else
{
t=h=z=e=0; // dezimal nach BCD wandeln
while(wert >= 1000) { t++; wert -= 1000; }
while(wert >= 100) { h++; wert -= 100; }
while(wert >= 10) { z++; wert -= 10; }
while(wert > 0) { e++; wert -= 1; }

temp = (t & 0xf); // BCD-Wert zsammenbasteln LSB ist links :(
temp |= (h & 0xf) << 4;
temp |= (z & 0xf) << 8;
temp |= (e & 0xf) << 12;

/*
temp = (wert & 0xf000) >> 12; // BCD Ziffern tauschen
temp|= (wert & 0x0f00) >> 4;
temp|= (wert & 0x00f0) << 4;
temp|= (wert & 0x000f) << 12;
*/
}

enbl; // Schreiben aktivieren

if(punkt & 15) for(i=0; i<4; i++) // Dezimalpunkt setzen?
{
if(punkt & (1<<i)) datah; else datal;
pause_kurz;
clkl;
pause_kurz;
clkh;
pause_kurz;
}
for(i=0; i<16; i++) // LSB von Digit 3 zuerst senden
{
if(temp & (1<<(15-i))) datah; else datal;
pause_kurz;
clkl;
pause_kurz;
clkh;
pause_kurz;
}
enbh; // Ende Schreiben
}

int main(void)
{
uint16_t i, n, dummy;

DDRA |= 1<<PA4;
DDRC |= 3;

send_7segment(0xffff,0); // blank
pause_lang;
send_7segment(8888,0); // alle Digits

while(1)
{
pause_lang;
send_7segment(10000,0); // Überlauf
pause_lang;
send_7segment(1234,0);
pause_lang;
send_7segment(4321,0);
pause_lang;
for(i=0; i<10000; i++) { send_7segment(i,0); pause_mittel; }
for(i=9999; i; i--) { send_7segment(i,0); pause_mittel; }
send_7segment(i,0);
}
return 0;
}


http://www.youtube.com/watch?v=0J6Nf38VBYE

Links sieht man die vier Treibertransistoren für die Module, daneben der Ansteuerchip (ein MC14499P) und zwischen Elko und Anzeige die Vorwiderstände für die einzelnen Segmente. In die Verbindungsleitungen zum AVR hatte ich vorsichtshalber ein paar Schutzwiderstände eingebaut. Das sieht eigentlich recht schick aus, deshalb viel Erfolg bei deinem Projekt.

Gruß

mic

Padavan
04.09.2011, 17:54
"Die Zuordnung der Segmente der Anzeige zu den QA,QB,QC...QH" ja muss ich noch rausbekommen!

bei einem Atmega8 sollte das dann in etwa so aussehen:

Steckerleiste pins 4 bis 7 , transistoren für die Segmente, an PortD
Steckerleiste pin 10 Clock an PB5(SCK) , pin 9 an MOSI? ist das so korrekt?
Ich habe noch nie was mit SPI gemacht,kann ich dann mein MK2-Board noch über ISP programmieren,
wenn die Platine am Board hängt?

@radbruch
schaut ja super aus wenns mal läuft,ich kanns kaum erwarten das meine Platine
auch das Laufen lernt! :)

hmm..sieht schon etwas schwierig aus das Programm.

Padavan
05.09.2011, 17:34
Hallo

Ich habs Geschafft!
Das Teil läuft jetzt wie gewünscht ,vielen dank nochmal an alle die geholfen haben!
hier mal ein Bild:
19908


Anbei der Code in Bascom:

'*******************************************
'*** 7-Segment Modul aus DVD-Player mit ***
'*** 3 tasten,1 IR-Sensor, 2 Status Leds ***
'*** 05.11.2011 by Padavan ***
'*******************************************

$regfile = "m8def.dat"
$crystal = 7372800 '7,37 Mhz
$hwstack = 20
$swstack = 8
$framesize = 24

'Ports

Ddrd = &B11111111

T3 Alias Portd.2 'Pin4,T4
T4 Alias Portd.3 'Pin5,T3
T2 Alias Portd.4 'Pin6,T2
T1 Alias Portd.5 'Pin7,T1
Led_gruen Alias Portd.6 'Pin8,Led Gr.

Led_gruen = 1

' Variablen

Dim Z As Byte
Dim Tausend As Byte
Dim Hundert As Byte
Dim Zehner As Byte
Dim Einer As Byte

'***TEST***

' SPI
Config Spi = Soft , Dout = Portb.3 , Ss = None , Clock = Portb.5
Ddrb = &B111111


' Timer0
Config Timer0 = Timer , Prescale = 256
On Timer0 Timer0_isr
Enable Timer0
Enable Interrupts

Const T0wert = 160 '112 für 100hz,160 für 150hz ,184 für 200hz


Tausend = 249 '&B11111001
Hundert = 164 '&B10100100
Zehner = 176 '&B10110000
Einer = 153 '&B10011001


'Main
Do


Loop

End

Timer0_isr:

Timer0 = T0wert
Incr Z

If Z = 1 Then
T1 = 0
Spiout Tausend , 1
Elseif Z = 2 Then
T2 = 0
T1 = 1
Spiout Hundert , 1
Elseif Z = 3 Then
T3 = 0
T2 = 1
Spiout Zehner , 1
Elseif Z = 4 Then
T4 = 0
T3 = 1
Spiout Einer , 1

Elseif Z = 5 Then
T4 = 1
Z = 0
End If
Return


MFG
Padavan