Geht nur mit den Fingern im Spiel?

Gast #1186231
Lesenswert?

Hallo!

ich habe eine schaltung mit einem mega88 und einen 74HC595 (NXP), die 3 
7-segment anzeigen steuern. Die einzelnen 7-segment-anzeigen werden per 
transistor einzeln der reihe nach geschaltet (f=125 Hz).

Das merkwürdige ist, dass der 74HC595 die daten nur annimmt, wenn meine 
Finger sich in der nähe der 3 Leitungen (SH_CP, ST_CP, DS) zwischen AVR 
und 74HC959 aufhalten. Die Übertragung habe ich in software gemacht 
(also kein SPI oder so).

Ich habe als probe die datenleitung (DS) immer auf 1 gelassen, und nur 
die takte für SH_CP und ST_CP generiert. Der storage register wird alle 
8 bits angesteuert und !OE ist auf VCC. Auf dem oszi sieht alles so aus 
wie es soll.

Hat jemand eine idee, woran das liegen mag?

Gruß
Raphael.
Gast #1186284
Lesenswert?

Also erstmal vielen Dank für die vielen tips! Ich kann sie leider erst 
heute abend ausprobieren.

Um die fragen zu beantworten:
 - !MR ist mit pull-up (10k) auf VCC.
 - !OE ist direkt mit GND festgebunden.
 - nur Q7' ist nicht verbunden.
 - spannungsversorgung hat 10mV ripple.

Ich werde also wohl die massen überprüfen und mich wieder melden, wenn 
das getan ist.

Danke!

Raphael.
Gast #1186554
Lesenswert?

Was meinst du genau? Der 74HC595 kann immerhin 100MHz. Und mein mega88 
läuft auf dem internen oszillator (8 MHz).

Falls es hilft, hier ist der code:
1
void send_byte(uint8_t b)
2
{
3
    uint8_t i;
4
    
5
    for(i=0;i<8;i++){
6
  
7
  if(b & 1)
8
      SIPO_PORT |= 1<<DS_PIN; // set
9
  else
10
      SIPO_PORT &= ~(1<<DS_PIN); // clear
11

12
  b >>= 1;
13

14
  SIPO_PORT |= 1<<SH_CP_PIN; // set SH_CP
15
  SIPO_PORT &= ~(1<<SH_CP_PIN); // clear SH_CP
16
    }
17

18
    SIPO_PORT |= 1<<ST_CP_PIN; // set ST_CP
19
    SIPO_PORT &= ~(1<<ST_CP_PIN); // clear ST_CP
20
}

-Raphael.
Gast #1187075
Lesenswert?

Also, die Lösung meines problems war noch viel einfacher als erwartet: 
ein paar copy-paste fehler hatten sich im code eingeschlichen!

Der port für den schieberegister war als eingang initialisiert! 
Manchmal, aber manchmal...

Vielen Dank an alle!

Raphael.

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