hallo habe mir für dne anfang glaube cih ziemlich viel vorgenommen. Ich wär euch dankbar wenn ihr mal über den Schaltplan schaut und mir sagt ob da fehler drin sind. Danke euch.
Manuel Schneider schrieb: > hallo > > habe mir für dne anfang glaube cih ziemlich viel vorgenommen. Ich wär > euch dankbar wenn ihr mal über den Schaltplan schaut und mir sagt ob da > fehler drin sind. 1. http://www.mikrocontroller.net/articles/Netiquette es ist eine zimeliche Unverschämtheit und Anzeichen für geringe Wertschätzung der Forenarbeit wenn man sich derart wenig Mühe bei Rechtschreibung, etc. gibt. 2. Ich glaube mich erinnern zu können, das wir dir das schonmal gesagt haben (oder?!): Die Entprellung der Tasten macht man in der Software. Glaube uns das doch bitte. 3. 32kHz für den Quarz sind für einen Anfänger in meinen Augen zu wenig. Den Uhrenquarz als Taktquelle für einen Timer verwenden. Min. 4MHz als Primärtakt. 4. Warum I2C Pegelwandler? DOGM-Display und Vcc auf 3,3V absenken. http://www.mikrocontroller.net/articles/DOGMxxx_LCD_Routinen Spart zusätzlich Spannungwandler + Pegelwandler
Weg mit den Tasten-Schmitttriggereien. Sowas ist nur für Leute, die zeigen wollen, dass sie nicht wissen, wie man per Software entprellt. Es ist Null Problem, Tasten direkt an einen µC zu hängen. http://www.mikrocontroller.net/articles/Entprellung
Wie soll man die Schaltung auf Richtigkeit durchsehen, wenn bei div. ICs/Baugruppen (I2C-Pegelwandler, LED-Beleuchtung, LCD-Display) keine Typenbezeichnung dransteht? Das Hühnerfutter bei den Köpfen hatten wir vor ein paar Tagen ja schon.
Vuvuzelatus schrieb: > Es ist Null Problem, Tasten direkt an einen µC zu hängen. Bei 32 kHz Systemtakt schon...
Uhu Uhuhu schrieb: > Vuvuzelatus schrieb: >> Es ist Null Problem, Tasten direkt an einen µC zu hängen. > > Bei 32 kHz Systemtakt schon... Achwas das ist doch Unsinn. Für so eine Anwendung reicht eine Einfachst-Entprellung mittels 20-25ms Delay aus ... Das einzige Problem wird das LCD bei 32kHz wenn man da nicht genügend Erfahrung hat.
Lehrmann Michael schrieb: > Achwas das ist doch Unsinn. Man muß eben einen Unsinn mit einem anderen kompensieren ;-)
Okay. Momäääänt, moment! Mir ist da grad, wenn ich mich nicht irre, ein riesen Fehler aufgefallen. Systemclock sollte eig 16Mhz sein. Aber offensichtlich habe ich das DS nicht genügend studiert. TOSC ist glaube ich das Stichwort. Aber mehr kann ich dazu im Moment auch nicht sagen. Ich muss selbst nachschaun. Wollt mich nur mal meldent damit ihr nicht komplett im Dunkeln wühlt^^. Edit: Auslöser war also der Abschnitt Low-frequency Crystal Oscillator im DS: "To use a 32.768 kHz watch crystal as the clock *source* for *the* device, the Low-frequency Crystal Oscillator must be selected by setting the CKSEL fuses to “1001”. The crystal should be connected as shown in Figure 12." Und in Figure 12 steht XTAL. Naja ich hab nicht daran geglaubt das tatsächlich jemand den Mega mit 32KHz laufen lassen will und dachte mir, dass der Mega den XTAL dann als asynchronen Zeitgeber nutzt. Mein Fehler.
Jetz muss ich noch kurz was zu den vorigen posts sagen: > 1. http://www.mikrocontroller.net/articles/Netiquette es ist eine > zimeliche Unverschämtheit und Anzeichen für geringe Wertschätzung der > Forenarbeit wenn man sich derart wenig Mühe bei Rechtschreibung, etc. > gibt. Hast Recht war nicht gerade höflich. Ich hatte es etwas eilig. > 2. Ich glaube mich erinnern zu können, das wir dir das schonmal gesagt > haben (oder?!): Die Entprellung der Tasten macht man in der Software. > Glaube uns das doch bitte. Ja aber wenn ich es doch schon in Hardware gelöst habe dann muss ich mich nicht mehr drum kümmern. Dazu muss ich noch sagen, dass, solange auf der Europlatine noch Platz ist, finde ich das die elegantere Lösung. > 3. 32kHz für den Quarz sind für einen Anfänger in meinen Augen zu wenig. > Den Uhrenquarz als Taktquelle für einen Timer verwenden. Min. 4MHz als > Primärtakt. Wie erwähnt war das mein Fehler. Natürlich sollte der Systemtakt nicht auf 32KHz laufen. > 4. Warum I2C Pegelwandler? DOGM-Display und Vcc auf 3,3V absenken. > http://www.mikrocontroller.net/articles/DOGMxxx_LCD_Routinen > Spart zusätzlich Spannungwandler + Pegelwandler Ja, aber 1. bin ich dessen nicht mächtig oder es kostet mich wieder ca 20 - 30 Stunden mehr. Und 2. bekomme ich den Pegelwandler geschenkt - find ich ein nettes Feature - und auf den Spannungsregler kann ich ja nicht verzichten, weil die 5V brauche ich ja zumindest für das Backlight. DS: http://www.yaoyu-lcm.com/english/admin/Software/20086171462569145.pdf . 7,5V brauche weil vor dem TLC je 2 Leds in Reihe hängen. 3. mit 3,3V komme ihc nicht auf 16MHz Also gut ich will eigentlich 16MHz nutzen, nur bisher dachte ich noch dass der Mega intern 16 Mhz macht. Allerdings habe ich jetz gelesen, dass der halt max 8MHz macht. Kann ich da jetz jeden x-beliebigen Quarz nutzen? http://www.pollin.de/shop/t/ODE4OTA5OTk-/Bauelemente_Bauteile/Passive_Bauelemente/Quarze_Oszillatoren/Quarze_und_Quarzoszillatoren.html?ts=7 z.B.? aber da ist kein Datenblatt dabei... Sind die Kondesatoren die ich brauche nicht vom Quarz abhängig? Ohne DS bin ich da ja jetz ziemlich angeschmiert... Muss ich überhaupt einen Uhrenquarz verbauen? Ich habe in einem anderen Thread gelesen, dass man eine Uhr mit dem Systemtakt genauer hinbekommt. Dem kann ich aber nur bedingt glauben schenken, da der 16MHz-Quarz ca 50ppm, (habe ich aus einem anderen DS) der Uhrenquarz aber nur 10ppm Fehlerrate hat und dazu noch mit einer niedrigeren frequenz läuft.
Manuel Schneider schrieb: > Muss ich überhaupt einen Uhrenquarz verbauen? Ich habe in einem anderen > Thread gelesen, dass man eine Uhr mit dem Systemtakt genauer hinbekommt. > Dem kann ich aber nur bedingt glauben schenken, da der 16MHz-Quarz ca > 50ppm, (habe ich aus einem anderen DS) der Uhrenquarz aber nur 10ppm > Fehlerrate hat und dazu noch mit einer niedrigeren frequenz läuft. Nö, Du hast doch einen DCF-Empfänger vorgesehen. Der reicht zusammen mit dem quarzbasierten Systemtakt völlig aus. http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC
Manuel Schneider schrieb: > Ja aber wenn ich es doch schon in Hardware gelöst habe dann muss ich > mich nicht mehr drum kümmern. Dazu muss ich noch sagen, dass, solange > auf der Europlatine noch Platz ist, finde ich das die elegantere Lösung. Wenn du unbedingt die Europlatine auffüllen mußt, hast du natürlich Recht. Andererseits gibt es die tollsten fertigen Entprellroutinen, so dass du dir die Zeit zum Auf-/Einlöten von dem ganzen Tüddelkram einfach sparen könntest.
nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die Displaybeleuchtung vergessen habe. I_max ist 480mA. Meint ihr es ist okay wenn ich die Anode direkt an 5V anschließe und die Kathode über einen BC818 gegen Masse schalte? Ich tu mich schwer Trasistoren zu verstehen also wär es nett wenn ich mir sagt ob folgendes richtig ist. Dem DS http://www.pollin.de/shop/downloads/D130821D.PDF entnehme ich dass (zumindest für den BC817) bei einem Collector Current (zu schaltender Strom?) von 480 mA Current Gain (Verstärkungsfaktor?) noch ca 150x ist. Also brauche ich ca 3 mA zum schalten, oder? Nach URI sind das bei 5V 1,6kOhm an der Base. Richtig? Hat ein Transistor auch so etwas wie einen Widerstand den ich bei berechnen des Schaltstromes berücksichtigen muss?
BITTE DATENBLATT LESEN! Wenn die Beleuchtung eine LED ist geht sie vermutlich kaputt, wenn du sie zwischen VCC, Transistor, Masse hängst
Manuel Schneider schrieb: > nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die > Displaybeleuchtung vergessen habe. I_max ist 480mA. > > Meint ihr es ist okay wenn ich die Anode direkt an 5V anschließe und die > Kathode über einen BC818 gegen Masse schalte? Wieviel Spannung benötigt das Display denn dabei? Wieviel bleibt dann am Transistor über? Welche Leistung bleibt am Transistor dabei hängen? Verträgt der das? > Ich tu mich schwer Trasistoren zu verstehen also wär es nett wenn ich > mir sagt ob folgendes richtig ist. > > Dem DS http://www.pollin.de/shop/downloads/D130821D.PDF entnehme ich > dass (zumindest für den BC817) bei einem Collector Current (zu > schaltender Strom?) von 480 mA Current Gain (Verstärkungsfaktor?) noch > ca 150x ist. > Also brauche ich ca 3 mA zum schalten, oder? Ja, 3.2mA - solange der Transistor kalt bleibt. > Nach URI sind das bei 5V 1,6kOhm an der Base. Richtig? 1,3kΩ > Hat ein Transistor auch so etwas wie einen Widerstand den ich bei > berechnen des Schaltstromes berücksichtigen muss? Naja, wenn Du einen festen Strom definierst, ist der Widerstand recht hoch. Spannungsquellen sind niederohmig. Schalte zum Backlight lieber einen passenden Widerstand in Reihe, den Transistor dazu und diesen dann voll durchsteuern. Mit 1kΩ oder weniger an der Basis. aaaaa schrieb: > Wenn die Beleuchtung eine LED ist geht sie vermutlich kaputt, wenn du > sie zwischen VCC, Transistor, Masse hängst Nicht wenn man den Transistor als Stromquelle betreibt. Allerdings wird das, so wie er sich das dachte nichts. Gruß Jobst
Manuel Schneider schrieb: > nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die > Displaybeleuchtung vergessen habe. I_max ist 480mA. Sicher? Hört sich etwas viel an. Manuel Schneider schrieb: > Meint ihr es ist okay wenn ich die Anode direkt an 5V anschließe und die > Kathode über einen BC818 gegen Masse schalte? Auf gar keinen Fall. Verwende einen Vorwiderstand. Vorwärtsspannung (auch Durchlassspannung genannt) des Display aus dem Datenblatt ermitteln und dann diesen berechnen. Und erarbeite dir bitte mal bitte die nötigen Grundlagen: http://www.mikrocontroller.net/articles/LED http://www.elektronik-kompendium.de/sites/bau/0201291.htm http://www.elektronik-kompendium.de/sites/slt/0208031.htm
Manuel Schneider schrieb: > nabend. Beim layouten ist mir gerade aufgefallen das ich wohl die > Displaybeleuchtung vergessen habe. I_max ist 480mA. Wo hast du diesen Wert für I_max her? Das ist doch keine Heizung. Im ganzen Thread taucht leider keine Angabe zum Display Typ auf. Die üblichen 2x16 LCDs haben LEDs als Hintergrundbeleuchtung mit typisch 20 mA IF. Schon ein paar mA reichen normalerweise, d.h. das geht ohne Treiber. Die brauchen unbedingt einen Vorwiderstand, evtl. ist der bereits auf dem Display-Modul vorgesehen/vorhanden oder mit 0 Ohm bestückt. Datenblatt lesen und nachmessen! Das LCD kannst du wahrscheinlich auch im 4-Bit Modus betreiben und dann noch vier I/O-Pins am Prozessor sparen. MfG
Ist die Verschaltung allgemein okay so? > Wieviel Spannung benötigt das Display denn dabei? Wieviel bleibt dann am > Transistor über? Welche Leistung bleibt am Transistor dabei hängen? > Verträgt der das? Ich werde aus dem Datenblatt( http://www.yaoyu-lcm.com/english/admin/Software/20086171462569145.pdf ) nicht schlau. Power supply for backlight 3.0 V Forward Current 480mA Forward Voltage 4.2V (typ.) Was heißt das für mich? >Nicht wenn man den Transistor als Stromquelle betreibt. Allerdings wird >das, so wie er sich das dachte nichts. Was ist falsch daran. Allgemein die Schaltung oder fehlen irgendwo Bauteile. Also soll der Transistor vor das LCD, oder wie? So dass ich die Stromzufuhr regle und nicht das abfließen?
Sorry Bild vergessen. Bild einfügen geht beim bearbeiten nicht.
Werd auch mal meinen Senf dazu geben, da ich momentan an einem vergleichbaren Projekt arbeite. TIPP 1: 16Fxxxx Pics sind zu klein !!! da reicht bei der komplexität die Stack nicht aus. das musste ich leider schmerzvoll lernen TIPP 2: Die Tasten sollte man per PortB-Change interrupt abfangen... Habe das vorher einfach per PortPin Status abfrage innerhalb der main-schleife gemacht, das bei steigendem Quellcode und Berechnungsaufwand dazu führte, das die taste bis zu 0,5s gedrückt werden musste, bis was passiert TIPP 3: wenn du komfort haben möchtest, dann kann man noch einen DCF77 empfänger anschließen, um die akt. Zeit empfangen und nutzen zu können. Ich hab das z.b. um licht und heizung temp & zeitgesteuert schalten zu lassen... in diesem fall solltest du mit dem gedanken spielen, einen 40pin'er zu nutzen, um freiraum bei der gestaltung zu haben TIPP 4: Taktquelle von 20MHz ... je komplexer das ganze wird, desto langsamer wird das teil in der abarbeitung .............................................. Mein Projekt sieht momentan so aus. - DCD77 Empfänger für Uhtzeit - 4 Tasten für Eingabe (schnelltasten /menuführung) - 3 seperate Temp.Sensoren um an 3. verschied Orten messen zu können - LCD Display (4x20) (grafik wäre mir lieber) um Temp und zeit anzeigen zu lassen - 5 Ausgänge für Lampen/Thermometer => Über SolidState Relais - LCD Backlight Steuerung (zeitabhängig) - Configuration der Schaltzeiten und Schalt-Temp's per Software (Menu) - Speicherung der Settings im Internen eeprom - Datenlogger für Temps (ein sensor = Außentemp)
> TIPP 1: > 16Fxxxx Pics sind zu klein !!! da reicht bei der komplexität die Stack > nicht aus. das musste ich leider schmerzvoll lernen Hmm kenne die Daten nicht und kann deshalb nicht vergleichen. Ich hoffe der Mega32 reicht aus. Ich dachte anfangs er sei zu groß :-D > TIPP 2: > Die Tasten sollte man per PortB-Change interrupt abfangen... Habe das > vorher einfach per PortPin Status abfrage innerhalb der main-schleife > gemacht, das bei steigendem Quellcode und Berechnungsaufwand dazu > führte, das die taste bis zu 0,5s gedrückt werden musste, bis was > passiert Ich habe gerade mal die Vektoren angeschaut bei AVR gibt es sowas scheinbar nicht. Aber ich habe dei Knöpfe extra auf die höherwertiuegn Bits gelegt damit ich nachher nur noch abfragen muss, ob der PORT > 32 ist. > TIPP 3: > wenn du komfort haben möchtest, dann kann man noch einen DCF77 empfänger > anschließen, um die akt. Zeit empfangen und nutzen zu können. Ich hab > das z.b. um licht und heizung temp & zeitgesteuert schalten zu lassen... > in diesem fall solltest du mit dem gedanken spielen, einen 40pin'er zu > nutzen, um freiraum bei der gestaltung zu haben DCF ist geplant:-D. > TIPP 4: Taktquelle von 20MHz ... je komplexer das ganze wird, desto > langsamer wird das teil in der abarbeitung ich kann leider 16MHz max. Aber ich hoffe es reicht. Ich habe auch nicht all zu viel rechenintensiven Code. Die Sensoren können ohnehin maximal 2 Mal in der Sekund messen wegen der Eigenerhitzung. > Mein Projekt sieht momentan so aus. > - DCD77 Empfänger für Uhtzeit > - 4 Tasten für Eingabe (schnelltasten /menuführung) > - 3 seperate Temp.Sensoren um an 3. verschied Orten messen zu können > - LCD Display (4x20) (grafik wäre mir lieber) um Temp und zeit anzeigen > zu lassen > - 5 Ausgänge für Lampen/Thermometer => Über SolidState Relais > - LCD Backlight Steuerung (zeitabhängig) > - Configuration der Schaltzeiten und Schalt-Temp's per Software (Menu) > - Speicherung der Settings im Internen eeprom > - Datenlogger für Temps (ein sensor = Außentemp) Witzig, genau meine Peripherie! Aber cih muss ganz erlich sagen ich kann mir nicht vorstellen, dass so eine Messstation wirklich so viel Ressourcen frisst. Schau mal ob sich dein Code optimieren lässt. Auf die schnelle fällt mir da I²C-Bus ein. Die Schnipsel im I-Net kannst du vergessen. Die verbringen 99% mit Busy-Wating. Ich habe mir eine eigene Interrupt gesteuerte I²C Routine geschrieben und bin pro Messung von 66ms (Ziemlich genau das was der SHT25 für die Messung braucht) auf 1 ms effektiv genutzte Zeit, die ich in der Messroutine verbringe, gekommen. Zeitrauber und auch noch Deadlockfalle ist halt:
1 | while(!TWINT){ |
2 | ; |
3 | } |
Kein Spaß genau das stand in jedem TWI/I²C-Schnipsel den ich fand. Für mich der Coding-Fauxpas schlechthin. grüße
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.