Autor Thema: [erledigt] Komisches Problem ...  (Gelesen 82005 mal)

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #100 am: 27. November 2011, 13:48 »
Hi,

Danke :) Bis ich aber Platinen in Mainboardgröße erstellen kann muss ich erstmal Eagle kaufen ... oder ein anderes Programm verwenden

Mit dem Taster hab ich mich verlesen - war ja doch schon etwas spät

Pin 20 hab ich doch auf VCC geschaltet  :?, Pin 21 dafür auf nix

Die Beschriftung hab ich jetzt invertiert, sieht tatsächlich besser aus :)

Wie mach ich aus deinem vorläufigen OK ein endgültiges? ;)

Edit: Gerade erst deinen anderen Beitrag wahrgenommen (vor meiner letzten Antwort)
Ein sanftes Anlaufen für den Motor kann ich ja einbauen - das ist ja Softwareseitig ziemlich schnell gelöst.

Der Kondensator verkraftet einen Ripple-Strom von 290mA - also zu wenig.
Allerdings hab ich noch einen 2ten hier, der leider ziemlich riesig ist. Leider enthält das Datenblatt keine Seiten ... Meldung von Evince, Gimp zeigt auch nix >.< Vielleicht kannst du es mal versuchen: Datenblatt

Tippfehler passieren an einem Handy mit Touchscreen nunmal schneller - deswegen wollte ich mich damit quasi entschuldigen und die Schuld auf mein Handy schieben ;)

Hab gerade nochmal das Layout geupdated - hatte vergessen dass ich ja die Hintergrundbeleuchtung abschaltbar machen will :D Kann jetzt über Software gemacht werden.

Grüße,
LittleFox
« Letzte Änderung: 27. November 2011, 21:02 von littlefox »

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #101 am: 01. December 2011, 14:06 »
Hi,

da es scheinbar keine weiteren Bedenken von erik gibt und sich scheinbar auch nieman anders dazu äußern möchte gebe ich die Platine am Samstag in Auftrag. Schließlich soll sie ja noch rechtzeitig da sein um unter den Baum zu kommn ;)
Wenn es doch noch bedenken von irgendjemanden gibt, bitte ich euch diese bis dahin zu schreiben - wenn es erst danach kommt ist auch nicht schlimm, dann kan ich zumindestens das Layout korrigieren  damit eventuelle Nachbauer eine funktionierende Version bekommen :)

Grüße,
LittleFox

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #102 am: 01. December 2011, 21:51 »
Hallo,


zuerst muss ich mich für mein langes Delay entschuldigen, Bitte werte das nicht als Desinteresse o.ä., mein privater Stresspegel ist diese Woche massiv noch oben gegangen (zur Ursache dafür muss ich doch hier sicherlich nix schreiben).


Deine Platine ist jetzt im wesentlichen in Ordnung, ich sehe jedenfalls keinen Grund das sie nicht funktionieren sollte, die Punkte die ich noch habe sind entweder von sekundärer Wichtigkeit oder kosmetischer Natur.

  • Zum Schutz des AVR gegen zu großer Ströme oder Verpohlung würde ich noch empfehlen in die 3 Steuerleitungen zwischen dem AVR und dem Motor-Treiber-IC jeweils 2,2kOhm rein zu packen (bei den beiden Richtungsleitungen können es auch gerne ein paar Ohm mehr sein, z.B. 4,7kOhm, da die eh nicht schnell schalten aber wenn Du von den 2,2kOhm-Widerständen genug in der Kramkiste hast dann gönne dem AVR ruhig noch die 3 Stück).
  • Wenn Du den Schaltplan wirklich veröffentlichen möchtest solltest Du auf jeden Fall noch für Vcc und GND die passenden Symbole einbauen und auch GND immer unterhalb von Vcc anordnen. Gerade von der Kosmetik könnte die Displayversorgung oder Deine 4 externen Lichter noch etwas Feinschliff vertragen.
  • Am MAX232 ist T2IN auf GND geklemmt, da der MAX232 dort sicher einen internen Pull-Up hat würde ich dieses Pin entweder offen lassen (was aber auch nicht so toll ist) oder es besser auf Vcc klemmen, das entspricht einfach dem Ruhe-Pegel der RS232-Leitung auf TTL-Ebene und dürfte den geringsten Stromverbrauch verursachen (auf der Platine ist es doch egal an welche der beiden Planes das Pin angeschlossen wird).
  • Auf der Oberseite der Platine sind noch immer alle 5 Stecker auf der rechten Seite mit einer Vcc-Leitung miteinander verbunden, da Du ja auf der Unterseite wieder einen durchgehenden Vcc-Ring hast ist das unnötig. Zumindest den Programmierstecker JP7 (über dessen Vcc-Anschlus doch bestimmt keine nennenswerten Ströme fließen) kannst Du das lassen (zerschneidet nur unnötig die GND-Plane die der Motor-Treiber-IC doch als Kühlfläche haben will). Die 4 Lichtanschlüsse sind nur ungleichmäßig gut auf der Unterseite mit Vcc verbunden so das Du die extra Vcc-Leitung dort durchaus lassen kannst.
  • Am AVR ist das Pin 22 minimal suboptimal angebunden. Ich würde auf der Oberseite von den 5 Datenleitungen zum Display die 2 rechten davon etwas weiter nach Rechts schieben so das dazwischen (zwischen D6 und D7) ein breiterer GND-Steg bis zum AVR (und dessen Pin 22) entsteht.
  • Ein klein wenig bin ich ja doch darüber enttäuscht das Du für die Beschriftung der Platine den einfacheren Weg gegangen bist. Vielleicht wäre es gar nicht so uncool wenn die Beschriftung doch als Positiv mit Umrandung gebaut wird (dann natürlich anständig), vor allem wäre dieses Detail dann auch wieder zur Anschlussbeschriftung (+/-) einheitlich.
  • Das mit dem Haupt-Stütz-Elko solltest Du auf jeden Fall noch mal überdenken, so teuer ist so ein Elko nicht das man diesen nicht auch einfach passend kaufen kann. Die Motor-Steuerung wird wegen dem PWM mit Sicherheit einiges an Ripple-Strom verursachen (da wird auch ein Sanftanlauf nicht so arg viel dran ändern) und wenn Du nicht möchtest das der Elko sich deswegen von innen aufheizt und damit noch schneller altert dann solltest Du da lieber ein passendes Exemplar benutzen. Somit hast Du länger Spaß an Deiner Platine und der Akku dürfte das Spiel auch etwas länger durchhalten (Akkus sind wimre nicht so ganz für starke Ripple-Ströme geeignet). Ein Sanftanlauf ist natürlich trotzdem von Vorteil, auch fürs Fahrverhalten (dafür wäre zwar eine Antischlupfregelung noch besser aber wir wollen es jetzt mal nicht übertreiben, schließlich müssen ja noch ein paar Features für Version 2 von Deinem Projekt übrig bleiben).

Wenn Du das alles gut erledigt hast dann gibt es von mir auf jeden Fall ein endgültiges Okay! ;)
Schade das sonst keiner drüber geschaut hat, vielleicht solltest Du das doch mal noch bei µC.net einstellen, da gibt es auf jeden Fall noch einige geübte Augen mehr.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #103 am: 01. December 2011, 22:03 »
Hi,

für dein Delay musst du dich nicht entschuldigen, RL geht nunmal vor ;) Aber Danke das du doch noch Zeit gefunden hast das Layout nochmal zu überfliegen :)

Die Punkte werde ich morgen abarbeiten - freie Tage sind etwas schönes, auch wenn man freiwillig trotzdem auf Arbeit geht :D

Grüße,
LittleFox

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #104 am: 02. December 2011, 01:36 »
Schade das sonst keiner drüber geschaut hat, vielleicht solltest Du das doch mal noch bei µC.net einstellen, da gibt es auf jeden Fall noch einige geübte Augen mehr.
Ich kann Schaltpläne und Datenblätter einigermaßen lesen, von Platinendesign habe ich keine Ahnung. Du weißt, wie ich sowas aufbaue...

Gruß,
Svenska

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #105 am: 03. December 2011, 01:24 »
Hi,

hab gerade die Punkte bearbeitet:
 - erledigt
 - erledigt
 - erledigt
 - erledigt
 - erledigt
 - erledigt - auch wenn es nicht nur "minimal Größer" ist ;) hab keine Einstellung für den Zeichenabstand genommen und Platz ist ja genug da
 - hab jetzt 3 Elkos mit je 535mA Ripple-Strom eingeplant - das müsste ja reichen. Der Motor zieht im allerschlimsten Fall 1A

Schaltplan und Layout habe ich geupdated. Falls es noch etwas zu meckern gibt, bitte vor 16 Uhr morgen - wenn Zeit ist. Wenn keine Zeit ist wäre ein Hinweis wie "Hab dann noch etwas" ganz nett :) Ansonsten gibt es eben Version 1.1 :D

Grüße,
LittleFox

Grüße,
LittleFox

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #106 am: 03. December 2011, 12:59 »
Hallo,


also zu meckern hab ich nix mehr, wenn ich Dir für den Schaltplan und das Platinenlayout eine Schulnote geben sollte dann wäre das eine 1,4 (für ne richtige 1,0 fehlt meiner persönlichen Meinung nach noch ein klein wenig Perfektionismus (was z.B. die Anordnung der Bauteilbeschriftung im Schaltplan angeht) aber es ist trotzdem eine anständige 1). ;)

Das mit den 3 Elkos ist sicher die richtige Entscheidung, gerade der Anlaufstrom eines typischen Elektromotors ist nicht zu unterschätzen (der kann für wenige Millisekunden bestimmt auch die 1A etwas übersteigen), so das ich die 69 Cent als gute Investition betrachte.

In das Enable-Signal für den Motor-Treiber hast Du noch einen Pull-Down (R9 mit 10kOhm) eingefügt, das ist sicher sinnvoll damit der Motor zuverlässig aus ist solange der AVR noch im Reset hängt, aber ich persönlich hätte den hinter den Serienwiderstand platziert und mit eher 20...50kOhm dimensioniert (oder hat der AVR an seinen Pins per Default intern einen Pull-Up? selbst wenn dann sollte der Pull-Down erst recht hinter den Serienwiderstand). Hier solltest Du vielleicht noch mal schauen was im Datenblatt des Motor-Treiber-ICs steht ob da nicht eventuell schon ein Pull-Down fest eingebaut ist und wenn nicht was aus diesem Eingang maximal für ein Leckstrom raus kommt (diesen Leckstrom muss der Pull-Down zuverlässig nach GND abführen können und es darf über diesen Pull-Down bei diesem Strom nicht mehr Spannung abfallen als der IC als Low-Pegel erkennt, also typisch max. 0,5V, wenn aus dem Input maximal 10µA Leckstrom kommen (und das ist schon großzügig) dann ergeben sich über 50kOhm gerade die 0,5V und das ist bestimmt noch zuverlässig ein Low-Pegel). Noch als Tipp am Rande: wenn der 2,2kOhm Serienwiderstand in der Enableleitung die Flanken doch zu arg verschleift (was bei den 50kHz noch nicht unbedingt zu kritisch ist) dann sollte man bevor der Widerstand verkleinert wird lieber einen 22pF-Kondensator parallel zum Widerstand schalten, dieser Kondensator wirkt als Hochpass und sorgt dafür das die Flanken auch hinter dem Serienwiderstand noch schön steil bleiben.

Das Eagle keine Option zum Einstellen des Abstands zwischen den einzelnen Buchstaben hat wundert mich etwas, wimre hab ich sowas mal vor einigen Jahren in Target 3001 benutzt. Ansonsten mache ich solche Beschriftungen lieber als Bestückungsdruck aber da Du keinen Lötstopplack haben möchtest solltest Du auch auf den Bestückungsdruck verzichten. Den Bestückungsdruck kannst Du auch bequem auf Papier ausdrucken und dann neben den Lötplatz legen, das reich völlig, so das Du Dir ruhigen Gewissens diese Mehrausgaben sparen kannst.

Also ich denke diese Platine wird so wie sie jetzt ist zuverlässig funktionieren und wenn Du doch Probleme hast werden die wohl eher in der Software stecken.


Ich kann Schaltpläne und Datenblätter einigermaßen lesen, von Platinendesign habe ich keine Ahnung. Du weißt, wie ich sowas aufbaue...
Meine Aufforderung war zwar nicht explizit an Dich gerichtet aber ansonsten fällt mir hier auf die schnelle auch keiner ein der sich sonst angesprochen gefühlt haben könnte. Solange Du Deine Projekte noch auf Lochraster und mit Fädeldraht aufbaust bist Du vielleicht wirklich nicht der richtige Review-Partner für ein sauberes Platinenlayout. ;)
Willst Du Deine TTL-CPU eigentlich auch auf Lochraster bauen?


RL geht nunmal vor
Wenn Du mein RL hättest würdest Du das sicher anders formulieren.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #107 am: 04. December 2011, 13:50 »
Hi,

Hab den PullUp jetzt noch hinter den Serienwiederstand platziert. Die 10k hab ich (wiedermal) aus dem Roboternetz.

Lötstopplack werde ich verwenden aber der Bestückungsdrück kostet mir zu viel. Mit Lötstopplack kostet die Platine ~50€ bei 8AT

Die Bestellung habe ich jetzt abgeschickt. Wenn ich alles aufgebaut und getestet habe sag ich nochmal bescheid :)

// Nachteil am Ruhezustand: man ist nicht gezwungen jeden Tab noch einmal anzusehen und merkt deswegen nicht ob man die Antwort auch abgesendet hat ...  :oops: Gestern gegen 16.30 Uhr geschrieben :D

Grüße,
LittleFox

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #108 am: 05. December 2011, 00:14 »
Willst Du Deine TTL-CPU eigentlich auch auf Lochraster bauen?
Ja, zumindest in Teilen. Was sich nicht halbwegs übersichtlich damit lösen lässt, kriegt dann eine geätzte Platine.
Von der Hardwarerealisierung bin ich allerdings viel zu weit entfernt, um da qualifizierte Aussagen zu machen...

Sannaj

  • Beiträge: 103
    • Profil anzeigen
Gespeichert
« Antwort #109 am: 06. December 2011, 21:55 »
Ich glaube ihr hab den Rekord für das Thema gewonnen, bei dem am längsten weiter disskutiert wurde, obwohl es geschlossen ist.  :-D

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #110 am: 06. December 2011, 21:58 »
Jo, und dank dir hat er noch einen Tag bekommen :D
Das ursprüngliche Problem wurde ja gelöst, es ist dann aber mutiert :D

Sannaj

  • Beiträge: 103
    • Profil anzeigen
Gespeichert
« Antwort #111 am: 06. December 2011, 22:51 »
Nennt das ganze doch in Hardwarediskussion um.  8-)

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #112 am: 08. December 2011, 13:10 »
Hallo,


Hab den PullUp jetzt noch hinter den Serienwiederstand platziert. Die 10k hab ich (wiedermal) aus dem Roboternetz.
Grundsätzlich sind die 10kOhm auch nicht verkehrt aber zusammen mit den 2,2kOhm bildet sich ein Widerstandsteiler so das als High-Pegel niemals die vollen 5V vom AVR anliegen, aber auch die etwa 4,1V dürften noch als High-Pegel akzeptiert werden. Trotzdem würde ich persönlich lieber 50kOhm nehmen und eventuell noch 22pF parallel zum 2,2kOhm dranlöten (das gibt steilere Flanken und damit ein saubereres Schaltverhalten und damit minimal weniger Verlustleistung im Treiber-IC und auch weniger EMV-Umweltverschmutzung).

Wenn ich alles aufgebaut und getestet habe sag ich nochmal bescheid :)
Ja, Bitte tu das.


Was sich nicht halbwegs übersichtlich damit lösen lässt
Aha, ich persönlich würde ja sagen das frei fliegende Verdrahtung mit Übersichtlichkeit ungefähr genauso viel bzw. wenig zu tun hat wie meine (hoffentlich bald Ex-)Frau mit rationalem Verhalten, also defacto gar nichts. SCNR
Ich hoffe Du nimmst Dir trotzdem die Zeit und fertigst am PC zumindest Schaltpläne an damit Du wenigstens immer einen sauberen Sollzustand für Dein Chaos hast. ;)

Von der Hardwarerealisierung bin ich allerdings viel zu weit entfernt, um da qualifizierte Aussagen zu machen...
Da spare ich mir mal jeglichen Kommentar. ;)
Noch etwas zur Taktverteilung mit freien Drähten, da gibt es nicht nur das Problem mit den Reflexionen sondern auch mit der Laufzeit. Stell Dir mal vor was passiert wenn zwei Bausteine die entsprechende Taktflanke nicht zur selben Zeit sehen sondern leicht versetzt und wenn dann noch der Baustein der die Taktflanke etwas später bekommt als ein anderer Baustein und dann zufällig noch von diesem anderen Baustein Ergebnisse verarbeiten soll dann könnte es passieren das der Baustein an dem die Taktflanke etwas später ankommt manchmal noch Ergebnisse von der aktuellen Flanke mitverarbeitet (was eigentlich nicht sein darf) und meistens eher nicht. Solche Probleme wirst Du mit Sicherheit nicht ordentlich finden können (schon weil man dafür ein schnelles Oszi mit vielen Kanälen braucht) sondern diese Probleme werden einen Weg finden Dich in den Wahnsinn zu treiben.
Frage mal Firmen wie Intel wie schwierig es ist auf einem einzelnen Stückchen Silizium, das kaum mehr als einen Quadratzentimeter Fläche hat, einen Takt für alle Flip-Flops synchron anzubieten. Okay bei den heutigen Multi-GHz-CPUs müssen die Taktflanken mit einem maximalen Skew im einstelligen Picosekundenbereich synchron kommen wogegen bei Deinem TTL-Verhau wohl noch ein einstelliger Nanosekundenbereich vertretbar ist aber ich hoffe Du verstehst auf was für Probleme ich Dich da vorbereiten möchte.


Nennt das ganze doch in Hardwarediskussion um.
Nö, ich finde "Komisches Problem" sehr treffend. Und nur weil da ein "[erledigt]" im Titel vorkommt heißt das doch noch lange nicht das hier nix mehr zu diskutieren ist.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #113 am: 08. December 2011, 18:48 »
Hallo,

Ich hoffe Du nimmst Dir trotzdem die Zeit und fertigst am PC zumindest Schaltpläne an damit Du wenigstens immer einen sauberen Sollzustand für Dein Chaos hast. ;)
Das ist natürlich selbstverständlich (*g*), wie auch eine Simulation.

Noch etwas zur Taktverteilung mit freien Drähten, da gibt es nicht nur das Problem mit den Reflexionen sondern auch mit der Laufzeit. Stell Dir mal vor was passiert wenn zwei Bausteine die entsprechende Taktflanke nicht zur selben Zeit sehen sondern leicht versetzt ...
Ja, das ist auch ein Problem, sogar unabhängig von der eigentlichen Taktfrequenz. Allerdings ist bei TTL im Bereich von wenigen Megahertzen die Signallaufzeit gegenüber der Gatterlaufzeit vernachlässigbar.

Spontan geschätzt lässt sich das verhindern, indem man vor jedes zustandsspeichernde Bauteil (Flipflop) ein von zentraler Taktquelle gespeistes Latch setzt. Bei reiner Kombinatorik ist das egal, nach einer gewissen Zeit X wird der Wert schon stimmen (daraus ergibt sich die max. Taktfrequenz). Bei TTL braucht man das aber nicht zwingend.

Frage mal Firmen wie Intel wie schwierig es ist auf einem einzelnen Stückchen Silizium, das kaum mehr als einen Quadratzentimeter Fläche hat, einen Takt für alle Flip-Flops synchron anzubieten.
Das schöne an TTL ist, dass ich kein überall anliegendes, synchrones Taktsignal brauche, da die Chips so langsam sind, dass ein Signal als sofort anliegend betrachtet werden kann.

Was bei FPGAs eine Todsünde ist - Asynchronität - ist bei TTL kein Thema.

Gruß,
Svenska

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #114 am: 08. December 2011, 19:01 »
Hi,

mal eine blöde Frage: waren TTL Chips nicht die Stromfresser die heute quasi nicht mehr verwendet werden?

@erik: ok, dann werde ich einen 50K Widerstand verwenden, Teile muss ich sowieso noch bestellen. Ob ich den Kondensator noch anlöte weiß ich allerdings noch nicht.

Die Platine ist inzwischen in der Bearbeitung - Prüfungen bestanden :)

Edit: btw.: mit Timingproblemen hab ich gerade bei meiner Minecraft CPU zu leben :D Wird wohl eine Taktlose (also ohne Takt, Taktgefühl hat sie sowieso nicht ;)) CPU werden ...

Grüße,
LittleFox
« Letzte Änderung: 08. December 2011, 19:03 von littlefox »

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #115 am: 08. December 2011, 20:10 »
Hallo,


mal eine blöde Frage: waren TTL Chips nicht die Stromfresser die heute quasi nicht mehr verwendet werden?
Ja! Und das ist keine blöde Frage.
Der DMIPS/W-Wert von Svenska's CPU dürfte unterirdisch werden, aber ich schätze das weiß Svenska bereits und es ist ihm bestimmt auch egal schließlich will er ja was dabei lernen und da sollte man auch mal kurz von Stromzähler wegschauen können. In unserer Welt geht es fast nur noch um Effizienz, sogar unsere Kinder sind davon schon betroffen, da darf, nein muss, es auch mal Dinge geben auf die andere Kriterien angewendet werden!

ok, dann werde ich einen 50K Widerstand verwenden
Du kannst auch irgendwas anderes zwischen 20kOhm und 500kOhm nehmen (was Deine Kramkiste eben so her gibt), oder zur aller größten Not lässt Du den Pull-Down ganz weg, aber stürze Dich deswegen nicht in Unkosten. Nur zu klein sollte der Pull-Down-Widerstand eben nicht sein weil ja ein Widerstandsteiler entsteht.

Ob ich den Kondensator noch anlöte weiß ich allerdings noch nicht.
Dann las ihn weg, das dürfte für Deine Anwendung wohl noch völlig egal sein und um Dinge wie EMV brauchst Du Dir auch erst dann Gedanken zu machen wenn der Funkmesswagen der Bundesnetzagentur vor Deiner Tür steht. ;) Nee, keine Angst wegen den paar unsauberen Schaltflanken in Deinem winzigen Motor-Treiber-IC kommt der tolle Messwagen bestimmt nicht zu Dir und wenn doch dann haben die auf jeden Fall alles nötige an Messequipment dabei um Dir bei Deinen EMV-Problemen gut helfen zu können.

Wird wohl eine Taktlose (also ohne Takt
Es gibt auch tatsächlich CPUs ganz ohne Takt http://de.wikipedia.org/wiki/Asynchrone_Prozessorarchitektur.

Aber eine CPU in Minecraft ist schon krass, es scheint wohl nichts zu geben das es nicht gibt.


Das ist natürlich selbstverständlich (*g*), wie auch eine Simulation.
Gut, das beruhigt mich ungemein.

- Asynchronität - ist bei TTL kein Thema.
Sorry, wenn ich Dir das so direkt sage aber ich schätze Du hast gar nicht verstanden um was für eine Art Problem es mir geht. Dieses Problem kommt ja gerade deswegen weil die Signallaufzeiten in den Leitungen in Relation zu den Durchlaufzeiten in den TTL-Bausteinen verschwindend gering sind. Ließ Dir Bitte noch mal durch was ich heute Mittag geschrieben hab und wenn es nicht klar genug ist dann versuche ich dieses Problem noch einmal anders zu beschreiben. Beim klassischen PCI müssen auch alle Taktleitungen von der zentralen Taktquelle aus bis zu allen Slots (bzw. On-Board-Komponenten) gleich lang sein und da geht es "nur" um 33MHz. Bei PCI-Express ist das übrigens völlig egal, überlege mal warum.


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

LittleFox

  • Beiträge: 306
    • Profil anzeigen
    • LF-Net.org
Gespeichert
« Antwort #116 am: 08. December 2011, 20:16 »
ok, dann werde ich einen 50K Widerstand verwenden
Du kannst auch irgendwas anderes zwischen 20kOhm und 500kOhm nehmen (was Deine Kramkiste eben so her gibt), oder zur aller größten Not lässt Du den Pull-Down ganz weg, aber stürze Dich deswegen nicht in Unkosten. Nur zu klein sollte der Pull-Down-Widerstand eben nicht sein weil ja ein Widerstandsteiler entsteht.

Da ich keine Kramkiste habe werde ich einen 50k Widerstand kaufen - die Kramkiste bildet sich hoffentlich mit der Zeit von selber :D

Wird wohl eine Taktlose (also ohne Takt
Es gibt auch tatsächlich CPUs ganz ohne Takt http://de.wikipedia.org/wiki/Asynchrone_Prozessorarchitektur.

Aber eine CPU in Minecraft ist schon krass, es scheint wohl nichts zu geben das es nicht gibt.

Ich bin nicht der erste der auf die Idee kommt eine CPU in Minecraft zu bauen, haben auch schon welche geschafft: 8 Bit, 8 Byte RAM, 16 Befehle und ein paar Register. Meine bekommt auch 8 Bit aber 256 Byte RAM - vorrausgesetzt ich krieg' keine Platzprobleme ...
Das es taktlose CPUs gibt weiß ich, ist in Minecraft wahrscheinlich noch am einfachsten :D

Wenn du Minecraft spielst, kann ich die Serverzugriff geben, momentan ist aber noch nicht viel fertig ;)

Grüße,
LittleFox

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #117 am: 08. December 2011, 21:20 »
Es gibt auch tatsächlich CPUs ganz ohne Takt http://de.wikipedia.org/wiki/Asynchrone_Prozessorarchitektur.
Krass, das wusste ich nicht.

- Asynchronität - ist bei TTL kein Thema.
Sorry, wenn ich Dir das so direkt sage aber ich schätze Du hast gar nicht verstanden um was für eine Art Problem es mir geht.
Naja, eine Abhilfe hatte ich drunter geschrieben.

Dieses Problem kommt ja gerade deswegen weil die Signallaufzeiten in den Leitungen in Relation zu den Durchlaufzeiten in den TTL-Bausteinen verschwindend gering sind.
Gerade deswegen kann man die ja vernachlässigen. Bei FPGAs spielt das eine extrem große Rolle, bei TTL nicht. Die Flanken sind recht flach (5V aufzubauen dauert eine Weile), so dass unterschiedliche Signallaufzeiten erst bei unterschiedlichen Chipzahlen relevant werden, nicht durch Leitungslängenunterschiede.

Selbst, wenn Glitches zum Problem werden können, spielt das bei Kombinatorik keine Rolle, sofern genug Zeit zum Stabilisieren zur Verfügung steht - vor Flipflops müssen dann zentral getaktete Latches sitzen, um die Asynchronitäten aufzufangen. Und da sind kleine Unterschiede ebenfalls relativ egal, denk ich. :-)

Wie gesagt, ich gebe dir vollkommen Recht, halte die Folgen aber für weniger kritisch. Konkreter denke ich drüber nach, wenn ich (a) mich um die Bauteile kümmere und (b) mal die Architekturspezifikation weitermache. ;-)

mal eine blöde Frage: waren TTL Chips nicht die Stromfresser die heute quasi nicht mehr verwendet werden?
Ja. Und nicht nur die DMIPS/Watt werden unterirdisch sein, die Rechenleistung ebenfalls. Ich rechne mit einer effektiven Taktfrequenz von unter einem MHz, vielleicht auch 3-4 MHz. Wenn es mehr wird, bin ich froh. ;-)

Gruß,
Svenska

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #118 am: 11. December 2011, 13:25 »
Hallo,


Krass, das wusste ich nicht.
;)

Naja, eine Abhilfe hatte ich drunter geschrieben.
Das ist keine Abhilfe sondern der Kern des Problems. Es geht ja gerade um die getakteten Speicherzellen (also die D-FF's). So eine Digitalschaltung ist doch im wesentlich nichts weiter als ein synchroner Zustandsautomat. Nach der aktiven Taktflanke 1 steht an den Ausgängen aller getakteten Speicherzellen deren Zustand an und dann hat die asynchrone Logik-Wolke eine knappe Periodendauer Zeit um daraus den Zustand für Takt 2 zu generieren welcher rechtzeitig an den Eingängen der getakteten Speicherzellen anstehen muss und wenn das klappt wird dieser Zustand 2 dann mit der Taktflanke 2 übernommen. Zusätzlich zur eigentlichen Durchlaufzeit der Logik-Elemente (AND, OR oder auch Addierer bzw. Multiplizierer) kommt dann immer noch die Signallaufzeit und von den getakteten Speicherzellen kommt noch die Setup-Zeit (die Zeit die das Signal bereits vor der Flanke stabil am D-Pin anstehen muss um sicher übernommen zu werden) und das Propagation-Delay (die Zeit die nach der aktiven Flanke vergeht bis das neue Signal am Q-Pin sichtbar ist). Solange alle diese Zeiten zusammenaddiert kleiner als die Periodenlänge Deines Taktes ist ist alles im grünen Bereich, der längste Pfad bestimmt also Deine maximale Taktfrequenz.
Das Problem entsteht dadurch das die Setup-Zeit und das Propagation-Delay nicht ausschließen das eventuell auch später ankommende Pegel am D-Pin noch akzeptiert werden oder am Q-Pin eventuell der neue Pegel schon früher anliegt. Ich beziehe mich jetzt mal auf einen Klassiker aus der 74-Reihe den 74HCT377 mit dem Datenblatt von NXP: http://www.nxp.com/documents/data_sheet/74HC_HCT377_CNV.pdf. Auf Seite 6 gibt es da eine hübsche Tabelle (ich bleibe jetzt mal in der 25°C-Spalte) der man für das Propagation-Delay entnehmen kann das typischerweise 17ns nach der aktiven Flanke der neue Pegel ansteht und das das längstens 32ns dauern kann (diesen Wert musst Du für die Worst-Case-Berechnung Deines längsten Pfades nutzen), aber es gibt dort kein Minimum so das Dir niemand garantiert das der neue Pegel nicht eventuell schon nach nur 5ns (oder gar noch früher) stabil ansteht. Bei der Setup-Zeit ist es ähnlich, wenn Du sicherstellen kannst das Dein neuer Pegel mindestens 12ns vor der aktiven Flanke ansteht (diesen Wert musst Du für die Worst-Case-Berechnung Deines längsten Pfades nutzen) dann wird er sicher übernommen und für die typischen Fälle reichen aber auch 4ns aus, auch hier gibt es aber keine zugesicherte Untergrenze so das es durchaus passieren kann das ein Pegel der erst 2ns vor der aktiven Flanke kommt trotzdem noch sauber übernommen wird.
Jetzt zu dem eigentlichen Szenario: nehmen wir an Du hast 2 solcher 74HCT377 verbaut und zufälliger Weise gib es ein Signal das direkt (ohne jegliche Logik dazwischen) von einem Q-Ausgang des einen Bausteins zu einem D-Eingang des anderen Bausteins geht (z.B. ein Enable-Signal o.ä. das nur zusammen mit seinen Daten mitgezogen werden muss, sowas habe ich in meinem VHDL-Code an einigen Stellen (z.B. mehrstufigen Verarbeitungspipelines) mit drin). Da dieses Signal nur minimal belastet ist, also kaum eine parasitäre Kapazität überwunden werden muss, dürfte die Signallaufzeit wirklich sehr kurz sein so das hier eine zeitliche Differenz der ankommenden Taktflanken bei den zwei Chips von knapp 10ns eventuell schon reichen könnte das wenn der Empfänge die selbe Flanke eben 10ns später sieht als der Sender das der Empfänger dann bereits den Pegel übernimmt der eigentlich erst mit der nächsten Flanke übernommen werden sollte. Diese 10ns hören sich vielleicht nach viel an aber einige cm Längenunterschied in der Taktleitung zusammen mit der langsamen Flanke (weil das Taktsignal ja durch die vielen TTL-Bausteine stark belastet ist und eine hohe parasitäre Kapazität aufweist) können diese 10ns schon in greifbare Nähe rücken. Die langsame Flanke verursacht u.a. das der Zeitpunkt an dem der TTL-Bausteil die Flanke als solche erkennt nicht immer gleich ist (die Schaltschwellen unterliegen einigen Schwankungen die u.a. von der exakten Versorgungsspannung, der Temperatur aber auch von schwankenden Toleranzen im Herstellungsprozess abhängen) selbst wenn das Taktsignal am Pin identisch ansteht. Zusätzlich verursachen diese langsamen Flanken elektrischen Stress in der Eingangsstufe auf dem Silizium welcher auf jeden Fall einen mehr oder weniger großen negativen Effekt auf die Bauteillebensdauer hat.

Konkreter denke ich drüber nach, wenn ich (a) mich um die Bauteile kümmere und (b) mal die Architekturspezifikation weitermache. ;-)
Du solltest über dieses Problem nachdenken wenn Du anfängst den Schaltplan für Deine CPU zu entwickeln, auf die Architektur hat dieses Problem keinen Einfluss da es grundsätzlich bei jeder synchronen Logik auftritt.

Ich rechne mit einer effektiven Taktfrequenz von unter einem MHz, vielleicht auch 3-4 MHz. Wenn es mehr wird, bin ich froh. ;-)
Damit bist Du doch fast im Bereich kleiner µC angekommen. Übrigens werden meine DMIPS/Watt auch unterirdisch werden, ein FPGA schluckt gegenüber einem nativen Stück Silizium für die selbe Funktionalität oft mehr als das 5fache der Energie. Auf meiner ML605 ist übrigens ein aktiver Lüfter auf dem FPGA drauf obwohl auf dem Produktfoto keiner zu sehen ist, der hat auch nur ein paar cm Durchmesser und ist lauter als er aussieht. :(


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

erik.vikinger

  • Beiträge: 1 277
    • Profil anzeigen
Gespeichert
« Antwort #119 am: 13. December 2011, 17:42 »
Hallo,


dann werde ich erstmal bei dem Spannungsregler bleiben
Ich schätze ich nerve da ein klein wenig aber wenn Du was effizientes suchst und trotzdem bei der Einfachheit eines Dreipinners bleiben willst gäbe es da was interessantes: http://www.gaptec-electronic.de/datenblaetter/Datenblatt_LMS78_0.5A_1.5.pdf. Vergleichbare Teile gibt es auch von anderen Herstellern und es sollte machbar sein sowas über Reichelt zu bekommen (nachgesehen hab ich jetzt aber nicht). Das soll keine Aufforderung o.ä. sein sondern nur noch mal ein kleiner Anstupser (so in Richtung Öko-Bewusstsein usw.). ;)


Grüße
Erik
Reality is that which, when you stop believing in it, doesn't go away.

 

Einloggen