Hallo zusammen, ich bin dabei, mir eine kleine LED-Leuchtensteuerung zu basteln. Anforderungsprofil: - 12 Kanal Soft-PWM o Steuerung von LEDs o bis zu 1A / Kanal o bis zu 6A gesamt o Teilbestückung (weniger Kanäle) möglich - ISP-Schnittstelle, Doppelnutzung für Bedienelemente (Taster, Drehencoder) möglich - Serielle Schnittstelle o RS232 mit TTL-Pegeln o Bestückungsvariante RS485 (1 zusätzlicher Portpin erforderlich) - Temperaturüberwachung mit DS1820 (sicher ist sicher) - Spannungsüberwachung, um beim Einbruch der Versorgung noch schnell den aktuellen Betriebszustand ins EEPROM zu schreiben - Bedienbarkeit über Infrarot-FB mit TSOP1736 Mein aktueller Schaltplanentwurf ist im Anhang - habt ihr Feedback? Gruß & Dank Michael
Der Schaltplan gibt da soviel nicht her. Wichtiger scheinen mir hier die logistischen Herausforderungen des handlings der Bestückung. RS485 hat minter andere Pegel, als RS232. Entscheidend ist, dass das Layout das kann. 6 A sind nicht ohne, wobei ich nicht weiss, ob der Wandler das kann.
Schaut mir ganz gut aus! Pull-Down-Widerstände am Gate der MOSFETs wären nicht schlecht, damit die einen definierten Level haben, wenn der uC gerade nicht läuft (Startup). Und manche machen 10 oder 100 Ohm Widerstande vor's Gate.
Ex-perte schrieb: > Der Schaltplan gibt da soviel nicht her. Wichtiger scheinen mir hier die > logistischen Herausforderungen des handlings der Bestückung. RS485 hat > minter andere Pegel, als RS232. Entscheidend ist, dass das Layout das > kann. 6 A sind nicht ohne, wobei ich nicht weiss, ob der Wandler das > kann. Die 6A kommen ja über die 12V, nicht vom Wandler/5V.
Michael Graf schrieb: > - habt ihr Feedback? Mein Vorschlag, um nicht so viele IO-Pins zu verbrauchen. http://www.mino-elektronik.de/AVR_PWM_64/AVR_PWM_64.htm
> Doppelnutzung für Bedienelemente (Taster, Drehencoder)
Warum willst du die unbedingt mit externem Pullup machen?
Gerade an den ISP Pins würde ich da nichts ranbauen, was mir unter
Umständen das ISP beeinflusst.
Die Taster an sich sind ja kein Problem. Während eines Brennvorgangs
muss man ja nicht unbedingt mit den Tastern spielen. Aber als Pullup
kann das Programm genausogut auch die internen Pullups während des
Programmlaufs aktivieren.
Pull-Downs an die Gates, sonst leuchten die LEDs während Init / Programmierung. /RE und DE zusammenlegen und an einen Pin hängen, dann kannst Du die Datenrichtung vom µC aus umschalten. Wenn Du das brauchen solltest. Die 10k Pull-Ups am SPI stören nicht, wenn Du nicht gerade mit Ponyprog und einem RS232 Dongle programmierst. Ich lege prinzipiell einen C 10n zwischen Reset und GND. Der TSOP möchte noch einen C zwischen Vss und GND, siehe Datenblatt.
Danke für die vielen Rückmeldungen! Conny G. schrieb: > Pull-Down-Widerstände am Gate der MOSFETs wären nicht schlecht, damit > die einen definierten Level haben, wenn der uC gerade nicht läuft > (Startup). Werden ergänzt. Karl Heinz schrieb: >> Doppelnutzung für Bedienelemente (Taster, Drehencoder) > > Warum willst du die unbedingt mit externem Pullup machen? > Gerade an den ISP Pins würde ich da nichts ranbauen, was mir unter > Umständen das ISP beeinflusst. > Die Taster an sich sind ja kein Problem. Während eines Brennvorgangs > muss man ja nicht unbedingt mit den Tastern spielen. Aber als Pullup > kann das Programm genausogut auch die internen Pullups während des > Programmlaufs aktivieren. Die Idee war, die Bedienelemente (die eh extern sind) über die ISP-Buchse anzuschließen. Sorry, wenn das aus dem Schaltplan so nicht herauskam -- ein kleines Kästchen um den Teil wäre wohl gut... Es ist also entweder der Programmer oder die Bedienelemente mit Pull-Ups angeschlossen, aber nie beides gleichzeitig. Timm Thaler schrieb: > Pull-Downs an die Gates, sonst leuchten die LEDs während Init / > Programmierung. Werden ergänzt, s.o. > /RE und DE zusammenlegen und an einen Pin hängen, dann kannst Du die > Datenrichtung vom µC aus umschalten. Wenn Du das brauchen solltest. Datenrichtungsumschaltung macht doch nur /DE -- und für den müsste man bei Bedarf dann einen Portpin opfern, für die ad-hoc-Verdrahtung gibt es PAD1. /RE steuert nur, ob an RO ein Signal rauskommt, der kann m.E. permanent auf Masse. > Ich lege prinzipiell einen C 10n zwischen Reset und GND. Guter Punkt, danke! Wird ergänzt. > Der TSOP möchte noch einen C zwischen Vss und GND, siehe Datenblatt. Hat er, ist C8. Ich habe die Stützkondensatoren zur Spannungsversorgung weggeräumt. Gruß & Dank Michael
Michael Graf schrieb: > Hat er, ist C8. Ich habe die Stützkondensatoren zur Spannungsversorgung > weggeräumt. Der muss aber hinter dern R direkt an den TSOP, min. 100n, eher größer. Michael Graf schrieb: > /RE steuert nur, ob an RO ein Signal rauskommt, der kann m.E. permanent > auf Masse. Dann empfängst Du aber am Rx immer Deine selbst gesendeten Signale mit. Kann störne, muss aber nicht.
Timm Thaler schrieb: > Dann empfängst Du aber am Rx immer Deine selbst gesendeten Signale mit. > Kann störne, muss aber nicht. Das will ich auch - wie soll ich sonst prüfen, dass nicht parallel jemand anderes auf dem Bus unterwegs war?
Anbei der überarbeitete Schaltplan: - Pull-Down-Widerstände ergänzt - Kondensator von /RESET nach Masse ergänzt - Kondensator am TSOP hinter den Widerstand verschoben Layout ist in Arbeit. Nochmal Danke an alle, die Feedback gegeben haben!
Da sind gar keine Pulldowns an den MOSFETs, richtige Grafik? Ach sorry, das sind die Widerstandsarrays.
So, hier ist mein Layout-Versuch. Vielleicht sollte ich dazu sagen, dass es erst mein zweites Layout ist -- für konstruktive Kritik bin ich also dankbar.
Michael Graf schrieb: > So, hier ist mein Layout-Versuch. Vielleicht sollte ich dazu sagen, dass > es erst mein zweites Layout ist -- für konstruktive Kritik bin ich also > dankbar. Das ist eine 5/2.1mm Buchse für den eingehenden Strom? Die ist nur für 2.5 A geeignet lt dem erstbesten Datenblatt, das ich gerade gefunden habe. Und die Leiterbahnen zu den FETs sollten ca 100mil breit sein: http://www.mikrocontroller.net/articles/Leiterbahnbreite Sonst ist es doch schon mal ganz schick.
Michael Graf schrieb: > So, hier ist mein Layout-Versuch. Vielleicht sollte ich dazu > sagen, dass > es erst mein zweites Layout ist -- für konstruktive Kritik bin ich also > dankbar. Die Gate Ansteurungen von der Masse Leitung weg, da könnte was einkoppeln. Und die Gates mit sinnvollen R auf Masse ziehen.
Conny G. schrieb: > Das ist eine 5/2.1mm Buchse für den eingehenden Strom? Ja. > Die ist nur für 2.5 A geeignet lt dem erstbesten Datenblatt, das ich > gerade gefunden habe. ... und hier liegen zwei Netzteile 12V/5A "für LED-Beleuchtung", mit "China Export"-Siegel und just diesen Steckern... Man lernt... ;-) Ich habe Platz für eine Schraubklemme (geeignet für 6A) ergänzt. > Und die Leiterbahnen zu den FETs sollten ca 100mil breit sein: > http://www.mikrocontroller.net/articles/Leiterbahnbreite Ich habe jetzt eine Massefläche und (im 12V-Bereich) eine 12V-Fläche verwendet. Das sollte für die Leiterbahnbreite reichen - oder? Allerdings habe ich noch einen Punkt, der mir Sorgen macht: einige Pads haben - bedingt durch die Lage der übrigen Leiterbahnen - nur ein bis zwei schmale Stege zur Fläche, siehe Detailansicht. Zwar weiß ich, wie man die Stegbreite für das gesamte Polygon hochsetzen kann - aber geht das in Eagle auch selektiv für einzelne Pads? Oder gibt es einen Workaround? zz schrieb: > Die Gate Ansteurungen von der Masse Leitung weg, da könnte was > einkoppeln. Siehst Du das Problem mit der Massefläche immer noch? > Und die Gates mit sinnvollen R auf Masse ziehen. Die Widerstandsarrays sind rechts vom Microcontroller. Timm Thaler schrieb: > An den 78L05 gehören dicht dran noch 2 Cs 100n. Done. Euch allen: Danke! EDIT: Erst war kein Bild da, dann habe ich sie nochmal angefügt, jetzt sind sie doppelt... @Admin: Könnte einer von Euch die Dubletten löschen? Danke!
1. An die Jumper unter dem 485 kommst Du nicht mehr ran, wenn der drauf sitzt. Ist wahrscheinlich egal. 2. Du läßt die LP mit DK fertigen? In Eigenfertigung ohne DK kannst Du den Quarz und einiges andere nicht löten. 3. Dem TSOP und auch der Schraubbuchse würde ich zwecks besserer mechanischer Stabilität lange Pads verpassen, so wie bei X3. 4. Die Cs und Rs würde ich nun gleich noch als SMD machen, kann man ja auch bottom platzieren.
Timm Thaler schrieb: > 1. An die Jumper unter dem 485 kommst Du nicht mehr ran, wenn der drauf > sitzt. Ist wahrscheinlich egal. Korrekt :-) Die Jumper werden genau dann geschlossen, wenn der 485 nicht bestückt wird, ich also eine reguläre RS232 (mit TTL-Pegeln) an der Stiftleiste haben möchte. > 2. Du läßt die LP mit DK fertigen? In Eigenfertigung ohne DK kannst Du > den Quarz und einiges andere nicht löten. Sollte zu iTead gehen - als erster Versuch dort. Für $14,90 für 10 Stück kriege ich hierzulande wohl höchstens das Rohmaterial... > 3. Dem TSOP und auch der Schraubbuchse würde ich zwecks besserer > mechanischer Stabilität lange Pads verpassen, so wie bei X3. Wird gemacht. Danke! > 4. Die Cs und Rs würde ich nun gleich noch als SMD machen, kann man ja > auch bottom platzieren. Bedrahtet liegen sie hier mehr-als-ausreichender Menge in der Bastelkiste. Von daher -- beim nächsten Mal :-) Gruß & Dank Michael
Michael Graf schrieb: > Allerdings habe ich noch einen Punkt, der mir Sorgen macht: einige Pads > haben - bedingt durch die Lage der übrigen Leiterbahnen - nur ein bis > zwei schmale Stege zur Fläche, siehe Detailansicht. Zwar weiß ich, wie > man die Stegbreite für das gesamte Polygon hochsetzen kann - aber geht > das in Eagle auch selektiv für einzelne Pads? Oder gibt es einen > Workaround? Ich verlasse mich nicht auf das Massepolygon um Verbindungen auf Massepads zu erhalten. Wenn alle Masseverbindungen mit "normal" dicken Leiterbahnen gerottet werden kann es nicht passieren, dass ein Masseteil mit dem anderen unabsichtlich nur durch eine Haarfeine Leiterbahn verbunden ist. Ebenso entfällt das Problem mit den dünnen Stegen der Thermals. Also route alles so, als ob Du kein Massepolygon vorgesehen hättest.
Guest schrieb: > Also route alles so, als ob Du kein Massepolygon vorgesehen hättest. Quark, die Werte für das Polynom entsprechend setzen, dann entstehen keine zu schmalen Stege. Wenn dabei Inseln entstehen, dann werden die fehlenden Verbindungen angezeigt. Werden die Inseln nicht benötigt (keine Pads oder Vias drauf), werden sie entfernt. Für normale DIL und SMD nehme ich Width 14-16, Isolate 12, Thermals on, Orphans (leere Inseln) off für das GND-Polygon.
Guest schrieb: > Michael Graf schrieb: >> Allerdings habe ich noch einen Punkt, der mir Sorgen macht: einige Pads >> haben - bedingt durch die Lage der übrigen Leiterbahnen - nur ein bis >> zwei schmale Stege zur Fläche, siehe Detailansicht. Zwar weiß ich, wie >> man die Stegbreite für das gesamte Polygon hochsetzen kann - aber geht >> das in Eagle auch selektiv für einzelne Pads? Oder gibt es einen >> Workaround? > > Ich verlasse mich nicht auf das Massepolygon um Verbindungen auf > Massepads zu erhalten. Wenn alle Masseverbindungen mit "normal" dicken > Leiterbahnen gerottet werden kann es nicht passieren, dass ein Masseteil > mit dem anderen unabsichtlich nur durch eine Haarfeine Leiterbahn > verbunden ist. Ebenso entfällt das Problem mit den dünnen Stegen der > Thermals. > Also route alles so, als ob Du kein Massepolygon vorgesehen hättest. Das mache ich auch so. Erst alles routen inclusive Masseleitungen, danach das GND-Polygon, dann haben alle Pads, die "dicke" Masseanbindung brauchen diese auch.
Timm Thaler schrieb: > Quark, die Werte für das Polynom entsprechend setzen, dann entstehen > keine zu schmalen Stege. Wenn dabei Inseln entstehen, dann werden die > fehlenden Verbindungen angezeigt. Werden die Inseln nicht benötigt > (keine Pads oder Vias drauf), werden sie entfernt. Genau, Quark mit Sosse Wie stellst Du sicher, dass wirklich alle Verbindungen mit den richtigen Leiterbahnquerschnitten erstellt werden? Je nach Layout kann es nämlich vorkommen, dass zwei Masseflächen nur über einen kleinen Steg miteinander verbunden werden, welcher die geforderten Anforderungen an die Mindestbreite nicht erfüllt. Zudem ist die Gefahr gross, dass so noch Airwires übrig bleiben und übersehen werden. Ich betrachte die Polygone nicht als Werkzeug um das Masserouting zu erstellen, sondern um Ätzmittel zu sparen. Wenn man ordentlich routet und generell immer zuerst die Versorgung (was meiner Meinung nach das Wichtigste ist) routet, hat man die obigen Probleme schon zum Vornherein bereits eliminiert.
Guest schrieb: > Wie stellst Du sicher, dass wirklich alle Verbindungen mit den richtigen > Leiterbahnquerschnitten erstellt werden? Achje, machen wir jetzt einen Grundkurs: Wie route ich eine Leiterplatte? 1. Ein gutes Placing ist das Wichtigste. Also Bauteile, die hohe Ströme verlangen möglichst dicht beieinander und nicht an die entgegengesetzten Ecken der Leiterplatte packen. 2. Das GND-Polygon gleich am Anfang mit draufpacken, dann sieht man schon, wo es eng werden könnte. 3. Highlight des GND-Polygons, und man sieht wunderbar, wo Verbindungen zu eng ausfallen. 4. Gegen "übersehene" Luftlinien gibt es: "Ratsnetz - xx Luftlinien". Solange xx > 0, musst Du halt weitermachen. 5. Für wirkliche Hochstrom-Anwendungen kann - und sollte - man die GND-Polygone teilen, ein Digital GND und ein Power GND. Dann kann man das Power GND auch mit Width 40 oder so angeben, und es wird nirgendwo mit 12mil durchgeroutet. 6. Für Low Budget-Eigenfertigung kann man auch doppellagige Leiterplatten nehmen, wobei eine Lage nur - und wirklich nur - GND ist, der Rest wird auf der anderen Seite geroutet, zu GND wird per Vias verbunden. Dann hat man eine super GND-Fläche, muss nur eine Seite entwickeln und ätzen - auf der GND-Seite bleibt die Schutzfolie bis zuletzt drauf - und muss nur die GND-Vias durchkontaktieren.
Michael Graf schrieb: > aber geht > das in Eagle auch selektiv für einzelne Pads? Oder gibt es einen > Workaround? Es besteht in der Tat die Möglichkeit, den Abstand bei Einzelnen Pads zu Vergrössern... wenn auch nur mit einem kleinen Trick. Hatte das selbe Problem und nach ein paar Stunden des ausprobierens kam ich zu folgendem Ergebniss: (Am besten bisschen damit rumspielen, dann wirst du schnell selbst merken wie sich das ganze Verhält): 1. In der Layout Ansicht im Menü "Rect" auswählen (Siehe Anhang) 2. Das Reckteck auf der Fläche platzieren, wo das Polygon entfernt werden soll 3. Rechtsklick auf das Viereck -> Eigenschaften 4. Nun setzt du das Viereck auf den Layer 41 tRestrict (Falls Top Seite) oder Layer 42 bRestrict (Falls Bot Seite). 5. Durch einen Klick auf Ratsnest (Luftlinien neu Verbinden) wird sich nun auch dein Polygon anpassen. Das Polygon wird überall wo ein Viereck Platziert wurde entfernt. Somit besteht die Möglichkeit, an heiklen Stellen nachzubessern. Hoffe konnte dir helfen. Guest schrieb: > Also route alles so, als ob Du kein Massepolygon vorgesehen hättest. Ein Polygon erleichtert auch die Layout arbeit. Die meisten Verbindungen auf einem Layout sind gegen GND. Wenn du diese alle Routest, obwohl es nicht einmal nötig wäre, verbrauchst du damit unnötig viel Platz und hast bei etwas komplexeren Leiterplatten am Schluss wohl unzählige Via's welche komplett unnötig sind. Zudem nimmst du dir so selbst extrem viel Platz weg für andere normale Leiterbahnen. Wieso also sich das Leben erschweren?
San Lue schrieb: > Guest schrieb: >> Also route alles so, als ob Du kein Massepolygon vorgesehen hättest. > > Ein Polygon erleichtert auch die Layout arbeit. Die meisten Verbindungen > auf einem Layout sind gegen GND. Wenn du diese alle Routest, obwohl es > nicht einmal nötig wäre, verbrauchst du damit unnötig viel Platz und > hast bei etwas komplexeren Leiterplatten am Schluss wohl unzählige Via's > welche komplett unnötig sind. Zudem nimmst du dir so selbst extrem viel > Platz weg für andere normale Leiterbahnen. Wieso also sich das Leben > erschweren? Das ist ein Trugschluss und ist ein "wird schon irgendwie passen"-Faulheits-Ansatz. Wenn man GND nicht explizit routet hat man keine Kontrolle darüber auf welchem Wege und mit welcher Leitungsdicke die entsprechende Stelle an GND angebunden ist. Ich möchte das genau wissen und möchte mich nicht darauf verlassen, dass mein Bauteile "schon irgendwie" an GND landet, weil das magische GND-Polygon das über Umwege einmal um die Platine rum das schon irgendwie macht. Deshalb route ich alles ohne Polygon und das wird am Ende drübergelegt. Dann kann ich immer noch Redundanzen rausnehmen, wenn ich möchte.
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.