Schieberegister Daisy-Chaining

Gast #3387522
Lesenswert?

Hallo,

ich habe ein kleines Problem mit meinen Schieberegistern (74H599, also 
mit Latch). Das erste Register gibt schon keine Daten weiter... 
Vielleicht habe ich nur ein Problem mit der Ansteuerung.
Könntet ihr mal bitte gucken? :)

Funktionen zur Ansteuerung:
1
void ShiftRegister::reset()
2
{
3
  // tie reset low
4
  PORT_SHIFT_REGISTER &= ~(1 << _reset);
5
  _delay_ms(1);
6
  _byte = 0x00;
7
  PORT_SHIFT_REGISTER |= (1 << _reset);
8
}
9

10
void ShiftRegister::shift(uint8_t byte)
11
{
12
  setByte(byte);
13
  shift();
14
}
15

16
void ShiftRegister::shift()
17
{
18
  for (int i=0; i<8; i++)
19
  {
20
    if (_byte & (1 << i) )
21
      PORT_SHIFT_REGISTER |= (1 << _data);
22
    else
23
      PORT_SHIFT_REGISTER &= ~(1 << _data);
24
      
25
    // clock pulse
26
    PORT_SHIFT_REGISTER &= ~(1 << _clock);  
27
    PORT_SHIFT_REGISTER |=  (1 << _clock);
28
    
29
  }
30
}
31

32
void ShiftRegister::latch(uint8_t value)
33
{
34
  if (!value)
35
    PORT_SHIFT_REGISTER &= ~(1 << _latch);
36
  else
37
    PORT_SHIFT_REGISTER |=  (1 << _latch);
38
}

Und noch die Passage aus dem Programm:
1
ShiftRegister reg(PC3, PC2, PC0, PC1);
2
reg.reset();
3
reg.latch(false);
4
reg.shift(0xff);
5
reg.shift(0x00);
6
reg.shift(0xff);
7
reg.shift(0x00);
8
reg.shift(0xff);
9
reg.latch(true);

Ich habe mal nachgeguckt, die Daten kommen richtig an, Latch, Reset und 
Clock zeigen laut LA auch richtiges Verhalten.
Es hängen vier Stück hintereinander - das fünfte ist eigentlich nur so 
zur Kontrolle gewesen.

Vielen Dank und Grüße
Nutzer
#3392842
Lesenswert?

Sieht auf den ersten Blick richtig aus. Allerdings könnte der clock 
pulse falsch herum sein. Ich hab aber leider kein Datenblatt zu dem von 
dir angegebenen Chip gefunden.

Ansonsten kannst du vielleicht auch eine grobe Zeichnung deiner 
Schaltung posten. Vielleicht liegt der Fehler da.
Gast #3393063
Lesenswert?

> mit meinen Schieberegistern (74H599 ...
Es muss wohl heissen:  74HC599  oder  74LS599
Wobei ich nicht sicher bin ob es "HC" hier jemals gab.

Das '599 ist ein extrem seltener Exot, die "open collector" Version des 
wesentlich gängigeren 74(HC/LS)594
http://www.datasheetarchive.com/dl/Scans-056/DSAIH000137036.pdf

Programme für das Bauteil 74HC594 solltest du zuhauf finden hier... die 
Eingangsansteuerung ist ja identisch.

===> Oder liegt es daran, daß du die bei "open collector" notwendigen 
Pullup-R an den Ausgängen vergessen hast ???
Hänge mal einen 1k gegen +5V an (jedem) Ausgang ran!

Gruss

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren