Forum: Mikrocontroller und Digitale Elektronik Primitiver Computer im Eigenbau


von Moritz W. (moritz640)


Angehängte Dateien:

Lesenswert?

Hey
Ich bin Moritz und bin neu hier im Forum. Ich wurde oft bei Fragen auf 
diese Seite verwiesen, sodass ich beschlossen habe mich hier anzumelden 
:)

Ich habe seit einem Jahr einen kleinen Computer in Planung. Als 
Herzstück dient ein ATmega8-16PU, der "Display" besteht aus 2 
Doppel-Siebensegmentanzeigen, und als Eingabemöglichkeit hat man ein 
Tastenfeld mit den Tasten 0-9, 4 Sondertasten und eine Eingabetaste.
Ich habe mir über einige Details viele Gedanken gemacht. So ist 
beispielsweise alles Modular mit Steckkarten aufgebaut.
Auf dem "Mainboard" befindet sich das Netzteil mit einem 7805er und 
einem großzügig dimensioniertem Kühlkörpe, dann noch jeweils ein 470µF 
Elko und ein 100nF Kondensator vor dem Eingang des Spannungsreglers und 
ein 220µF Elko und ein 100nF Kondensator am Ausgang. Zudem hat das ganze 
natürlich einen Gleichrichter um vor Verpolung zu schützen ;)
Die Steckplätze bestehen aus 2 nebeneinander gelöteten 2*13 poligen 
Stiftleisten und das 5 mal! Schützt zwar nicht vorm falschen Einsetzen 
der Karten aber wenn man etwas aufpasst geht das schon ;D
Viele werden sicher denken das über ein Jahr Planung dafür ziemlich viel 
ist, aber es ist mein erstes EIGENES größeres Projekt :D

Zu der "Steuereinheit" gibt es eigentlich nicht so viel zu sagen. Ein 
ATmega8 (arbeitet bei mit mit 1 MHz internem Takt), welchen man über ein 
SPI-kabel 
(http://www.dieelektronikerseite.de/uC%20Ecke/Lections/SPI-Kabel%20-%202%20Welten%20treffen%20aufeinander.htm) 
programmieren kann. 4 Eingänge für die Tastatureinheit, 16 Ausgänge für 
die Displayeinheit und 2 Extraports. Momentan ist der ATmega8 noch ein 
"unbeschriebenes Blatt"...

Die Tastatureinheit habe ich noch nicht getestet. Der 74HCT4067 soll 
EIGENTLICH die Tastensignale in ein digitales Signal umwandeln..

Bei der Displayeinheit (Grafikkarte ;) ) habe ich noch Probleme. Als 
Grafikchips habe ich mich für 4 MOS4056 entschieden. Mein Problem 
besteht momentan dadrin, dass die Siebensegmentanzeigen komplett 
aufleuchten egal was ich mache. Könnte das daran liegen das ich "Strobe" 
und "Display freq. in" nicht angeschlossen habe?

Naja vielleicht weiß jemand von euch ja was :)
Und vielleicht interessiert es ja sogar jemanden xD

Gruß Moritz

von mr. mo (Gast)


Lesenswert?

pins sollte man immer alle belegen, sonst kann es unter anderem 
passieren das die ganze anzeige leuchtet ^^

von Moritz W. (moritz640)


Lesenswert?

ja schon klar aber wie? Ich habe lange gesucht wofür die sein sollen und 
aus dem Datenblatt wurde ich auch nicht schlauer...

Ich habe irgendwo gelesen das der "Display freq. in" Pin für 
Kristallanzeigen ist und die ne Frequenz brauchen oder sowas ?!?
Ich habe aber ganz normale LED anzeigen wieso brauchen die ne Frequenz??
Und was dieser "Strobe" sein soll weiß ich leider auch nicht :(

von Lehrmann M. (ubimbo)


Lesenswert?

Moritz Wenzel schrieb:
> Ich habe aber ganz normale LED anzeigen wieso brauchen die ne Frequenz??

Über eine sog. PWM könnte man die Helligkeit regeln. 
http://de.wikipedia.org/wiki/Pulsweitenmodulation

Moritz Wenzel schrieb:
> Und was dieser "Strobe" sein soll weiß ich leider auch nicht :(

Das könnte man im Datenblatt nachlesen :)

:( -> :)

von Karl H. (kbuchegg)


Lesenswert?

Zeig doch mal deine Schaltpläne.

IMHO hast du dir da eine Menge Arbeit gemacht. Ob sinnvoll oder nicht, 
darüber kann man jetzt diskutieren.
Was willst du mit dem 4056? Das ist doch ein 7-Seg Treiber für LCD! und 
nicht für banale LED Anzeigen.
Persönlich würde ich da nicht lange fackeln. 7-Seg LED über 
Schieberegister angeschlossen, ev. noch Leistungstreiber dazwischen, 
wenn ich nicht mit wenig Strom fahren will um die 595 zu schonen. Langt 
völlig und ist im Gegenteil viel universeller, weil ich jedes Segment 
einzeln ansteuern kann und so auch Dinge mit dem 7-Seg machen kann, die 
ich mit so einem Treiber nicht machen kann.

> Momentan ist der ATmega8 noch ein
> "unbeschriebenes Blatt"...

Ich interpretiere das so, dass du den Mega8 noch kein einziges Mal 
programmiert hast. Das halte ich nicht für schlau, überhaupt wenn es 
dein erstes Projekt ist. Du baust und baust und baust und weißt 
eigentlich nichtz so recht wies geht. Ein Probeaufbau auf einem 
Steckbrett hätte dir viel mehr Einsichten gebracht als da jetzt 1 Jahr 
lang zu planen. Wie willst du vernünftig planen, wenn du keine 
praktische Erfahrung hast.

von Moritz W. (moritz640)


Lesenswert?

Also ich fand eben dies hier:
{
Betrieb:
Liegt ein High am Strobe-Eingangan, so werden die Daten an den 
BCD-Eingängen zu den 7-Segment-Ausgängen gewandelt. Ein Low am 
Strobe-Eingang speichert die anliegenden Daten und die ausgewählten 
Segmente verbleiben in ihrem Zustand.

Um ein gemeinsames DF-Ausgangssignal zu liefern, muß der 4056 zusammen 
mit einem
4054 verwendet werden.

Der CMOS 4056 entspricht bis auf den zusätzlichen Zwischenspeicher dem 
4055.
}

jetzt muss ich also high (5V) am Strobe eingang anlegen da ich nix 
zwischenspeichern will und den DF in kann ich so lassen oooder? :D

von Spess53 (Gast)


Lesenswert?

Hi

Verstehe es doch mal. Der 4056 ist für Flüssigkristall-Anzeigen. Du hast 
LED-Anzeigen. Das sind völlig verschieden Technologien. Deine Anzeigen 
kannst du mit dem 4056 nicht ansteuern.

MfG Spess

von Moritz W. (moritz640)


Lesenswert?

oh sorry habe das andere nicht gelesen gehabt davor...

hmmm dann muss ich das mit den schieberegistern machen?!

Das mit dem "unbeschriebenen Blatt" war so gemeint das er noch in seinem 
originalzustand ist und ich DIESEN ATmega noch nicht programmiert habe..
Das soll nicht heißen das ich das noch nie gemacht habe ;)

ICh habe dieses Projekt zum lernen begonnen, nicht um irgendwie schon 
alles zu können sondern um zu lernen wie sowas funktioniert und wie man 
sowas macht und die Teile besser kennen zu lernen...
Wenn ich schon alles könnte und wüsste dann müsste ich das nicht machen!
Das es sich nicht im geringsten rechnet ist mir auch klar, alleine die 
Teile waren alle schon so teuer das ich mir davon was anderes hätte 
kaufen können, was wesentlich mehr kann.
Aber es geht mir auch nicht ums Geld sondern einfach darum das mir das 
spaß macht und ich dabei etwas lerne!

MfG Moritz

von Moritz W. (moritz640)


Lesenswert?

Die Schaltpläne folgen auch noch dauert kurz muss die erstmal 
zusammensuchen ;)

von Hallo (Gast)


Lesenswert?

Ich suche die ganze Zeit den Computer und auch die Grafikchips etc...

von roboter (Gast)


Lesenswert?

hmmm..., ist schon eine schöne sache was du machst.
so etwas habe ich auch vor, irgendwie mal einen computer im miniformat 
zu bauen auf der untersten avr-stufe.

interessant hier im forum ist auch das avr-basic auf einen avr644p.
da kannst du mal schauen wie ein interpreter funktioniert.
das programm ist sehr übersichtlich geschrieben.
es passt zu deiner idee, wenn die weiter gereift ist.

also , viel spass und berichte hier öfter mal...

von Moritz W. (moritz640)


Angehängte Dateien:

Lesenswert?

Also !!GANZ WICHTIG!!
Display kann so NICHT gebaut werden, da die Treiber Bausteine FALSCH 
sind!

Aber das waren meine entgültigen entwürfe (Controllercard und Mainboard 
sind neuer)

Das mit dem Schieberegister verstehe ich nicht tut mir leid!
Also ich verstehe das prinzip davon schon aber nicht diese seltsame 
Beschaltung davon:
http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXxrty.pdf

Gibt es keine Bausteine die ähnlich wie dieser MOS4056/55 sind nur halt 
für LED anzeigen?

von Moritz W. (moritz640)


Lesenswert?

@roboter:
Cool werde ich mir mal anschauen..
Ja kann ich machen also erstmal muss das ding laufen ;)
Und ob das mit der Tastatureinheit so funktioniert muss ich auchnoch mal 
sehen...
Ich bin da ja etwas pessimistisch seit meiner Displayeinheit...

von Achim (Gast)


Lesenswert?

Zum Schieberegister findest du was im AVR-Tutorial: 
AVR-Tutorial: Schieberegister Die Lösung ist sicher die flexiblerer, 
da du nicht auf Zahlen beschränkt bist, sondern mit deiner "Grafikkarte" 
beliebige Muster ausgeben kannst. Wenn du das nicht brauchst kannst du 
dir mal den 4511 Chip anschauen.

von HildeK (Gast)


Lesenswert?

Moritz Wenzel schrieb:
> Gibt es keine Bausteine die ähnlich wie dieser MOS4056/55 sind nur halt
> für LED anzeigen?

CD4511?

von Skua (Gast)


Lesenswert?

Moritz Wenzel schrieb:
> Ich bin da ja etwas pessimistisch seit meiner Displayeinheit...

Wohl leider zurecht.
Über die Pins ABCD selektiert man welcher X Pin mit dem Y Pin verbunden 
wird.

von mr. mo (Gast)


Lesenswert?

der einfachste treiber ist ein klassiker, der gute alte 4511 :)
hab davon geschätze 100 hier rumliegen :D

der ist einfach zu beschalten und man findet viel dazu bei google. der 
lässt sich sogar einfach auf einer lochraster aufbauen. man müsst halt 
nur wissen ob deine anzeigen eine common anode oder kathode haben...

von Achim (Gast)


Lesenswert?

Was sollen eigentlich die Dioden im Display-, Keyboard- und 
Controller-Board bewirken?
Du solltest keinen Eingang eines CMOS ICs einfach offen lassen (wie z.B. 
der !EN Eingang des 4067). Denn die Eingänge sind so empfindlich das sie 
alle möglichen Störungen aus der Umgebung empfangen und du somit 
undefinierte Wechsel zwischen 0 und 1 bekommst.

von HildeK (Gast)


Lesenswert?

Achim schrieb:
> Denn die Eingänge sind so empfindlich das sie
> alle möglichen Störungen aus der Umgebung empfangen und du somit
> undefinierte Wechsel zwischen 0 und 1 bekommst.

Nicht nur das, sie könnten auch auf ungefähr der halben Betriebsspannung 
rumhängen und dann ziehen die Bausteine deutlich erhöhten Strom.

von Moritz W. (moritz640)


Lesenswert?

Also ich habe mir mal das Datenblatt von dem 4511 angeguckt..
Ich will ja nicht sagen das ich den doof finde aber eigentlich ja doch 
:-/
Der kann ja NUR die Zahlen 0-9 anzeigen O.o
Ich hatte mir ja wenigstens erhofft das der wie der andere noch ein 
wenig mehr kann (L,A,P,H,-)...
Diese Anzeigen habe ich:
http://www.pollin.de/shop/dt/NjU0OTc4OTk-/Bauelemente/Aktive_Bauelemente/Displays/LED_Anzeige_BVN_7572SR4.html
Und die besitzen eine gemeinsame Kathode.

Jetzt mal sone ganz blöde Frage:
Bei Reichelt gibt es einmal einen 74HC4511 und einen 47HCT4511 der eine 
kostet 20 cent mehr. Wo ist da jetzt der Unterschied?

Zur Tastatureinheit nochmal:
Ich bin etwas verunsichert im Datenblatt steht "16-Channel Analog 
Multiplexer/Demultiplexer" und es gibt einmal den I/O und den EN pin. 
Der EN ist laut Datenblatt dazu da alle Kanäle "aus-"zuschalten.
Kann ich jetzt in einen der 16 Channels ein Signal (5V) geben und 
bekomme jeweils ein Digitales Ausgangssignal (4bit)
Ach ja damit der EN anschluss nicht ungewollt aktiviert wird schalte ich 
ihn auf Masse oder?

von Peter D. (peda)


Lesenswert?

Ich empfehle auch einen 74HC595 pro Digit, kostet insgesamt nur 3 
IO-Pins, egal ob 1 oder 100 Digits.

Für die 16 Tasten mach ne 4*4 Matrix und nimm 8 IO-Pins.

Für beides findest Du auch fertige Codebeispiele.


Peter

von Moritz W. (moritz640)


Lesenswert?

Wieso denn nur 3 pins? In dem Tutorial steht man braucht 4 pins..
Das mit der 4*4 Matrix musst du mir nochmal erklären. Soll ich jetzt 
Besipielsweise einen Taster an 2 Pins anschließen und das mit den 
anderen auch machen, sodass jeder Taster immer verschiedene Pins nutzt 
oder wie?
Das wäre auch ne gute idee :D
Aber erstmal will ich wissen wie das jetzt mit meinem 4067 ist ich will 
ja nicht alles wegwerfen müssen nur weil ich zu blöd war das 
"kleingedruckte" zu lesen ;)

von Achim (Gast)


Lesenswert?

Auf der eben von mir verlinkten Seite aus dem Tutorial findest du im 
Abschnitt "Ansteuerung per Software" warum man auch mit 3 Pins auskommen 
kann.

Zu deinem 4067:
Das ist ein Analogschalter, der je nach Eingangssignal auf den Pins A-D 
einen der X.. Pins mit dem Y Pin verbindet. Da dies Analog geschieht 
gibt es an der Stelle keinen festen Ein- oder Ausgang. Es wird nicht 
dekodiert welcher der Taster gedrückt ist. Wenn du den Baustein nutzen 
wolltest müsstest du auf die key Anschlüsse die Nummer der abzufragenden 
Taste legen und würdest deren Zustand dann auf dem Y Anschluss ablesen 
können. Das ist so nicht wirklich sinnvoll.

von Achim (Gast)


Lesenswert?

Wegen der 4x4 Matrix kannst du mal bei Google nach "tastenmatrix" 
suchen. Die ersten paar Ergebnisse sollten die helfen.

Du hast meine Frage nach den Dioden noch nicht beantwortet.

von Moritz W. (moritz640)


Lesenswert?

oke dann ist das schonmal geklärt..
Wie sieht es mit meiner Controllerkarte und dem SPI interface aus..
Ist da soweit alles in ordnung?
Ich habe den ATmega8 schon mal mit Ponyprog ausgelesen. Das ging ganz 
gut nur als ich was schreiben wollte bekam ich die fehlermeldung das er 
den "Atmega8" nicht erreichen konnte... Hmm


Ich werde mir dann bei nächster gelegenheit 5* den 74HC595 bei reichelt 
bestellen..
Brauche ich sonst noch was, was ich iwie vergessen habe?

von Moritz W. (moritz640)


Lesenswert?

Ach ja das mit der Diode:
Also man hat mir als kleines Kind immer beigebracht vor LEDs und 
empfindliche Bauteile eine Diode zu bauen xD
Sollte mal irgendwo etwas falsch herum sein passiert auf diese weise 
nichts so hat jede "Karte" ihren eigenen zusätzlichen schutz...

von Yvonne J. (laserlight)


Lesenswert?

Hallo Moritz,

es gibt viele Eigenbau CPU Projekte. Wenn du lust hast dann schaue dir 
doch mal "mycpu" (einfach unter google eingeben, erster Link) an.

Dein Projekt geht aber eher in Richtung Stecksystem als in Richtung 
"Computer" Eigenbau. Vielleicht hilft dir das Stichwort "E-Blocks" 
weiter.

http://de.wikipedia.org/wiki/E-blocks

Das könnte dein Vorhaben eher treffen und vielleicht findest du auch 
dort noch nützliche Tips und Ideen.

Gruß,
Yve

von Achim (Gast)


Lesenswert?

Bei deinem ISP Interface fehlt zumindest die GND Verbindung. Wenn du 
ernsthaft was mit AVRs machen willst solltest du dir aber besser einen 
vernünftigen Programmer, wie z.B. den AVR ISP mkII zulegen. Diese ganz 
einfach gestrickten Bastellösungen mögen funktionieren, zuverlässig sind 
sie aber nicht. Die Zeit die dabei drauf geht kannst du besser für 
andere Dinge nutzten.

Dioden zum Schutz vor Verpolung machen am Eingang sicher Sinn, aber an 
jeder Karte würde ich sie nicht anbringen. Wenn du eine Karte falsch 
herrum einsteckst werden eh noch mehr Pins an der falschen Stelle 
angeschlossen, ob die Dioden dann helfen ist fraglich. Außerdem hast du 
sie sowohl auf der positiven als auch auf der negativen Seite der 
Versorgungsspannung eingebaut, was später auch zu Problemen führen kann, 
da du z.B. verschiedene GND Potentiale bekommst. Wenn du etwas gegen das 
verkehrte Einsetzten einer Karte tun willst solltest du besser einen 
Stecker nehmen der das mechanisch verhindert.

von Moritz W. (moritz640)


Lesenswert?

Ja danke sehr das Projekt MyCPU ist wirklich interessant und auch 
beeindruckend! Allerdings liegt der Reiz für mich ja darin etwas selbst 
zu entwerfen ;)
Was genau ich da baue und unter welche Kattegorie es fällt ist mir egal, 
für mich ist es ein kleiner primitiver Computer ;D

Über das ISP Interface habe ich auch schon verschiedene Meinungen gehört 
(kann einen ganz schön verunsichern als "Anfänger")
Die Dioden habe ich eigentlich auch nur pro einzelner Karte einmal..
Bei dem Bildschirm halt auch noch 2 Stück (keine 4! Ist noch so im Plan 
drin)
Also wie lang darf mein ISP/SPI?!? Kabel denn sein? Ich fürchte glatt 
das meine 2,5 Meter etwas zu lang sind :-s

Was ich nur nicht verstehe ist, wieso ist das so unzuverlässig? Ich 
meine, entweder es kommt ein Signal an oder halt nicht ?!?
Dieses PonyProg finde ich eh etwas doof, da ich ja eigentlich ein 
Linuxer bin und man da außerdem recht wenig Einstellmöglichkeiten hat ;)

Ich habe in einem anderen Beitrag einen anderen Plan für das ISP 
Interface mit anderen Wiederständen und beschaltungen gesehen. Wieso? 
O.o

von Achim (Gast)


Lesenswert?

Der Parallelport wurde nun mal eigentlich nicht für solche Sachen 
gemacht. Probleme kann es dann z.B. durch das Timing oder die 
Leitungslängen geben. Wenn eins von beiden an der Grenze zwischen 
funktionieren und nicht funktionieren ist können schon kleine Änderungen 
dazuführen das es eben nicht mehr funktioniert. Außerdem kann man durch 
falsche Verkablung auch mal schnell den Parallelport beschädigen. Muss 
du aber selber wissen, es gibt sicher auch genug Leute denen diese 
Lösung gefällt, mit persönlich tut sie es nicht.

Unter Linux gibt es avrdude. Das kann die verschiedensten Programmer 
ansprechen, evtl. auch den den du hast.

von Moritz W. (moritz640)


Lesenswert?

hm oke nene wenn du sagst das das nicht so das optimale ist glaub ich 
dir das mal ;D
Aber wie ist das mit dem umprogrammieren? Ich will den chip nicht immer 
raus nehmen müssen :-/
Ansonsten kann man nicht auch einen programmer bauen?
Ich habe ja dank diesem Stecksystem die Möglichkeit die Pins vom ATmega 
nachträglich noch anzusteuern...
Ich wollte mir eh irgendwann mal bei Pollin das hier kaufen:
http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html

Außerdem, ist es schlimm das ich den Internen Takt benutze? Ich habe mir 
ja bereits folgenden Artikel durchgelesen:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Erg.C3.A4nzende_Hinweise_zur_Taktversorgung_.28kann_.C3.BCbersprungen_werden.29
Ich finde 1MHz eigentlich ausreichend und hatte nicht vor das gute Stück 
bei Extremen Bedingungen(Temperaturen) zu betreiben ;)
Alternativ wenn sich irgendjemand daran stört, ein 8MHz Quarz und zwei 
15pF Kondensatoren sind schnell bestellt ;)

von Achim (Gast)


Lesenswert?

Du brauchst dann einen ISP Steckverbinder. Ist auf der gleichen Seite 
beschrieben, die du wegen dem Takt verlinkt hast. Natürlich gibt es auch 
genügend AVR Programmer zum selber bauen. Viele beinhalten aber schon 
einen AVR und somit hast du ein Henne-Ei-Problem ;) Kenne mich in dem 
Bereich nicht so gut aus, aber ich glaub USBasp soll nicht schlecht 
sein.

Solange du nichts mit deinem AVR machst, was ein genaues Timing benötigt 
(wie z.B. RS232) kannst du den internen Takt gut nutzen. Wenn du 
allerdings eh was bestellst würde ich nicht an dem Quarz sparen, man 
weiß ja nie ob man den nicht doch noch mal braucht.

von Moritz W. (moritz640)


Lesenswert?

Also ich werde im nachhinein noch so eine karte bauen, da ich ja sowieso 
nochmal bei reichelt bestellen wollte kann ich mir die paar teile ja 
auch noch kaufen..
den 74HC595 brauch ich ja noch und außerdem brauch ich noch ein paar 
andere dinge dann passt das ja ganz gut...

Ich habe mir überlegt statt dieser 4x4 Matrix was anderes zu machen:
4 pins werden benutzt und da werden die taster logisch angeschlossen 
Beispielsweise:
Taste1 = PB0
Taste2 = PB1
Taste3 = PB0, PB1
Taste4 = PB2
Taste5 = PB0, PB2
usw.
Wie wäre das?

Den Quarz und die Kondensatoren bestelle ich auch noch!
Jetzt wo ich eh meinen halben Plan umändern muss kann ich die 
kleinigkeit auch noch mit einbauen...
Gibt es da irgendwelche bevorzugten Frequenzen?
ich hätte sonst einfach 8 oder 4 MHz genommen.. und dann Kondensatoren 
habe ich auch schon verschiedenes gesehen..
gibt es da irgendwelche Formeln zum ausrechnen oder standartwerte?
Ich hätte beim 8MHz nen paar 15 pF Kondensator genommen und beim 4MHz 
Quarz 2 22pF Kondensatoren genommen?!?

von ruepel (Gast)


Lesenswert?

Moritz, die CD4056 funktionieren auch mit LED, und zwar hervorragend.
Sie sind zwar laut Dokumentation für LCD gedacht, gehen aber einwandfrei 
auch dafür.
Du brauchst bei 5V Vcc nichtmal Strombegrenzungswiderstände.
Die Strobes von den 4056 solltest Du an eine Leitung vom Atmega 
anschließen, sonst ändern sich die Anzeigen je nach Portzustand und Du 
kannst den Port dann nur für das Display benutzen.
Ich habe vor 20 Jahren einen Receiver gebaut, mit insgesamt 21 von 
diesen CD4056 an ebensovielen 7-Segmentanzeigen (Frequenz, Lautstärke, 
Source etc.). Die ham das klaglos über Jahrzehnte verkraftet, flackerten 
nicht, zeigten keine unterschiedliche Segmentintensität bei "8" oder "1" 
und wurden auch nicht warm etc..
Die 595 sind zwar sinnvoller, aber mit den 4056 geht es auch.

von Turbo T. (turbotoni)


Lesenswert?

Wenn auch andere Zeichen, ausser 0..9 darstellen möchte, sollte man auf 
den einsatz von decodern verzichten.
Um Ports/Pins zu sparen, benutzt man multiplexing, was in
http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige 
beschrieben ist.

MfG Turbotoni

von Achim (Gast)


Lesenswert?

Deine Idee mit den Tastern müsste funktionieren, hat aber 2 Nachteile:
- Du brauchst Taster mit 2 Schließern
- Du kannst nicht unterscheiden ob Taste 1 und 2 zusammen oder Taste 3 
gedrückt ist. Ähnliche Probleme gibt es bei der Tastenmatrix auch, aber 
erst bei min. 3 gleichzeitig gedrückten Tasten.

Bei den Kondensatoren bist du mit 22pF gut bedient. Ist in den meisten 
Fällen nicht so kritisch.

Wenn du schon dabei bist Kondensatoren einzubauen solltest du auch 
Entkopplungskondensatoren an jeden IC setzen. 100nF Keramik parallel zu 
jedem Paar von Versorgungsspannungspins ist da ein Standardwert. Ein 
Elko mit ein paar µF auf jedem Board kann auch nicht schaden.

von MarioT (Gast)


Lesenswert?

Hallo Moritz
Warum müssen es unbedingt 7Segment LEDs sein?
http://www.pollin.de/shop/dt/MTczOTc4OTk-/Bauelemente/Aktive_Bauelemente/Displays/LCD_Modul_TC1604A_01.html
Mit einer LCD hast Du viel mehr möglichkeiten, brauchen auch weniger 
Strom und würden als "PC" Ersatz bestimmt besser aussehen.

von Moritz W. (moritz640)


Lesenswert?

Okey jetzt bin ich etwas erleichtert und gleichzeitig verwirrt..
Wenn die Möglichkeit bestehen würde meine 4056ger zu nutzen dann wäre 
ich sehr Glücklich, denn die haben wenigstens noch ein paar 
"Sonderzeichen" ;)
Wenn ich die Strobe pins an einen pin vom atmega anschließe muss ja noch 
was anderes passieren, aber was?

/Die Strobes von den 4056 solltest Du an eine Leitung vom Atmega
anschließen, sonst ändern sich die Anzeigen je nach Portzustand und Du
kannst den Port dann nur für das Display benutzen./
Ich verstehe nicht wie das gemeint ist, dass ich den port dann nur für 
den display benutzen kann...
Aber was ist mit dem "Display Freq in" soll der auf Vcc oder auf Masse 
gelegt werden oder wie?

Das mit den Tasten ist mir schon klar, aber die Taster die ich genommen 
habe gehen eigentlich so verhältnismäßig schwer das es FAST 
ausgeschlossen ist das man "ausversehen" 2 Tasten gleichzeitig drückt ;)
http://www.pollin.de/shop/t/OTU4OTA5OTk-/Bauelemente/Mechanische_Baulemente/Schalter_Taster/Drucktaster_schalter_Serie_PBS_11x_PBS_12x.html
Außerdem hat das den Vorteil das ich 5 statt 4 Pins vom Controller 
nehmen KÖNNTE und theoretisch schon 31 Tasten hätte ;D

Ach ja das mit den Kondensatoren habe ich sogar gemacht, zwar auf der 
"Grafikkarte" noch nicht, aber auf der Controllercard und der 
Keyboardcard die ich ja jetzt umändern kann...

Das mit dem LCD ist noch ne Nummer zu hoch für mich, denke ich. Ich habe 
mir gerade mal das EINseitige "Datenblatt" von der Anzeige angeguckt und 
bin immernoch so schlau wie vorher...
Außerdem denke ich ist das wesentlich schwerer später zu programmieren 
als meine relativ simpel gestrickte 7-Segment Konstruktion ;)

von MarioT (Gast)


Lesenswert?

Sehe Dir das mal an.
http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD
Gib in der Suche mal "LCD" ein, es gibt so viele Beispiele. Es lohnt 
sich wirklich nicht für Dein Projekt mit 7Segment anzufangen. Es gibt 
ganz sicher schon Code den Du erstmal nur in Dein Projekt reinkopieren 
kannst, bis Du soweit durch die ganze Programmierung durchsiehst.

von Moritz W. (moritz640)


Lesenswert?

Hmmm eigentlich wollte ich bei meinen Siebensegmentanzeigen bleiben..
Gerade jetzt wo ich das mit den Schieberegistern erfahren habe :)
Auf diese Weise kann ich auch nachträglich noch mehrere Anzeigen 
anschließen ohne Pins zu verschwenden und bei 30 cent für ein 
Registebaustein und 45 cent pro Doppelanzeige kann man sich das ja mal 
gönnen ;)
ich denke ich bleibe bei meinen Siebensegmentanzeigen und ich werde dem 
nächst noch ein paar mehr davon bestellen müssen fürchte ich xD
Ich werde heute nochmal meine Schaltpläne umkrempeln und neu machen...

Zum Glück darf ich mein Mainboard und meine Controllereinheit (bis auf 
den Quarz) so lassen... :)

Dann muss ich aber noch die Fusebits wegen der Taktfrequenz ändern oder?
Und wie ist das jetzt mit dem Quarz? Gibt es da irgendwelche Favouriten 
in Sachen Frequenzen?

von quarzy (Gast)


Lesenswert?

Moritz Wenzel schrieb:
> Dann muss ich aber noch die Fusebits wegen der Taktfrequenz ändern oder?
> Und wie ist das jetzt mit dem Quarz? Gibt es da irgendwelche Favouriten
> in Sachen Frequenzen?

Ja, siehe Baudratenquarz. :)

von Moritz W. (moritz640)


Lesenswert?

Ahh ok gut...
Aber ich denke ich nehme dann mal nen 8 MHz Quarz und denn halt 2 22pF 
Kondensatoren ;)
Was hat das mit den Quarzoszilatoren auf sich ist das irgendwie 
"besser"?
Weil in dem Atmega tutorial steht da nicht so viel drüber...

von ruepel (Gast)


Lesenswert?

Hallo Moritz,

habe Deinen Schaltplan nicht angeschaut etc.
Die CD4056 haben den Strobe-Eingang, um in einem internen Latch die 
momentan anliegenden Eingangsdaten (4Bit) zu speichern.

Du legst die 4 Bit auf den Prozessorport, machst einen kurzen Puls auf 
die Strobe Leitung, und danach hält der 4056 die 7-Segmente, während Du 
die 4 Bit vom Port wieder ändern kannst.
Benutzt Du das Strobe nicht, folgt die 7Segment-Anzeige exakt den 
Portzuständen, d.h. die 4 Bit sind nur für eine, einzige 
7-Segmentanzeige verfügbar, wenn Du eine statische Anzeige haben 
möchtest (Normalfall). Bei 4 Anzeigen brauchst Du schon 16 Bit, also 16 
Leitungen bzw. 2 komplette Ports.
Ist Ressourcenverschwendung.

Besser ist es, die 4 Bit vom Prozessorport an alle 4056er anzuschließen. 
Alle 4056er bekommen also die gleichen Eingangsdaten.
Sie werden aber nur dann vom jeweiligen 4056er übernommen (d.h. zur 
7Segmentanzeige weitergeleitet), wenn Du in strobst (einen Puls auf die 
Strobe-Leitung gibst).
Beispiel: Bei 4 7Segmentanzeigen brauchst Du dann 4 Leitungen für die 
Eingangsdaten, und 4 Strobe-Leitungen. Macht also insgesamt nur noch 8 
Leitungen gegenüber 16, die Du beim Nicht-Stroben brauchst.

Noch besser geht es, wenn Du die Strobeleitungen durch einen 
Adressdecoder (74HC138 oder 74HC238) generierst. Die 4 Bit Eingangsdaten 
werden wie vorher an die 4056er angeschlossen.
3 weitere Bit von dem Port schließt Du an den Adressdecoder an. Und zwar 
2 davon an die Eingänge A und B des Decoders, den dritten an einen 
Freigabeeingang. Die restlichen Eingänge des '138 mußt Du auf Masse oder 
Plus legen, damit sie nicht floaten.
Die 2 Eingänge A und B am HC bestimmen jetzt, welchen 4056 Du 
adressieren willst, mit dem 3.Bit am Freigabeeingang machst Du den Puls.

Auf diese Art kannst Du z.B. 8 Anzeigen ansteuern, wenn Du dem '138 auch 
noch ein Bit vom Prozessorport für den Eingang C spendierst.
- 4 Bit Eingangsdaten für die 4056
- 3 Bit Eingangsdaten für den '138
- 1 Bit Strobe für '138, dessen 8 Ausgänge dann wiederum das Strobe für 
die 8 4056er liefern.

D.h., Du kannst mit 8 Leitungen (also einem einzigen Port), 8 
7Segmentanzeigen steuern.

Polaritäten beim 4056 weiß ich nicht mehr, Display Freq muß entweder auf 
Plus oder Masse, ja. Du brauchst da kein PWM-Signal oder so. Schau ins 
Datenblatt oder probiers einfach mal.
Zusammen mit dem '138/'238 klingt das schwierig, zählt aber noch immer 
zum klassischen, einfachen Aufbau und man lernt was dabei.

von Moritz W. (moritz640)


Angehängte Dateien:

Lesenswert?

Hab mitlerweile meine Displaykarte schon für die 74HC595 umgelötet. 
Hänge mal 3 Bilder und den Schaltplan an...

von ruepel (Gast)


Lesenswert?

Pfft. Dann isses jetzt halt lahm und seriell ;)

Passt scho. Für Pin10 am 595 willst Du wirklich eine Portleitung 
verschwenden? Hätte man auch einfach an + legen können, wenn man faul 
ist.

von mecker (Gast)


Lesenswert?

Wenn schon Fotos dann bitte scharfe, ansonsten ist das sinnlos 
vergeudeter Speicherplatz + Traffic.

von Moritz W. (moritz640)


Lesenswert?

haha ja lahm und seriell :D
Najaa aber jetzt kann man sich nochmal theoretisch noch nen 
gröööööößeren Display (5*10 Anzeigen) bauen und extern dranklemmen ohne 
alles über Board zu werfen und neu anzufangen ;D

Das mit den Bildern tut mir ja leid ich hab auch schon versucht ruhig zu 
sein aber mehr gibt meine minderwertige CMOS Handykamera nicht her tut 
mir ja leid, wenn du magst kannst du mir ja ne anständige finanzieren ;)

von Moritz W. (moritz640)


Angehängte Dateien:

Lesenswert?

was haltet ihr hiervon für die tastatur?
ich bin nicht sicher ob das so geht...

gruß Moritz

von Karl H. (kbuchegg)


Lesenswert?

Moritz Wenzel schrieb:
> was haltet ihr hiervon für die tastatur?

ziemlich viele Dioden dafür, dass man noch nicht mal 2 gleichzeitig 
gedrückte Tasten erkennen kann

von Moritz W. (moritz640)


Lesenswert?

ja ohne dioden habe ich das problem das ich mir die eingänge alle 
kurschließen würde und das garnicht gehen würde...
auf diese weise verhindere ich doch EIGENTLICH diesen 
"Kurzschlusseffekt" oder?
Das ich keine 2 tasten gleichzeitig drücken sollte/darf ist jetzt mein 
kleinstes problem ;)
Sonst bräuchte ich ja 4 polige taster!!??

Würde das denn gehen?

von ruepel (Gast)


Lesenswert?

Wenn Du schon 595er für Output einsetzt, wäre es konsequent, auch 165er 
für Input zu nehmen. Pro 165er kannst Du 8 Tasten einlesen, ganz ohne 
Dioden.
Schau ihn Dir mal an.

von Purzel H. (hacky)


Lesenswert?

Was ist der Vorteil der 7 segment anzeigen verglichen mit einem 2x16 LCD 
? Abgesehen davon, dass man beim 7-segment viel mehr Strom runterlassen 
kann ?

von Moritz W. (moritz640)


Lesenswert?

Kann ich gerne machen, aber erstmal würde ich jetzt gerne wissen ob das 
geht was ich da oben gepostet habe!
Das mit den 165ern hab ich mir auch schon überlegt aber trotzdem möchte 
ich erst einmal wissen ob das mit den dioden nicht auch geht ;)

Das ich mit den 7-Segmentanzeigen eine theoretisch unendliche Matrix 
bauen kann..
Bei der LCD anzeige bin ich auf die 32(2*16) Stellen beschränkt..

Zumal ich finde das die viel cooler aussehen und besser abzulesen sind 
finde ich persönlich ;)

von ruepel (Gast)


Lesenswert?

jaja, das mit den Dioden sollte schon so gehen.

von Moritz W. (moritz640)


Angehängte Dateien:

Lesenswert?

Oke gut :D

Ich habe jetzt mal was gefunden zum Thema ISP-Programmierung..
Weil das mit den paar Wiederständen ja nicht so auf Begeisterung trift 
und das sicherlich auch seine Gründe hat hab ich bei Ulrich Radig 
folgendes Gefunden (Siehe Schaltplan):
http://www.ulrichradig.de/home/index.php/avr/base_kit_avr

Wenn ich das richtig sehe dient der 74HCT244 nur dazu, das Signal vom 
Parallelport auf 5V zu bringen/verstärken und das "I/O-Gewackel" zu 
verhindern..

Findet ihr das besser?

von Lochrasterfan (Gast)


Lesenswert?

Ja, die Schaltung funktioniert gut ... ich habe meinen ersten Adapter 
auch nach diesem Schaltplan gebaut und es hat immer prima funktioniert.
Ich hab' sogar einen LS verwenden können, einen HCT hatte ich nicht da. 
Zumindest an den parallelen Schnittstellen, auf die ich damals Zugriff 
hatte, ging das.

von Moritz W. (moritz640)


Lesenswert?

hahaha auch gut ich hab nämlich auch keinen HCT da sondern nur den LS ;D
Aber laut datenblatt konnte ich da keine Großen unterschiede finden..
Also muss das gehen ;)
Ist ja jetzt immernoch keine so komplizierte schaltung.. Kommt halt nur 
nen IC dazwischen...

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.