Schieberegister 74hc164 an Atmega16

OP #2155949
Lesenswert?

Hallo Community,
ich habe mir nach und nach einen Atmega16 @ 16Mhz Board mit 
Serialverbindung aufgebaut. Nun möchte ich gern nachdem alles super 
klappte mein Board um ein oder zwei Schieberegister erweitern.


Ich habe das Schieberegister nach folgender Schaltung angeschlossen.
(siehe Ahnhang)

Ich nutze folgenden Code.
1
$regfile "m16def.dat"
2
$crystal = 16000000
3

4
Dim Reg As Byte
5
Dim Save As Byte
6
Dim Outbit As Boolean
7
Dim Cnt As Byte
8

9
Config Portb.0 = Output
10
Config Portb.1 = Output
11
Config Portb.2 = Output
12

13
Portb.1 = 0
14

15
Do
16
  Save = Reg : Portb.0 = 0 : Portb.0 = 1
17
  For Cnt = 1 To 4
18
    Outbit = Save And 1 : Portb.2 = Outbit
19
    Portb.1 = 1 : Portb.1 = 0
20
    Shift Save , Right
21
  Next Cnt
22
  Incr Reg : Waitms 200
23
Loop


Diese Schaltung funktioniert nur solang ich ich keine Stromversorgung 
anschliesse am(74hc164). Sobald ich an PIN7 Gnd und PIN14 +5V gebe 
schaltet sich alles Stumm. Die Leds blinken nichtmehr.

Atmega16
Anschluss PB0 an Clock @ 74HC164
Anschluss PB1 an Clear @ 74HC164
Anschluss PB2 an Serial Input A @ 74HC164

GND und Plus (vorerst abgeklemmt)


LED1 an PIN3 @ 74HC164
LED2 an PIN4 @ 74HC164

Der Bascom Code wird ausgeführt allerdings ohne die Stromversorgung am 
Schieberegister. Habe ich etwas übersehen was mache ich verkehrt?

Edit:
Im Anhang an PIN 1&2 @ 74HC164 ist PB0 und PB1 beschriftet das stimmt 
natürlich nicht.

Gruß Thomas
Angehängte Dateien:
Gast #2156058
Lesenswert?

Shiftregister ohne Stromversorgung, vor allem ohne GND soll 
funktionieren?
Da fresse ich ja eine Besenfabrik.

Falls du es nicht bereits dadurch bereits gebraten hast, versuche mal 
Pin 2 auf high zu legen.

Ich kenne die Programmiersprache, die du benutzt nicht, aber mir sieht 
es so aus, als ob die Variable Reg gar nicht initialisiert ist.

Ausserdem scheint mir CLOCK und CLEAR in deinem Code vertauscht.
OP #2156155
Lesenswert?

Ja genau danach habe ich gearbeitet :)

Lege ich Pin2 auf High leuchtet die LED heller aber beim low setzten 
kommt trotzdem Strom an. Verdammt nochmal ich mach aber auch alles 
falsch :(

Kann mir jemand sagen BITTE wie der richtig beschaltet wird oder hat 
jemand eine Schaltung wie ich den an einen Atmega16 richtig anschliesse?

Ich habe noch einen einzigen Baustein :( wenn da auch nen kurzer kommt 
liegt Ostern hier alles brach. Es wäre nett wenn mir jemand solch einen 
Schaltplan zeigen könnte. Oder sagen kann was wie wo angeschlossen wird.

Danke und Gruß
Frohes Osterfest :)
Thomas
Gast #2156620
Lesenswert?

Liest du eigentlich auch die Beiträge, die man auf deine Frage schreibt?

Wie gesagt, du hast in deinem Code Clock und Clear vertauscht.
Aussdem würde ich den Clear low-cycle und den Clock high-cycle 
sicherheitshalber so machen:

(...)
Portb.0 = 0
Waitms 1
Portb.0 = 1
(...)
Portb.1 = 1
Waitms 1
Portb.1 = 0
(...)

Und ohne GND und VCC funktioniert es überhaupt nicht.
Gast #2156818
Lesenswert?

Ich nur Bahnhof verstehen.
Welche Anleitung? Wer ist "er"? Wo ist "da?"

Die Belegung ist nicht total anders, sondern du hast den 2. Input jetzt 
korrekterweise auf 1 gesetzt, das ist das einzige was "richtiger" ist.
Jetzt hast du eben andere Ports an deinem Atmel benutzt.

Ich denke das Problem war nach wie vor hauptsächlich in deinem Code zu 
suchen, offenbar hast du jetzt im Code die Clock- und Clear Leitungen 
richtig angesteuert.

Gratulation.
OP #2156841
Lesenswert?

Den Reset-Eingang (MR=Master Reset) des Schieberegisters wird an Port D 
Bit 0 angeschlossen. Schieberegister benötigen noch ein Taktsignal, 
welches hier CP genannt wurde, dieses hängt an Bit 1 des Ports D.
1
Der 74HC164 besitzt 2 Dateneingänge, welche aber durch eine Und-Funktion miteinander verknüpft sind, so dass wir nur Da an Port D Bit 2 des AVR klemmen.
 Db wird dauerhaft an + gelegt.

da an Port zwei ,...

Ich habe das falsch gelesen unabhängig davon ob er das Groß oder klein 
schreibt! Am Ende war es mein Fehler aber nen bischen kenntlicher hätte
es an dieser Stelle schon formuliert werden können ;)

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