Krautkanal.com

Veröffentlicht am 2017-02-03 08:34:06 in /t/

/t/ 31063: Rechenwerk aus SMD Bauteilen

leonfedotov Avatar
leonfedotov:#31063

Bernd baut gerade ein Rechenwerk aus SMD-Bauteilen die er mal Bei Pollin in so einem Set mitbekommen hat. Dieser Faden soll dem Informationsaustausch dienen. Zum einen werde ich die Schritte protokollieren und zum anderen möchte ich hier Fragen stellen damit ich keinen dummen Fehler mache. Bernd hat alles was es über Digitaltechnik zu wissen gibt sich selbst beigebracht, er hat nur eine Ausbildung zum Elektroinstallateur und da wurden nur die Grundlagen der Elektronik besprochen. Alles andere musste ich mir selber beibringen.
Ich habe schon sehr lange vor ein Rechenwerk mit Speicher zu bauen. Ein 4bit Rechenwerk aus Transisitoren und NANDs hab ich schon einmal fertiggestellt, das ist aber schon recht lange her. Jetzt bin ich vor Kurzem über diese SMD-Platinen gestolpert und in China fündig geworden. Die kosten da nur wenige Cent also hab ich mal 80 Platinen für 28pol SMD bestellt damit kann ich eine grosse Anzahl von Chips bedienen. In diesem Fall zwei 14 pol Chips auf einem Adapter.
Hier der Anfang des 4bit Carry-Ripple-addierers.
Wenn ich das Ding fertig aheb möchte ich die Parallele Ausgabe mit einem Demultiplexer in eine serielle umsetzen. Erst mal bis dahin, von dort gehts dann zu einem Speicher den ich aus Kondensatoren bauen möchte, 5Kondensatoren speichern die 4bit plus den Übertrag.
Aber erst mal muss ich das Rechenwerk fertig bekommen.
Das ist der Plan, gibts da irgendwelche Fehler die ich übersehen habe?

BrianPurkiss Avatar
BrianPurkiss:#31064

Kannst du nicht vhdl oder gewürz fragen?

itskawsar Avatar
itskawsar:#31065

>>31064
dieses. Implementier das Teil doch in verilog/vhdl und simulier es.
Wenn alle Funktioniert kannst du es immer noch manuell bauen oder in einen chip brennen.

damenleeturks Avatar
damenleeturks:#31070

>>31063
Schade das der Faden hier nicht zündet. Ist z.Zt. immer der gleiche scheiss. Nur auf /b passiert wirklich was . Leider entgleist der Faden innerhalb kürzester Zeit.

sindresorhus Avatar
sindresorhus:#31104

>>31070
Ja schade
Ich werde den Faden mal etwas anschubsen weil ich auch selber in den letzten paar Tagen echt unter Druck stand und Dinge fertigmachen musste.

Jetzt habe ich wieder Zeit und nach dem Kauf von Stiftleisten mach ich den Komputer jetzt doch wieder auf Steckbretttechnik weil das verlöten einfach zu lange dauerte.

Warum SMD war auch mal eine Frage, weil ich eine Kiste voll von NANDs habe über 80 dieser Bausteine und rund 40 XOR ausserdem x-verschiedenen andere Logikbauteile. Das Problem war halt das auflöten oder ins Steckbrett bringen bis ich diese kleinen Platinen hatte. Mit 40 Platinen kann ich 80 dieser Logikchips verbauen. Da geht also noch was.

albertodebo Avatar
albertodebo:#31105

>>31104
Ich bekomme heute ein Hörnchen, laufend dengelt das Telefon andauernd wird man gestört. Mehr hab ich heute nicht geschafft, erbärmlich. Zum Glück ist /t/ gemütlich und langsam

fluidbrush Avatar
fluidbrush:#31106

>>31105
Sieht echt gut aus Bernd, ich freu mich auf erste Ergebnisse, lass dich nicht unterkriegen!
Ich plane auch gerade meinen ersten Microprozessor, aber in Verilog.
Wenn alles laeuft, soll es einen VRAM enthalten der auf einen VGA Monitor gemappt wird.

BrianPurkiss Avatar
BrianPurkiss:#31108

>>31106
In ner simulierten Umgebung macht das keinen Spass. Ich hab nen zwei Bit-Rechner mal mit Transistoren gebaut. Ist schon lange her. Da hatte ich auch ein riesiges Konvolut an NPNs quasi kostenlos bekommen, das teuerste waren dann die Lochraster Europlatinen. 100 NPNs kosten heutzutage was? 3-4€? Danach kann man löten. Zum SMD-löten lernen hab ich mir auch Lötlernplatinen aus China besorgt, kosten dort auch nur ein paar Cent.
Aber was soll ich sagen, 2006 hatte ich deutlich mehr Zeit als gerade. Da sass ich jeden Abend von 18:00-22:00 nur in meiner Bude rum, das Internet war schnell aber der Traffic auf 1GB pro Monat begrenzt. Der Conrad hingegen war nur ein paar Minuten per U-Bahn entfernt. Also hab ich erst 1bit und dann 2 Bit Rechner gebaut, beim dritten Bit bin ich in der Mitte hängegeblieben. Hab ein paar Logic ICs- geschenkt bekommen und versucht damit was kühles zu bauen, aber da war dann auch das JAhr um und ich hatte wieder wenig Zeit. Der 2bit-Rechner und andere Teile die ich gebaut hatte hab ich damals an der Schule gelassen wo ich meine Schulung gemacht hatte. Deswegen kann ich heute nur noch die Teile zeigen die unfertig sind. Hier sieht man das Ein-Ausgabemodul und einen Teil der Logic Boards, der Fehler war dass ich da offenen Ports hatte. Wusste ich damals noch nicht dass man alle unbeschalteten Ein und Ausgänge über Pull-Down Widerstände nach GND geführt werden müssen. Deswegen ist das Board da Matsch und kann nicht funktionieren.

joeymurdah Avatar
joeymurdah:#31111

>Wusste ich damals noch nicht dass man alle unbeschalteten Ein und Ausgänge über Pull-Down Widerstände nach GND geführt werden müssen. Deswegen ist das Board da Matsch und kann nicht funktionieren.
Na, es ist jetzt keine Raketenwissenschaft, ein paar Pull-Down-Widerstände anzulöten. Schreib' deine Platine nicht vorzeitig ab.

mattsapii Avatar
mattsapii:#31113

>>31108
>Simuliert
Ich brenn das in einen Zynq 7010 FPGA mit R2R VGA Ausgang.
Fuer mich reicht das um Spass zu haben, ich habe mehr Lust mich mit Design zu beschaeftigen und es schnell zu aendern als staendig kalte Loetstellen zu suchen.

Habe jetzt das Instructionset fertig.
Jetzt wird das implementiert und dann bau ich einen Wrapper um den RAM, damit ich MMIO haben kann :3
Figg ja!

Bernd hatte lange keinen solchen Spass mehr.

ninjad3m0 Avatar
ninjad3m0:#31114

>>31113
FPGAs sind komplett an mir vorbeigegangen. Habs Gestern bis Bit3 geschafft. Zwischendurch fing der Kopf immer an zu qualmen weil ich Bit 2 nochmal losnehmen musste. Gut dass ich jedes Bit mit derselben Farbe verdrahtet habe

sindresorhus Avatar
sindresorhus:#31115

>>31114
Kann dir aus eigener leidlicher Erfahrung sagen, das du dir keinen Gefallen tust. Nicht nur mit steigender Komplexität, auch wenn dir mal eins dieser flexiblen Jumper-Wire rausrutscht bist du knallhart gefickt. Es mag anfangs leichter erscheinen, diese flexiblen Litzen zu nehmen. Aber nimm lieber starre (Bild relatiert) und knick die auch um 90° wo nötig. Leg die Leitungen so, das alles komplett ersichtlich ist was wohin führt. Nebeneffekt der besseren übersicht ist auch, das die starren Leitungen besser halten und auch kontaktieren.

Ansonsten schönes Projekt, verfolge aufmerksam. Haust du auch noch ein paar Schaltpläne von dem Aufbau raus und weitere Bilder? Würde mich freuen.

solid_color Avatar
solid_color:#31116

>>31114
Ich glaube ich habs geschafft, einen Fehler hab ich gefunden. Und die LEDs sind falsch rum, Übertrag ist rechts der muss nach links.
Wenn ich alle 4bit auf A schalte Bild1
Wenn ich auf B ein Bit zuschalte Bild2
Stromaufnahme Bild 3
Problem, wenn man leicht über die Kabel streicht fangen die LEDs an wie wild durcheinander zu blinken. Aber Funktion bewiesen. Jetzt könnte ich eine Platine entwerfen und die Dinger einlöten. Oder Streifenraster. Wenns verlötet ist blinks vielleicht nicht mehr.

jjshaw14 Avatar
jjshaw14:#31117

>>31115
Zu spät, aber dass da Wacklige drin sind, damit hast du Recht behalten. Funktion ist da, muss das jetzt erst mal richtig überprüfen, die Wackligen rausmachen und schauen dass ich wirklich keinen Fehler drin habe.
Danach wird nochmal gemacht auf Streifenraster denke ich. Ich wollte zuerst ja löten aber das war zu fummelig. Streifenraster muss ich bestellen. Aber schön dass es anscheinend auf Anhieb geklappt hat.

Schaltplan für den Volladierer mit zwei Xor und drei NAND ist oben.
Hier jedes Bit einzeln, der Verdrahtungsplan.

canapud Avatar
canapud:#31118

>>31114
>FPGAs sind komplett an mir vorbeigegangen
Schau Sie dir mal an Bernd, wirklich!
Sie sind das naechste was du an in Silizium gebrannter Logik bekommen kannst.
Und auch noch rekonfigurierbar :3 Sehr empfehlenswert.

zacsnider Avatar
zacsnider:#31119

>>31118
Ich hab das bisher immer falsch verstanden, dachte das wären irgendwelche Logik-Simulatoren, dabei programmiert man die Logikbausteine und der Interpreter "verdrahtet" diese universellen Logikbausteine so dass sie die Logik nachbauen. Also ein universeller Baustein der abhängig von der Programmierung quasi alles sein kann. Ist spannend, aber womit anfangen?

bassamology Avatar
bassamology:#31120

>>31118
>Sie sind das naechste was du an in Silizium gebrannter Logik bekommen kannst.
Naja, Europractice macht Chipdesign auch für Bernd möglich wenn er ein bisschen Geld (niedrig vierstellig) in die Hand nimmt. Problem sind halt die Tools, oder ob man sich da Open Source anvertrauen will. Ansonsten halt in der Uni einen Chipdesignkurs besuchen, da kann man dann meist auch nen eigenen Chip machen.
t. Pro der gerade wegen eines invertierten Reset-Signals 100kEUR für den Arbeitgeber aus dem Fenster geschmissen hat

aluisio_azevedo Avatar
aluisio_azevedo:#31122

>>31120
>vierstellig
Bernd lebt nur von seiner BU-Rente und etwas Arbeit auf Steuerkarte um Sozialversicherungen zu bescheissen. Das ist nicht drin. Wenns teurer ist als ein Raspberry kann ich es mir derzeit nicht leisten.

hammedk Avatar
hammedk:#31123

>>31119
Programmierbare Logik (also PLD und CPLD) hat man früher mit Universalgattern gemacht, die man zwischen UND und ODER umschalten konnte und deren Ausgang man entweder auf einen Ausgang oder auf ein weiteres Universalgatter legen konnte. Die Umschaltereingänge waren mit einem (E)PROM verbunden, daher programmierbar (und direkt nach dem Einschalten mit Funktion).

Irgendwann ist den Leuten aufgefallen, dass diese Gatter doof sind, wenn man eine andere Funktion braucht. Also hat man die Universalgatter durch kleine Tabellen (LUTs) ersetzt, deren Funktion in einem RAM (aus Flipflops) steht. Das sind dann FPGAs. Die LUTs kann man als AND programmieren, aber eben auch mit einer beliebig seltsamen Funktion füllen. Da die Funktion in RAM steht, müssen FPGAs nach dem Einschalten erst konfiguriert werden und sind nicht sofort einsatzbereit.

kamal_chaneman Avatar
kamal_chaneman:#31124

>>31123
>Programmierbare Logik (also PLD und CPLD) hat man früher mit Universalgattern gemacht, die man zwischen UND und ODER umschalten konnte
Nicht sicher wovon zum Fick du sprichst. Vermutlich meinst du PAL und PLA bzw. CPLD dann mit Rückkopplung. Da sind aber eben keine umschaltbaren Gatter drin sondern erst ein Und-Array gefolgt von einem Oder-Array und man kann die Verbindungen dazwischen programmieren.
>Die Umschaltereingänge waren mit einem (E)PROM verbunden, daher programmierbar (und direkt nach dem Einschalten mit Funktion).
Die Dinger setzen Fuses oder Antifuses ein, das funktioniert komplett anders als EPROMs und ist ausserdem direkt in die Schaltung integriert.

>Da die Funktion in RAM steht, müssen FPGAs nach dem Einschalten erst konfiguriert werden und sind nicht sofort einsatzbereit.
Flash-FPGAs oder welche mit Antifuses, kennste?

fffabs Avatar
fffabs:#31128

>>31124
>>Da die Funktion in RAM steht, müssen FPGAs nach dem Einschalten erst konfiguriert werden und sind nicht sofort einsatzbereit.
>Flash-FPGAs oder welche mit Antifuses, kennste?

(a) ja, gibt's, aber eher unüblich (kein X&A)
(b) mit flash: müssen trotzdem beim start konfiguriert werden, tun das aber selbst; dauert trotzdem

woodydotmx Avatar
woodydotmx:#31132

>>31128
>mit flash: müssen trotzdem beim start konfiguriert werden, tun das aber selbst; dauert trotzdem
Aha. Microsemi, der drittgroesste FPGA-Hersteller, hat da was. Alle neueren Flash-Basierten FPGAs von denen sind Instant-on.

leonfedotov Avatar
leonfedotov:#31136

tsja, ich muss wohl einen fatalen Verdrahtungsfehler gemacht haben, der zweite NAND-Chip von oben wurde brutal heiss, ich darf dann nochmal alles von vorne verdrahten und den Chip tauschen.

chris_frees Avatar
chris_frees:#31142

>>31136
Hast du noch mehr Bilder? Wurde der Fehler gefunden? Mich interessiert ja, ob OP wirklich falsch verdrahtet hat oder ob einfach nur zu viel Strom geflossen ist, sprich irgendwelche Widerstände vergessen wurden. /r/ auch ein webM von der Schaltung in Aktion! (Wenn es soweit ist)

pakhandrin Avatar
pakhandrin:#31171

>>31142
Ja ich habe den Fehler gefunden. Aber nicht beseitigt. Ich habe die Pullup Widerstände wohl falsch gesetzt. Ausserdem verhalten sich die 74ACT00 nicht so wie ich es erwartet hätte. Unterinenader hatten die verschiedenen Logic-Chips (74ACT und 74HC) keine Probleme. Doch wenn man die Datenblätter genau liest gibts Probleme mit den Widerständen und der genauen Ansteuerung der Eingänge. Ich bin jetzt gerade dabei das Ganze noch einmal Schritt für Schritt aufzubauen und die genauen Widerstände zu bestimmen.

Ehrlich gesagt habe ich mir das viel einfacher vorgestellt, andererseits lebe ich für die Fehlersuche und ich habe wieder so viel gelernt

dwardt Avatar
dwardt:#31172

Ich habe ausserdem festgestellt dass die 74ACT00 nur mit dieser Beschaltung klarkommen.
Alle Eingänge 0 = alle LEDS=1
Eingang 1+2 =1 LED1=0 alle anderen Eingänge=0 Alle anderen LEDs=1
Bild1= funktionierende Beschaltung der Pullup Widerstände Bild2 nicht funktionierende Beschaltung. Wenn der Schalter oben ist ist er logisch 1 wenn er nach unten gedrückt wird ist er geschlossen und logisch 0.
Ich hab beim letzten Mal den Fehler gemacht dass ich die 10k Widerstände vor GND gesetzt hatte und somit das 0-Signal nicht eindeutig war. Die HCT hatten da kein Problem mit die ACT aber schon.
Auch scheinen es die ACT zu mögen wenn die beim Einschalten logisch 1 sind.
Auch hatte ich Wackelkontakte drin, habe eins der Steckbretter durch ein neues ersetzt weil das alte Wackelkontakte produzierte. Auf so einen Kack muss man erst mal kommen.
Bild4 Testverschaltung der ACT

dmackerman Avatar
dmackerman:#31173

>>31128
OK, der Scheiss ist mir zu teuer und zu kompliziert. FPGAs sind dann wohl nix für mich.

leandrovaranda Avatar
leandrovaranda:#31174

>>31172
Wahrheitstabelle Xor
A B Y = A ⊻ B
0 0 0
0 1 1
1 0 1
1 1 0

Beschaltung auch hier unproblematisch. Ich muss mich halt dran gewöhnen dass die Eingänge negiert werden müssen, also auf dem Schalter 1 = logisch0 auf dem Schalter 0 = logisch 1 Das war der größte Fehler

Hier hab ich den HC86 bechaltet und alles ist gut
Bild1= A1=1 Schalter=OFF A2=0Schalter=ON B1=1Schalter=OFF B2=0 Schalter=ON E1=1 B1=1 Alle anderen Eingänge wurden auf logisch 0 gesetzt dementsprechend ist Ausgang 3 und 4 auch 0
Bild 2 Alle Ausgänge=0 da A1+A2=1 B1+B2=1 und alle anderne Eingänge=0
Funktion OK alle Chips nochmal so getestet. Jetzt kann ich alles neu aufbauen

karlkanall Avatar
karlkanall:#31175

>>31174
Alle Chips getestet, war tatsächlich ein faules Ei dabei.
Jetzt mach ich alles neu. Aber nicht mehr heute

Chakintosh Avatar
Chakintosh:#31176

>>31173
>teuer und kompliziert
Kompliziert vielleicht schon, weil man sich an die Funktionsweise und die Entwicklungstools gewöhnen muss - teuer aber keinesfalls.
https://www.olimex.com/Products/FPGA/iCE40/
http://hackaday.com/2015/10/18/fpgas-for-the-raspberry-pi/

sava2500 Avatar
sava2500:#31178

>>31176
Bisher sah ich nur 100€ Typen. Was soll ich als Anfänger nehmen? Was mit niedrigem Frustrationspotential und was billig ist? Ich werde mir das dann mal ansehen

clementc Avatar
clementc:#31187

>>31178
Das ist eine Glaubensfrage, wie wenn du auf /prog/ fragst mit welcher Programmiersprache du anfangen sollst.
Jeder Hersteller hat Boards fuer unterschiedliche Zielgruppen.
Guck selber mal bei den Herstellern.

Scheint auf den ersten Blick unschlagbar: http://kamami.com/boards/561438-maximator-promo-with-expander-shield-and-kamami-usb-blaster.html

http://store.digilentinc.com/cmod-s6-breadboardable-spartan-6-fpga-module/

https://www.altera.com/solutions/partners/partner-profile/terasic-inc-/board/de0-cv-board.html

Oder genanntes ice40. Such mal.

fatihturan Avatar
fatihturan:#31194

>>31187
Ich bin raus. Weisst du wie lange ich mich beschäftigt hatte mit der Frage Pic oder Atmel bis ich dann auf den Arduino stiess der miralles ermöglichte was ich brauchte.
Ich habe nicht vor diese Odysee noch einmal mit über 9000 verschiedenen Boards die alle teurer als ein Raspberry sind durchzustehen. Ich habe hier eine Schublade voller Atmels und Pics die ich alle irgendwie aber nie richtig programmieren konnte weil ich die falsche IDE/Webseite/Handbuch hatte.
Nachdem ich alle eure Posts über FPGAs gelesen habe bin ich zu der Entscheidung gekommen: Ich lasse das erst einmal aus.

Kommen wir zurück zu meiner Bastelei. Ich bin nicht einen Schritt weitergekommen weil ich mich hab ablenken lassen und Informationen über FPGAs gelesen wo ich eigentlich einen Computer bauen wollte.

andrewofficer Avatar
andrewofficer:#31236

>irgendwelche Fehler die ich übersehen habe?