Hi, für ein Schulprojekt wurde mir aufgetragen eine Binäruhr mit schnick schnack zu entwickeln. Nun habe ich zig Stunden investiert mich eingelesen und versucht nach bestem Wissen die angehängte Schaltung zu entwickeln. Nach meinem Befinden ist die Schaltung so i.O. aber es wäre mir lieber wenn sie sich ein Profi nochmal kurz ansieht. Klar erwarte ich keine komplette Schaltungsanalyse sondern erhoffe mir das ein geschulter Blick etwaige Schwachpunkte oder offensichtliche Fehlplanungen bemerkt. Da ich unter enormen Zeitdruck stehe möchte ich es vermeiden dann beim Testen hunderte Fehler zu suchen und neue teile nach zubestellen. Es sollten alle Bauteile die ich brauche drin sein, wenn etwas im Schaltplan fehlt dann fehlt es wirklich und es wäre super mich kurz drauf hinzuweißen. Die Stromversorgen der Shiftregister habe ich daneben gezeichnet weil ich kein Symbol mit Vcc und GND gefunden habe. Umfang: Anzeige der Uhrzeit binär und digital. Anzeige des Datums digital und römisch. LED Matrix mit 7 Multiplex Zeilen. RTC per I2C. Auslesen der Umgebungshelligkeit mit LDR. Auslesen des Batterieladezustandes. Anschlüsse für JTAG und ISP. Entprellte Taster. Ich würde mich wirklich super freuen wenn ich von euch Feedback bekomme. Und bitte nicht den Eindruck haben ich wäre faul. Ich habe wirklich Unmengen an Zeit investiert und möchte einfach sicher gehn nicht noch mehr Zeit mit Fehlersuche und Ausbessern von Fehlplanungen zu vergeuden. vielen dank schonmal im vorraus!
:
Verschoben durch User
*) die NPN im Plus-Zweig sind in Emitter-Folger Betrieb, ich würde auf PNP-Typen wechseln und Ansteuerung invertieren. *) Tastenentprellung würde ich in SW machen und den ganzen HW-Kram stanzen *) schaltbare Spannungsteiler für BAT und LDR sind Geschmacksache, aus dem Bauch würde ich sie weglassen *) für die Versorgungsanschlüße: im Werkzeugkasten "invoke" und dann aufs Bauteil klicken Viel Erfolg, Grüße leo
Oliver Ka schrieb: > Die Stromversorgen der Shiftregister habe ich daneben gezeichnet weil > > ich kein Symbol mit Vcc und GND gefunden habe. Das Zauberwort heisst: INVOKE
Danke für die schnellen Antworten Klaus K. schrieb: > *) die NPN im Plus-Zweig sind in Emitter-Folger Betrieb, ich würde auf > PNP-Typen wechseln und Ansteuerung invertieren. Was ist denn daran besser? Hat es etwas mit der Belastung zu tun? Ich kenne mich leider mit pnp nicht gut aus, dann müsste ich die basis auf high ziehen und mit dem register auf ground schalten? oder mit negativer spannung arbeiten? Klaus K. schrieb: > *) Tastenentprellung würde ich in SW machen und den ganzen HW-Kram > stanzen Das hatte ich zuerst auch so geplant aber da ich die shiftregister seriell durchbeschreibe möchte ich mir keine zusätzlichen Wartezeiten aufhalsen wenn ich per software entprelle. die beschreibung aller 36 bits dauert ja auch seine zeit. Und das mindestens 30mal pro sekunde... ich möchte den uC eben auch nicht immer mit de vollen 16Mhz laufen lassen sodas sich das Problem noch verschärfen würde oder? Die Bauteile kosten nicht die Welt und so hab ich das Problem Softwareseitig gar nicht erst. Klaus K. schrieb: > *) schaltbare Spannungsteiler für BAT und LDR sind Geschmacksache, aus > dem Bauch würde ich sie weglassen Damit möchte ich den Stromfluss unterbinden wenn ich nicht messe. Ich möchte nur 1-2 pro sekunde messen und den rest der zeit würde ja je nach Widerstand ein Strom fließen. Die Wiederstände im LDR Pfad habe ich eigentlich optimal berechnet sodass ich einen breiten spannungsbereich habe und so stell ich mir eine erhöhung der einzelnen widerstände damit weniger strom fließt schwierig vor. Klaus K. schrieb: > *) für die Versorgungsanschlüße: im Werkzeugkasten "invoke" und dann > aufs Bauteil klicken Danke :-) Sieht zwar hässlich aus weil kein Platz im Bauteil ist aber erfüllt seinen Zweck ;-) Sonst keine groben Mängel festgestellt? Fehlende Kondensatoren, Pull-up, Pull-down Widerstände oder sonstiges?
Und wieso wurde das Thema in die Kategorie Platinen verschoben? Es geht nicht um eine Platine sondern um mögliche Fragen zur Schaltung bzw. den bauteilen --> also uC und Elektronik. Der Thread passt hier glaube ich nicht ganz ins Thema.
Oliver Ka schrieb: > Das hatte ich zuerst auch so geplant aber da ich die shiftregister > seriell durchbeschreibe möchte ich mir keine zusätzlichen Wartezeiten > aufhalsen wenn ich per software entprelle. Diese Wartezeit macht überhaupt nichts aus, da entprellen softwaremäßig (fast) nichts kostet: 1 Takt fürs einlesen ohne Entprellen oder 12 Takte mit entprellen bei 30Hz Refresh @1Mhz: 30µs <> 360µs 0,003% <> 0,036% Es ist übrigens egal ob der avr mit 16Mhz oder 1Mhz läuft, den Strom verbrauchen die Leds.
Samuel K. schrieb: > 1 Takt fürs einlesen ohne Entprellen oder 12 Takte mit entprellen bei > 30Hz Refresh @1Mhz: Ein Taster prellt doch typischerweise ca 20-30ms. Wie komme ich da mit 12 Takten hin? Oder werde ich früher oder später auf solche kniffe beim Programmieren kommen, dass ich das entprellen im Hintergrund laufen lassen kann?
Oliver Ka schrieb: > Oder werde ich früher oder später auf solche kniffe beim > Programmieren kommen, dass ich das entprellen im Hintergrund laufen > lassen kann? Entprellen macht man zyklisch. Die Taste wird zyklisch abgefragt. Wenn sie 4 mal hintereinander gedrückt war gilt das als gedrückt. Im Forum gibts es genügend Codes zur Entprellung und so ziemlich alle arbeiten nach diesem System.
Samuel K. schrieb: > Entprellen macht man zyklisch. Die Taste wird zyklisch abgefragt. Wenn > sie 4 mal hintereinander gedrückt war gilt das als gedrückt. Im Forum > gibts es genügend Codes zur Entprellung und so ziemlich alle arbeiten > nach diesem System. OK cool, danke das werd ich mir dann mal anschauen!
... was für die Bipolartransistoren gilt, gilt natürlich auch für die MOS-FETs: Entweder die beiden N-Kanal-Typen (BSS123) zwischen Spannungsteiler und Masse einbauen, oder auf P-Kanal-Typen (z. B. BSS84) umsteigen. Außerdem genügt auch ein einziger FET; die Spannungsteiler sind ja eh parallel geschaltet.
Danke für eure Antworten bisher! Ich habe den Schaltplan jetzt insoweit verändert, dass ich die npn im pluszweig durch pnp, und die npn gegen ground durch npn darlington getauscht habe. Den n Mosfet habe ich zwischen spg-teiler und ground geschaltet. Invoke habe ich noch nicht eingefügt kommt aber noch. So wie der Schaltplan jetzt ist würde ichs dann wohl umsetzen und alle Teile bestellen heute abend. Noch irgendwelche Fehler oder Unstimmigkeiten zu sehen? Sonst bedanke ich mich schonmal bei euch für eure Hilfe :)
PS: Die Hardware für tastenentprellung hab ich jetzt vorerst mal drin gelassen aber ich werds dann auch per software machen.
Eine Unschönheit ist mir noch aufgefallen. Du hast jetzt statt der beiden MOSFETs bei der Messung der Helligkeit und der Batteriespannung nur noch einen MOSFET in der GND-Leitung (Q66), um Strom zu sparen. Wenn Du den MOSFET hochohmig machst (also abschaltest), fließt immer noch ein Strom von den Batterien über R126 in den Portpin PA6 und dort über die Schutzdioden nach VCC. Abgesehen davon, dass es unschön ist, eine höhere Spannung als VCC an den Portpin zu geben (obwohl voraussichtlich nichts kaputt gehen wird), hast Du das eigentliche Ziel, nämlich die Batterien nicht zusätzlich zu belasten, verfehlt. Ich würde auf die Abschalterei ganz verzichten. R126 und R127 würde ich um den Faktor 10 größer machen (also 330 kOhm und 470 kOhm), dann fließt sowieso schon ein geringerer Strom. Der immer wieder erwähnte maximale Quellwiderstand von 10 kOhm bezieht sich auf wechselnde Eingangsspannungen, bei statischen Spannungen (Batterie) kann der Quellwiderstand ruhig höher sein. Auch beim LDR-Zweig würde ich auf die Abschaltung verzichten. Was da an Strömen fließt, ist nämlich vernachlässigbar gegenüber dem, was durch die Anzeige-LEDs fließen wird.
In Schaltplänen sind im Gegensatz zu Layouts schräge Verbindungen verpönt. Es fahren keine Signale QUER durch andere Bauteile durch (R113). Punkte zeigen eine Leitende Verbindung an (Quarz). Dein LDO wird ganz hübsche DICKE BACKEN bekommen, wenn mal alle LEDs einer Zeile und z.B. noch die von den Minuten an sind. Das wären dann immerhin 42*20mA = 840mA und damit 840mA*2,5V = 2,1 Watt zu verheizen. Und zudem: 840mA aus einem 250mA LDO mit 500mA Peak... :-o
Es wäre wesentlich weniger Aufwand und Umstand, das Zeilen-Schieberegister auch zu den anderen Registern zu hängen. Oder: anstatt den seriellen Input per Software zusammenzubasteln, nimm lieber gleich ein 74HC237.
Edi R. schrieb: > Wenn > Du den MOSFET hochohmig machst (also abschaltest), fließt immer noch ein > Strom von den Batterien über R126 in den Portpin PA6 und dort über die > Schutzdioden nach VCC. Abgesehen davon, dass es unschön ist, eine höhere > Spannung als VCC an den Portpin zu geben (obwohl voraussichtlich nichts > kaputt gehen wird), hast Du das eigentliche Ziel, nämlich die Batterien > nicht zusätzlich zu belasten, verfehlt. Da hast du Recht, Danke. Edi R. schrieb: > Der immer wieder erwähnte maximale > Quellwiderstand von 10 kOhm bezieht sich auf wechselnde > Eingangsspannungen, bei statischen Spannungen (Batterie) kann der > Quellwiderstand ruhig höher sein. Quellwiderstand wäre in dem fall R126? Also der Widerstand der an High hängt? Lothar Miller schrieb: > In Schaltplänen sind im Gegensatz zu Layouts schräge Verbindungen > verpönt. OK, ist angekommen werd ich ändern ;-) Lothar Miller schrieb: > Dein LDO wird ganz hübsche DICKE BACKEN bekommen, wenn mal alle LEDs > einer Zeile und z.B. noch die von den Minuten an sind. Das wären dann > immerhin 42*20mA = 840mA und damit 840mA*2,5V = 2,1 Watt zu verheizen. > Und zudem: 840mA aus einem 250mA LDO mit 500mA Peak... :-o der Low-Drop-regler? also die Led Matrix wird auf ein minimum beschränkt sein solange nur die Batterie den Strom liefert. Sobald das Netzteil eingesteckt ist, bekommt das der uC mit und ändert die Anzeige dementsprechend. Michael H. schrieb: > Es wäre wesentlich weniger Aufwand und Umstand, das > Zeilen-Schieberegister auch zu den anderen Registern zu hängen. Wie meinst du das dran hängen? Nach dem letzten für die Spalten das Zeilenregister über den seriellen output anzuschließen? Was bringt mir das für Vorteile in der Programmierung? Michael H. schrieb: > Oder: anstatt den seriellen Input per Software zusammenzubasteln, nimm > lieber gleich ein 74HC237. Was macht der denn besser/anders? Mit den 74HC595 geht es aber doch auch einigermaßen gut oder nicht? jetzt nochmal alles umzumodeln reicht mir die zeit nicht wenn es nicht unbedingt sein muss. aber für zukünftige projekte wärs nett wenn du mir in ein, zwei sätzen die Funktion des bauteils sagen könntest :-)
Oliver Ka schrieb: > Michael H. schrieb: >> Es wäre wesentlich weniger Aufwand und Umstand, das >> Zeilen-Schieberegister auch zu den anderen Registern zu hängen. > > Wie meinst du das dran hängen? Nach dem letzten für die Spalten das > Zeilenregister über den seriellen output anzuschließen? Was bringt mir > das für Vorteile in der Programmierung? Genau das meine ich. Vorteil ist, dass du dich nicht um die Datenausgabe an das Zeilen-Register kümmern müsst. So, wie es jetzt angeschlossen ist, musst du die Pins ja per Hand setzen, um eine serielle Ausgabe zu machen. > Michael H. schrieb: >> Oder: anstatt den seriellen Input per Software zusammenzubasteln, nimm >> lieber gleich ein 74HC237. > > Was macht der denn besser/anders? Mit den 74HC595 geht es aber doch auch > einigermaßen gut oder nicht? jetzt nochmal alles umzumodeln reicht mir Es funktioniert sicher. Aber du stellst dir mit der Anbindung von diesem Schieberegister ein Bein. Ich habe vermutet, dass du instinktiv die Spalten unabhängig von den Zeilen haben willst. Das ist Geschmackssache und macht dann keinen Unterschied. Nur könnte man diese Lösung wesentlich geschickter mit einem 74HC273 umsetzen. > die zeit nicht wenn es nicht unbedingt sein muss. aber für zukünftige > projekte wärs nett wenn du mir in ein, zwei sätzen die Funktion des > bauteils sagen könntest :-) Das '273 ist ein 3-zu-8 BCD-Dekoder. Nachdem du beim Multiplex eh nur eine Zeile gleichzeitig anschalten kannst, kannst du die 7 Zeilen im BCD-Format angeben. Prinzipielle Wahrheitstabelle zu dem IC: Adress-Leitungen A, B und C. Ausgangsleitungen D0..D7 C B A | D0 D1 D2 D3 D4 D5 D6 D7 ----------+-------------------------------- 0 0 0 | 1 0 0 0 0 0 0 0 0 0 1 | 0 1 0 0 0 0 0 0 0 1 0 | 0 0 1 0 0 0 0 0 0 1 1 | 0 0 0 1 0 0 0 0 1 0 0 | 0 0 0 0 1 0 0 0 1 0 1 | 0 0 0 0 0 1 0 0 1 1 0 | 0 0 0 0 0 0 1 0 1 1 1 | 0 0 0 0 0 0 0 1 A, B und C sind die Leitungen aus deinem Mikrocontroller, D0..D7 gehen an die Zeilen-Transistoren.
Michael H. schrieb: > Es funktioniert sicher. Aber du stellst dir mit der Anbindung von diesem > Schieberegister ein Bein. > Ich habe vermutet, dass du instinktiv die Spalten unabhängig von den > Zeilen haben willst. Das ist Geschmackssache und macht dann keinen > Unterschied. > Nur könnte man diese Lösung wesentlich geschickter mit einem 74HC273 > umsetzen. du Sprichst einmal von einem 74HC273 und einmal von einem 74HC237. Hast du dich verschrieben oder meinst du zwei verschiedene Bauteile? Das mit dem BCD konverter klingt interessant, so könnte ich mir das serielle ansteuern des 595 sparen...
Oliver Ka schrieb: > du Sprichst einmal von einem 74HC273 und einmal von einem 74HC237. Hast > du dich verschrieben oder meinst du zwei verschiedene Bauteile? Das mit Ich habe mich nur vertippt! Entschuldige bitte. > dem BCD konverter klingt interessant, so könnte ich mir das serielle > ansteuern des 595 sparen... Meinst du nur IC4? Genau das wär mein Punkt =) Was mir noch auffällt: ein Pullup für die RCK-Leitung der Spalten-Register könnte nicht schaden, damit beim Programmieren nicht ungewollte Zustände auftreten und vielleicht Transistoren und andere Bauteile Schaden nehmen.
Oliver Ka schrieb: > jetzt nochmal alles umzumodeln reicht mir > die zeit nicht Man kann sowas übrigens auch simulieren. Proteus Isis ist ein Tools, das auch Atmega-Controller simulieren kann. Es gibt eine Demo-Version, die den vollen Funktionsumfang mitbringt, mit der man allerdings nicht speichern kann... Also eigentlich nur praktisch, wenn dein Rechner Standby kann. http://www.labcenter.com/products/vsm_overview.cfm Du kannst darin fast deine ganze Schaltung inklusive Schieberegister, Transistoren, Leds und Analogquellen nachbauen und schon mal anfangen, Software zu schreibn. Beispiele auf die Schnelle: http://www.youtube.com/watch?v=2HDEDMiN1WI http://www.youtube.com/watch?v=teZ99GONwx8
Samuel K. schrieb: > Wäre dann nicht eher ein Schieberegister ohne Latch geeignet (74HC164)? Anstelle von was? Den Spalten-Registern oder des Zeilen-Registers? Mit latch meinst du die Übernahme der Werte im seriellen "Pfad" in die Parallelen Ausgänge? Was hätte ich denn für einen Vorteil davon? Michael H. schrieb: > Ich habe mich nur vertippt! Entschuldige bitte. Hab mich nur gewundert :-) also du meintest den 74HC237 nehme ich an. Michael H. schrieb: > Meinst du nur IC4? Genau das wär mein Punkt =) Ja genau. Kann ich das register denn ohne weiteres durch den 74HC237 ersetzen oder muss ich etwas grundlegendes beachten. Ich würde jetzt die Basis R der Darlingtons neu berechnen und das müsste es ja gewesen sein. Ich bräuchte eigentlich nicht mal die 3 Steuerleitungen anschließen sondern Latch und Data1 enable jeweils gegen Ground und data2 auf high ziehen. da ich nur 7 ausgänge benötige, kann ich über den Wert "111" (Ausgang8 high) ja alle restilchen Ausgänge Auf Low schalten. Michael H. schrieb: > Was mir noch auffällt: ein Pullup für die RCK-Leitung der > Spalten-Register könnte nicht schaden, damit beim Programmieren nicht > ungewollte Zustände auftreten und vielleicht Transistoren und andere > Bauteile Schaden nehmen. Klingt logisch, der reagiert ja auf ein low-high Signal. Wäre ein Pull-down an SCK auch sinnvoll? Dort muss ja ein High-Signal anstehen damit der anstehende Wert ins Serielle Register übernommen wird. Wäre ein Wert von 100k in beiden Fällen sinnvoll um das Niveau zuverlässig zu halten? Ich geh mal davon aus das ich die Pull-Ups an SCL auch ohne Probleme von 20k auf 100k anheben könnte. Wie groß sollte ich denn die pull-ups und downs dimensionieren? Da fehlt mir ehrlich gesagt ein wenig der Durchblick :S Je kleiner der Widerstand desto schneller kann ich den Bus betreiben habe ich Recht?
Das Programm gefällt mir von der Beschreibung her, das hätte ich mal früher gebraucht...jetzt brauch ich nicht mehr anfangen zu testen das dauert zu lange :D aber auf jedenfall super für zukünftige Projekte, Danke!
Ich meinte das Ersetzen des 237 durch den 164: Beim 237 möchte man durch die drei Steuerleitungen nacheinander die Spalten ansteuern. Das gleiche lässt sich einfacher mit einem Schieberegister erledigen. Man verbindet den 8. Ausgang des SR mit dem Eingang (evtl. über einen Widerstand), so dass eine herausgeschobene 1 wieder eine 1 hinein schiebt. Am Anfang schiebt man genau eine 1 rein, danach kann man diese durch das Clocksignal rotieren. Ohne latch damit die geschobene 1 sofort übernommen wird. Oliver Ka schrieb: > Wäre ein Pull-down an SCK auch sinnvoll? Nein, es ist egal ob Daten ins SR geschoben werden, solange sie nicht übernommen werden (latch, das der 164 nicht hat). Deswegen muss RCK auf Vcc bleiben. Das eigentliche Problem ist, dass RCK beim Programmieren floaten kann und damit das SR Daten übernehmen kann. Bei SCK hätte dies kein Effekt, da diese Leitung vom Programmer gesteuert wird -> dein Pulldown wäre wirkungslos. Dimensionierung der Pullups ist relativ frei. Zwischen 10k-100k.
Oliver Ka schrieb: > Edi R. schrieb: >> Der immer wieder erwähnte maximale >> Quellwiderstand von 10 kOhm bezieht sich auf wechselnde >> Eingangsspannungen, bei statischen Spannungen (Batterie) kann der >> Quellwiderstand ruhig höher sein. > > Quellwiderstand wäre in dem fall R126? Also der Widerstand der an High > hängt? Nein, der Quellwiderstand ist das, was der ADC sieht, nämlich eine Parallelschaltung von R126 und R127, also 33 kOhm || 47 kOhm = 19,4 kOhm.
Samuel K. schrieb: > Am Anfang schiebt man genau eine 1 rein, danach kann man diese durch das > Clocksignal rotieren. OK das klingt ziemlich komfortabel aber woher weiß ich dann sicher welcher Ausgang gerade high ist? Gut ich könnte es mir natürlich merken aber beim 237 habe ich immer einen definierten Wert den ich angeben kann. Zur ansteuerung brauche ich auch drei Leitungen. Mmmh ich bin unentschlossen... Samuel K. schrieb: > Nein, es ist egal ob Daten ins SR geschoben werden, solange sie nicht > übernommen werden (latch, das der 164 nicht hat). Deswegen muss RCK auf > Vcc bleiben. Das eigentliche Problem ist, dass RCK beim Programmieren > floaten kann und damit das SR Daten übernehmen kann. Bei SCK hätte dies > kein Effekt, da diese Leitung vom Programmer gesteuert wird -> dein > Pulldown wäre wirkungslos. Also du meinst der uC stellt mit RCK was an was nicht sein soll, nämlich unbekannte werte in die Ausgänge zu schreiben, ok.
Oliver Ka schrieb: > OK das klingt ziemlich komfortabel aber woher weiß ich dann sicher > welcher Ausgang gerade high ist? Man könnte natürlich auch die Verbindung zwischen Ausgang 8 und Eingang weglassen und nach jedem Durchlauf die neue 1 per µC setzen. Nach 8 mal Schieben ist das SR dann geleert.
Oliver Ka schrieb: > also du meintest den 74HC237 nehme ich an. ja. Oliver Ka schrieb: > Mit latch meinst du die Übernahme der Werte im seriellen "Pfad" in die > Parallelen Ausgänge? genau. > Was hätte ich denn für einen Vorteil davon? Das hab ich auch nicht verstanden. Generell seh ich keinen Sinn in dem, was Samuel K. hier vorhat... Oliver Ka schrieb: > Wäre ein Pull-down an SCK auch sinnvoll? Dort muss ja ein High-Signal Nein. Die Leitung darf ruhig zappeln. Und das macht sie ja auch, weil das eine Signalleitung vom Programmer ist. An den Ausgängen der Register kommt solange nichts vom Eingang an, wie RCK high ist. Dazu ist das gut. > Wie groß sollte ich denn die pull-ups und downs dimensionieren? Da fehlt > mir ehrlich gesagt ein wenig der Durchblick :S 100k. Punkt. =) > Je kleiner der Widerstand desto schneller kann ich den Bus betreiben > habe ich Recht? Ja, bei I2C. Siehe Datenblatt. Die Geschwindigkeit hängt hier deswegen vom Widerstand ab, weil beim I2C-Bus nur nach Masse geschaltet wird. Beim Übergang Masse->Vcc müssen dann durch die Pullups parasitäre Kapazitäten in den ICs geladen werden. Du hast also ein RC-Glied. Wenn ein Bit also nicht wesentlich länger dauert als das Laden der Kapazitäten, hast du keine sauberen Bits mehr. Hier ein Bild vom Übergang. http://2.bp.blogspot.com/-P63wNKkrpcI/TgJbaBQHDgI/AAAAAAAAAE0/st_TZYD4DGw/s1600/I2C.jpg Hier (oberes Signal) siehst einen Grenzwertigen Aufbau. http://static.rcgroups.net/forums/attachments/2/8/4/8/5/8/a3603975-70-I2C%2010k%20pull-up.jpg Samuel K. schrieb: > Wäre dann nicht eher ein Schieberegister ohne Latch geeignet ??? definitiv nicht. Samuel K. schrieb: > Man verbindet den 8. Ausgang des SR mit dem Eingang (evtl. über einen > Widerstand), so dass eine herausgeschobene 1 wieder eine 1 hinein > schiebt. ??? Zeilenweiser Multiplex wäre bei dem Aufbau wesentlich sinnvoller!
Samuel K. schrieb: > Man könnte natürlich auch die Verbindung zwischen Ausgang 8 und Eingang > weglassen und nach jedem Durchlauf die neue 1 per µC setzen. Nach 8 mal > Schieben ist das SR dann geleert. Das wäre natürlich auch möglich. Ich habe jetzt mal den Schaltplan erweitert um die beiden möglichkeiten ohen sie anzuschließen, vermutlich ein fauxpas ;-) Ausserdem geändert: - Batteriepfad R um faktor 10 erhöht und Mosfet entfernt. - Kondensator bei ISP 6-Pol stecker eingefügt (richtig?). - LED zur Batt-Status Anzeige eingefügt. - Pull-Ups und Pull-downs auf 47k erhöht. - Widerstände zur Netzteilerkennung auf 40k und 200k verdoppelt. - Pull-Down bei den Shift-Registern eingefügt (Anschluss "G"). - Spannungsversorgung der Register per Invoke eingefügt. - 74HC164 und 74HC237 eingefügt, Pull-Up und down aber keine Daten und Steuerleitungen an uC. Ich hoffe ich komme der endgültigen Schaltung dadurch einen Schritt näher.
Michael H. schrieb: > 100k. Punkt. =) ok dann werde ich das noch von 47k auf 100k ändern ;-) Michael H. schrieb: > Ja, bei I2C. Siehe Datenblatt. Dann werde ich diese wieder auf 20k verkleinern.
Oliver Ka schrieb: > Ich habe jetzt mal den Schaltplan erweitert IC4 hängt noch nicht hinter den restlichen Schieberegistern. > um die beiden möglichkeiten > ohen sie anzuschließen, vermutlich ein fauxpas ;-) Vermutlich nicht =) Solange IC4 noch "richtig" angebunden wird.
Michael H. schrieb: > IC4 hängt noch nicht hinter den restlichen Schieberegistern. Achso ja, jetzt fällts mir erst auf ;-) aber wenn ich IC4 durch 74HC164 oder wahrscheinlicher gegen 74HC237 austausche dann hau ichs doch einfach ganz aus dem Schaltplan raus oder nicht?
Oliver Ka schrieb: > dann hau ichs doch > einfach ganz aus dem Schaltplan raus oder nicht? Ja. Grade noch gesehn: der Reset-Pin am JTAG-Anschluss ist vermutlich nicht mit irgendwas sonst verbunden. Generell ist es keine gute Idee, einfach Power-Pins zu nehmen und sie umzubennen. Zum einen, weil auch beim Kopieren schon der Name verloren geht, zum anderen, weil sie die Pin-Klasse Power haben und im ERC zu Verwirrungen führen. Sicherer ist hier ein Port aus der lib frames oder einfach nur ein Label (Werkzeug label).
Michael H. schrieb: > Das hab ich auch nicht verstanden. > Generell seh ich keinen Sinn in dem, was Samuel K. hier vorhat... Ok, dann nochmal ausführlich: Michael H. schrieb: > Samuel K. schrieb: >> Wäre dann nicht eher ein Schieberegister ohne Latch geeignet > ??? > definitiv nicht. Das bezog sich auf deinen Vorschlag den 74HC237 zu nehmen. NICHT auf den Zeilentreiber. Die Idee des 237 ist es die Zeilen mit möglichst wenig Pins anzusteuern, da immer nur eine aktiv ist, geht das mit 3bits. Das geht aber auch mit nur 2 Pins: Mit einem Schieberegister ohne Latch, das eine 1 durch die 8 Ausgänge schiebt (natürlich getrennt angesteuert, ohne SPI; da man nur ein Clocksignal braucht um zu schieben.
Samuel K. schrieb: > Das bezog sich auf deinen Vorschlag den 74HC237 zu nehmen. NICHT auf den > Zeilentreiber. Aber der 237 soll der zeilentreiber sein?! Samuel K. schrieb: > Die Idee des 237 ist es die Zeilen mit möglichst wenig Pins anzusteuern, > da immer nur eine aktiv ist, geht das mit 3bits. Das geht aber auch mit > nur 2 Pins: Mit einem Schieberegister ohne Latch, das eine 1 durch die 8 > Ausgänge schiebt (natürlich getrennt angesteuert, ohne SPI; da man nur > ein Clocksignal braucht um zu schieben. Da brauch ich aber auch drei. serielles signal fuer die erste eins, clock fuer den takt und clear um die 1 evtl mal wieder zu löschen falls notwendig.
Oliver Ka schrieb: > clear um die 1 evtl mal wieder zu löschen falls > notwendig. 1. löschen braucht man eigentlich nicht 2. 8 mal schieben ohne ser. signal = löschen 3. einfacher anzusteuern, kein software 3bit zähler nötig
Samuel K. schrieb: > 2. 8 mal schieben ohne ser. signal = löschen ok wenn ich den 8. ausgang nicht an seriell IN hänge.
Oliver Ka schrieb: > Samuel K. schrieb: >> 2. 8 mal schieben ohne ser. signal = löschen > > ok wenn ich den 8. ausgang nicht an seriell IN hänge. deswegen habe ich oben evtl. mit widerstand geschrieben, denn dann kann man trotz Verbindung löschen wenn der µC das Signal auf GND zieht.
So danke euch für all die vielen Tipps und Hilfen, ich hoffe diese Version ist ohne nennenswerte Makel und ich kann ans Bestellen gehen. Oder doch noch etwas auszusetzen? Wie ich die Zeilen jetzt letztendlich ansteuere entscheide ich dann später, ich bestelle beide ICs.
Die Transistoren für die 6 Leds, brauchst du die wirklich? Der Avr kann 40mA pro Pin und maximal 100mA pro Port treiben.
Samuel K. schrieb: > Die Transistoren für die 6 Leds, brauchst du die wirklich? Der Avr kann > 40mA pro Pin und maximal 100mA pro Port treiben. Ich habs so ausgelegt das alle gleichzeitig an sein können. Auch wenns von der Logik her natürlich keine 63 Minuten gibt. Aber wenn 6 leuchten sinds am Port 6x20mA und somit über den 100mA.
Die Frage ist ob 10mA (multiplexing 1:2) nicht ausreichen würden. Außerdem ist der Vorwiderstand nicht richtig, wenn 1:2 multiplext. 5V-0.7V-3.2V ------------ = 50mA 22Ohm Die Basisvorwiderstände der Zeilentransistoren brauchst du generell nicht.
Samuel K. schrieb: > Die Basisvorwiderstände der Zeilentransistoren brauchst du generell > nicht. Aber sicher. Ist alles Emitterschaltung.
Samuel K. schrieb: > 5V-0.7V-3.2V > ------------ = 50mA > 22Ohm die 0,7V des npn hast du doch vergessen
Sorry, ich habe übersehen, dass es pnps sind. Bei könnte man sie weglassen.
Den C10 darfst Du nicht bestücken, sonst funktioniert ISP nicht.
Edi R. schrieb: > Den C10 darfst Du nicht bestücken, sonst funktioniert ISP nicht. Michael H. schrieb: > blödsinn. Was denn nun? ;-)
Edi R. schrieb: > Den C10 darfst Du nicht bestücken, sonst funktioniert ISP nicht. Er ist nicht unbedingt schön und nötig, stört aber nicht, weil schon viele diesen Fehler gemacht haben und die Programmer jetzt damit rechnen und den Reset entsprechend lang anlegen. Früher (tm) war das so, dass evtl. der Programmer nicht lange genug gewartet hat, der Kondensator nicht entladen war, und dann schon mit dem SPI-Takt herumgewackelt wurde. Denn mit einem solchen Programmer muß ja der programmierende Controller erst mal mit dem PB4 den Kondensator entladen: http://www.atmel.com/Images/doc0943.pdf Schön an diesem Kondesator ist aber, dass auf dessen Pads evtl. auch mal ein anderes Bauteil gelötet werden könnte... ;-)
Ok, wenn die Programmer inzwischen mit einem C am Reset umgehen können, nehme ich die Aussage zurück. Ich würde (und werde) trotzdem auf den C verzichten: - Im Gegensatz zu früheren Mikrocontrollern ist am Reset-Pin kein Reset-Impuls beim Power-Up erforderlich; die AVRs haben alle eine interne Resetschaltung (Power-On-Reset) - Auch gegen Störungen ist hier kein Kondensator erforderlich. Wenn der Reset-Pin nicht eine Mindestzeit lang kontinuierlich auf Low gehalten wird, wird kein Reset ausgelöst - DebugWire geht sicher nicht mit einer kapazitiven Belastung @Michael H.: "Blödsinn" ist für mich keine ausreichende Argumentation.
Also viel Danke euch allen, ich werde jetzt die Bestellung abschicken. Den C bei ISP hab ich jetzt noch entfernt wenn er sowieso zu nichts nutze ist.
Edi R. schrieb: > Ich würde (und werde) trotzdem auf den C verzichten: > - Auch gegen Störungen ist hier kein Kondensator erforderlich. Ich mache ihn aus genau diesem Grund (wieder) rein (wenn auch nur in der 10nF Variante). Aber auf keinen Fall darf der Pin einfach offen gelassen und auf den internen Pullup vertraut werden. Wenn ein Reset-Pin benötigt wird (wegen ISP) kommen zwei Bauteile da dran: ein zusätzlicher Pullup mit 4k7 und der 10nF Kondensator. Eine zuverlässige Funktion ist mir diese 2 Cent wert... ;-)
Edi R. schrieb: > @Michael H.: "Blödsinn" ist für mich keine ausreichende Argumentation. dann zeig mir einen programmer, der die 100nF nicht schnell genug leeren kann. http://www.atmel.com/Images/doc2521.pdf
Edi R. schrieb: > - Im Gegensatz zu früheren Mikrocontrollern ist am Reset-Pin kein > Reset-Impuls beim Power-Up erforderlich; die AVRs haben alle eine > interne Resetschaltung (Power-On-Reset) aus einem typ 60k pullup und parasitären kapazitäten. wenn der reset über ein paar cm leiterbahn als antenne verfügt, wünsche ich dir viel spaß in gegenwart von pwm-signalen, schaltnetzteilen, usw... > - Auch gegen Störungen ist hier kein Kondensator erforderlich. Wenn der > Reset-Pin nicht eine Mindestzeit lang kontinuierlich auf Low gehalten das war iirc EINE mikrosekunde. > wird, wird kein Reset ausgelöst > - DebugWire geht sicher nicht mit einer kapazitiven Belastung da hat die reset-leitung ja auch eine völlig andere funktion.
Lothar Miller schrieb: > Aber auf keinen Fall darf der Pin einfach offen > gelassen und auf den internen Pullup vertraut werden. Der Kondensator am Reset-Pin ist offensichtlich ein schönes Thema, um darüber zu diskutieren, aber in diesem Punkt bin ich völlig Deiner Meinung. Ein externer Pullup am Reseteingang muss sein. Michael H. schrieb: > Edi R. schrieb: >> - Im Gegensatz zu früheren Mikrocontrollern ist am Reset-Pin kein >> Reset-Impuls beim Power-Up erforderlich; die AVRs haben alle eine >> interne Resetschaltung (Power-On-Reset) > aus einem typ 60k pullup und parasitären kapazitäten. Nein, völlig anders. Siehe Datenblatt des ATmega32, Seite 36, "Power-On Reset": >A Power-on Reset (POR) pulse is generated by an On-chip detection >circuit. The detection level is defined in Table 15. The POR is activated >whenever VCC is below the detection level. The POR circuit can be used to >trigger the Start-up Reset, as well as to detect a failure in supply >voltage. > >A Power-on Reset (POR) circuit ensures that the device is reset from >Power-on. Reaching the Power-on Reset threshold voltage invokes the delay >counter, which determines how long the device is kept in RESET after VCC >rise. The RESET signal is activated again, without any delay, when VCC >decreases below the detection level. Aus dem Abschnitt "Reset Sources" geht hervor, dass der Power-On Reset und der Reset-Eingang nichts miteinander zu tun haben (natürlich außer dass sie alle einen Reset auslösen): >The ATmega32 has five sources of reset: >• Power-on Reset. The MCU is reset when the supply voltage is below the >Power-on Reset threshold (VPOT). >• External Reset. The MCU is reset when a low level is present on the >RESET pin for longer than the minimum pulse length. >... (es folgen noch Watchdog Reset, Brown-Out Reset und JTAG AVR Reset.) Nota bene ist es ja auch möglich, die Resetfunktion des Resetpins abzuschalten, und trotzdem werden saubere Power-On-Resets durchgeführt. Michael H. schrieb: >> - Auch gegen Störungen ist hier kein Kondensator erforderlich. Wenn der >> Reset-Pin nicht eine Mindestzeit lang kontinuierlich auf Low gehalten > das war iirc EINE mikrosekunde. Jein, 1,5 µs, aber Du hast recht, sehr viel ist das nicht. Aber wenn ich eine Schaltung für stark gestörte Umgebung mache, müssen sowieso noch andere Maßnahmen getroffen werden. Mit dem Reset-Eingang habe ich jedenfalls noch keine bösen Überraschungen erlebt (mit Ausnahme beim fehlenden externen Pullup). Michael H. schrieb: > Edi R. schrieb: >> @Michael H.: "Blödsinn" ist für mich keine ausreichende Argumentation. > dann zeig mir einen programmer, der die 100nF nicht schnell genug leeren > kann. Das Argument stammt aber nicht von Dir, sondern von Lothar Miller. Aber ich habe im Beitrag "Re: Binär-Uhr hoffentlich finale Schaltung" ja schon eingelenkt.
Hallo, wollte mal nachfragen, ob die Schaltung letztendlich auch wie gewünscht funktioniert hat und ob die Chance besteht, dass du den absolut finalen Schaltplan hier nochmal reinstellen könntest. Bin selbst auf der Suche nach ner geeigneten Schaltung für mich und deine klingt sehr interessant. Da ich noch ganz am Anfang meiner Ausbildung bin, kenne ich mich mit der Programmierung überhaupt noch nicht aus. Könntest du daher die fertigen Code-Listen vielleicht mit posten ? Wäre super. Vielen, vielen Dank schonmal
Hi, ich bin gerade fertig geworden mit löten und werde jetzt mit der Programmierung beginnen. Bin leider etwas im Stress aber ich werde mich wieder melden wenn es funktioniert!
So ich habe die Schaltung nun aufgebaut und schon teile programiert. die binäre ausgabe funktioniert. Die Matrix will aber nicht leuchten. Die Shiftregister werden beschrieben, die spannung an den ausgängen stimmt. das problem sind die 517 transistoren die einfach nicht durchschalten wollen. 5V am ausgang der BIN-BCD wandlers auf 13k widerstände an die basis der 517er. Spannung CE 2,7V, BE 0,7V. Widerstand abgezwackt und strom gemessen --> 0mA. aber das mag vllt am multimeter liegen, ist ein günstiges. Ich verstehe nicht wo das problem liegt. Laut datenblatt liegt die CEsat bei 1V max. die BEsat 1,5Vtyp 2V max. schaltet der transitor nicht komplett durch? bleibt für die LEDs nicht genug spannung? theoretisch müsste es doch reichen. rechnerisch beträgt der basis strom 3,8mA. Ich bin echt verzweifelt...
Oliver Ka schrieb: > 13k widerstände an die basis ... > rechnerisch beträgt > der basis strom 3,8mA Bei stolzen 50V Spannung. =) Wie sieht denn dein endgültiger Schaltplan aus? Ist das binaer_uhr4.png? Oliver Ka schrieb: > BE 0,7V. Passt nicht zu einem Darlingon-Transistor wie dem BC517. Hier müsstest du Werte um die 1,3V ablesen. Ist der vielleicht verkehrtrum eingelötet? Am besten mit dem Datenblatt des Herstellers abgleichen. Der Hersteller ist am Logo auf dem Transistor selbst zu erkennen.
Michael H. schrieb: > Bei stolzen 50V Spannung. =) stimmt, es wären 0,3mA. sollte aber reichen oder? ich habe statt 2x7 517 jetzt 3x7 517 eingebaut. sonst ist die matrix identisch. Und ich idiot habe die transistoren tatsächlich falsch herum eingelötet... Ich hab gedacht die Sicht im DB ist von oben, dabei ist sie von unten :/. So was dummes. Danke für deine Hilfe ich werde jetzt probeweiße eine reihe umlöten und mich dann nochmal melden.
So, nun ist es vollbracht das projekt ist beendet. Ich möchte mich nochmal für eure Hilfe bedanken ohne die es sicherlich nicht so sauber abgelaufen wäre! Den fertigen Schaltplan hab ich mit hochgeladen
Hallo! Kannst Du den Grund nennen, weshalb die Transistoren für die Stunden- und Minuten-LEDs doppelt sind? Q43 mit Q58, Q51 mit Q59, Q52 mit Q60, ...Q56 mit Q62
Route_66 schrieb: > Hallo! > Kannst Du den Grund nennen, weshalb die Transistoren für die Stunden- > und Minuten-LEDs doppelt sind? > Q43 mit Q58, Q51 mit Q59, Q52 mit Q60, ...Q56 mit Q62 Nein kann ich nicht, das ist mir auch aufgefallen allerdings waren sie da schon verlötet ;-) Michael H. schrieb: > Gratuliere! > Gibts denn Bilder von der Uhr selbst? Ja gibt es, es gibt eigentlich auch eine website auf der man das Projekt anschaun kann aber die ist derzeit nicht verfügbar. Ich poste mal ein zwei bilder der Uhr dazu.
Oliver Ka schrieb: > Ich poste mal ein > zwei bilder der Uhr dazu. Respekt. Sieht nach einer Heidenarbeit aus! Nach dem Bild mit der Elektronik hätte ich wirklich keine so ansehnliche Front erwartet =) Wie habt ihr denn die satinierte Front gemacht? Sind die Zahlen nur auf dem Photo retuschiert oder sind die wirklich auf der Front?
Michael H. schrieb: > Respekt. Sieht nach einer Heidenarbeit aus! > Nach dem Bild mit der Elektronik hätte ich wirklich keine so ansehnliche > Front erwartet =) Danke :-) Michael H. schrieb: > Wie habt ihr denn die satinierte Front gemacht? > Sind die Zahlen nur auf dem Photo retuschiert oder sind die wirklich auf > der Front? Also es war ja eine Einzelarbeit. Wollte zuerst eine plexi nehmen aber beim Rahmen war schon eine Glasplatte dabei die ich mit 7 oder 8 Lagen milchiger Folie beklebt habe.
Sorry vergessen, die Zahlen sind auf der Uhr selbst aufgeklebt. Irgendwie hat das mit der Perspektive nicht so hingehauen und deswegen sehen sie wie reinbearbeitet aus.
Wenn interesse besteht kann ich den Quell-Code hochladen. Sollte ich das in diesem Thread oder in der Codesammlung tun? Immerhin ist es ja ein sehr spezielles Programm und kein allgemeiner Code.
Oliver Ka schrieb: > Wenn interesse besteht kann ich den Quell-Code hochladen. Sollte > ich das > in diesem Thread oder in der Codesammlung tun? Immerhin ist es ja ein > sehr spezielles Programm und kein allgemeiner Code. Hallo Oliver, es wäre super wenn du den Quell-Code hier hochladen könntest, wäre sehr interessant. Liebe Grüße Fabian
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.