Translate

03 Mai 2011

Platinen entwerfen mit Eagle

Es ist mal wieder an der Zeit, dass sich was tut.......
Heute hab ich mal begonnen, eine halbwegs universell
einsetzbare Platine zu zeichnen, die man je nach Einsatzzweck
unterschiedlich bestücken kann.........
Ich habe mich dafür entschieden, das mit EAGLE zu machen.
(Das verwenden wir auch in der Firma und es hat sich
bestens bewährt) Die kostenlose Demoversion ist
bis zum halben Euro-Format verwendbar, das reicht in diesem Fall.
Das Programm ist aber auch als "Vollversion mit Einschränkungen"
nicht allzu teuer.Erst wenn man "alles" haben will gehts richtig
ins Geld!

Ich habe damit noch kaum gearbeitet, aber es scheint
nicht allzu schwer zu sein......wenn ich da an "früher" denke,
als ich in den 90er Jahren mit ORCAD und TANGO ein paar
Leiterplatten entworfen habe und dann der 386er PC über Nacht
rechnete und dann meist eine Leitung nicht verlegen konnte.......

Zunächst muss ein Projekt angelegt werden.
Da sind dann Schaltpläne und Platine etc. zusammengefasst

Ein Anfänger steht zunächst vor Allem vor dem Problem
mit den Bibliotheken, das sind die Dateien mit den
Bauteil-Definitionen und Zeichnungen der Pads etc.
Da werde ich mir wohl noch einige Male helfen lassen müssen.
Lädt man die falschen Bibliotheken ,dann findet man genau das
Teil nicht, das man gerade platzieren will. Bei Bibliotheken
unklarer Herkunft sind oft irgendwelche Fehler verborgen.
Da kann schon mal eine Bohrung zu klein sein....
Es ist wichtig, hier nicht den Überblick zu verlieren.
Am Besten ist es fast schon sich eine Eigene mit den wichtigsten
Komponenten anzulegen, die man meist verbaut.
das spart viel Sucherei, und man kann sich drauf verlassen.
insbesondere, wenn man ein Projekt auch mal auf einem anderen
Rechner weiterbearbeitet ist es von Vorteil, die passenden
Bauteilbibliotheken zur Hand zu haben.
(....das war damals mit den alten Programmen oft ein
riesen Drama.....wenn man später mal an einer alten Platine
was ändern musste passte oft gar nichts mehr. Deshalb
erwähne ich das hier.

Aber der erste Schaltplan nahm recht schnell Gestalt an.
Da passen noch keine Bauteilnamen und Typen, und so manches
wie Schutzbeschaltungen etc. fehlt noch
aber das sollte nur mal grundsätzlich zeigen, wie ich mir das so vorstelle.
Einfach so zum Einarbeiten
Kern der Platine ist ein Atmega der Reihe 8, 48, 88, 168 etc....
mit denen arbeite ich am liebsten, weil die sehr universell verwendbar sind.
(Und mit Bascom wunderbar einfach zu programmieren!!!)
Ich möchte einige der AD-Wandler nutzen können, dazu brauche ich einige
Spannungsteiler an den Eingängen, alle freien Ports sollen über Widerstände
nach draußen geführt werden.Das kann man später als Ein- oder Ausgang nutzen.
Das Ganze soll mit 12V laufen, ggfs zwei getrennte 12V (Dauer- und Zündung)
5V sollen zusammen mit einem AD-Wandler-Eingang auf eine Klemme rausgehen für
den LEM HASS200 Stromwandler bzw für den Positionsgeber bei der
Positionier-Geschichte oder für den "Fahrtregler" bei PWM-Einsatz.
Die Mosfet bilden eine PWM H-Brücke, das brauche ich für ein
"ganz anderes Projekt" da muss ein kräftiger Stellmotor exakt in Position fahren.
Die später vorgesehenen Transistoren schaffen kurze Zeit (ca.1min) ca 30A ohne
Kühlung, damit kann man schon einiges anfangen, selbst wenn man damit nur was
schaltet. Als Mosfet-Treiber sind TC4431 vorgesehen, die an sich schon als
recht kräftige Treiber nutzbar sind und auch für die Umsetzung von 5 auf 12V
gute Dienste leisten. (leider nicht ganz kurzschlussfest-schade.......)

Ich hatte schon überlegt, als Steuer-Rechner für die Mosfet einen ATtiny 26
einzusetzen, aber dann wäre die Platine nicht mehr so universell konfigurierbar
gewesen. Aber für reine PWM-Geschichten sollte man sich den mal genauer
anschauen.Der hat zwei PWM-Kanäle mit je einem invertierten und einem nicht invertierte
und nicht überlappendem Ausgang, sowie bis zu elf (?) AD-Wandler-Eingänge
Ebenso recht interessant ist der ATtiny 24 der hat u.a. einen 16bit-Timer
wie ich ihn für die Umsetzung Stromwandler-Signal zu Drehzahlmesser-Takt
brauche.Aber das kann der Atmega 48 und seine "großen Brüder" auch.

Deshalb ist der Atmega48 HIER die bessere Wahl.
An Port B betreibe ich normalerweise mein Display (EA-DIP204)
Da halte ich mich an die Belegung des STK500 - Boards,
so brauche ich nur umstecken.

(Da ist alles auf einem 10-Pol Bandkabel vereint, incl. Versorgung)
Da sind auch noch die Programmier-Eingänge drauf und leider auch die
PWM-Ausgänge von Timer 1 und 2, die dadurch blockiert sind.
Das macht aber nichts, wenn ich Timer 1 und 2 nicht für PWM
benutze, sondern nur als Zeitbasis und da per Interrupt
irgendwelche Unterprogramme steuere.
Wenigstens die PWMAusgänge von Timer 0 liegen auf Port D,
und da kann ich sie benutzen. Im Notfall müsste man halt den betreffenden
Anschluss fürs Display auf einen anderen Port legen.
Programmieren geht auch mit Display, das zeigt dann eben wirres Zeug.
Da alle Programmierleitungen auch auf den Displaystecker gehen
kann ich auf den ISP-Anschluss verzichten und mit einem Adapter
über den Display-Anschluss umprogrammieren.
(über kurz oder lang wird wohl eine SMD-Version des Atmega
rein kommen, und die ist dann fest eingelötet, da muss das Programmieren
des Gerätes funktionieren)

Port C sind die AD-Wandler-Eingänge, die aber auch als Ausgang benutzt
werden können.

Port D hat die ganzen "spezialisierten" Ein-und Ausgänge.
D0 und D1 ist für die serielle Schnittstelle.
Wenns vom Platz noch geht sollte ev noch ein MAX232 drauf!???

Der Platz reicht aber nicht, aber bei einer SMD-Variante muss das sein!
D2 und D3 sind die Interrupt-Eingänge, z.B. für zeitkritische
Flankenerkennung bei Trigger- und Zähl-Funktionen
D4 ist meist frei verwendbar (XCK)
D5 und D6 sind die PWM-Ausgänge von Timer 0
D6 und D7 sind die Analog-Komparator-Eingänge
Da muss ich noch überlegen, wie ich das mache, dass man
D6 ggfs für den Komparator nutzen kann.Das hab ich
aber noch nie gebraucht.
Das wird zwar nicht die eierlegende Wollmilchsau,
aber als Energiezähler, BMS-Zentrale, Positioniersteuerung
und Fahrtregler, halt als kleine SPS (als Bausatz ???)
will ich das selbe Layout nutzen können.Sollte klappen!
Mal schaun ob ich das alles auf die nutzbaren 60 *70 mm

der 70 * 83 mm großen Platine packen kann.
Möglichst mit bedrahteten Teilen zwecks Lötbarkeit.
(da gibts bei Conrad so geniale kleine Modulgehäuse,
und da soll das rein! Best.Nr. 521256)
Ev noch ein Relais vorsehen? das wird eng!
























Das reicht fürs Erste.
Ich werde in der nächsten Zeit sowohl am Layout als auch am Energiezähler
weiterbasteln, um alle neuen Ideen auch im Layout zu berücksichtigen.
Da hat sich in den letzten Tagen nochmal einiges geändert bzw. ist noch
einiges dazugekommen.
Das mit der frei konfigurierbaren Tankanzeige hatte ich schon erwähnt.
Die Umschaltung, ob Nachladen erfasst wird oder nicht ebenfalls.
Der Nullpunkt des Messwandlers kann eingestellt werden.
Ganz neu ist ein Relaisausgang der in %Restenergie konfiguriert
werden kann. Das Relais zieht bei Unterschreiten der Schwelle an.
Der Schliesser geht nach Gnd. (Ob da der Platz reicht.........
Die Temperaturmessung steht ebenfalls auf der Streich-Liste........)
Und......man kann jetzt den Drehzahlmesser abgleichen
(in 1%-Schritten, 100% = Std= 4-Zyl; 150%=6-Zyl; 200=8-Zyl)
Alle Konfigurationen erfolgen per Menue, das Menue wird gestartet
indem bei gehaltener "Enter"-Taste ein Reset ausgelöst wird.
So genügen vier Tasten zum Bedienen. (rauf runter weiter und Reset)
Bei Reichelt (anderswo auch....) gibt es ganz tolle Drehimpulsgeber
mit integriertem Taster. Ein Auswerteprogramm dafür hab ich schon
mal geschrieben.....Das wär auch was! links rechts und Enter ist kein
Problem, und wenn man dann noch per Zeitschleife mit der Enter-Taste
den Reset auslösen würde......... warum eigentlich nicht?
Ein Knopf für die gesamte Bedienung!
antippen = Enter, sehr lange drauf = Reset......... Das geht!!!!!!!!!!!
Vom Programm her ganz einfach, ein paar verschachtelte If..then-Schleifen
mit Wartezeit und eine Sprungmarke an den Anfang wo alle Variablen
zurückgesetzt werden. Das ist eigentlich nur ein "Warmstart", aber
das erfüllt seinen Zweck perfekt.Man muss eigentlich nur mit
dem "DEBOUNCE"-Befehl aufpassen! der muss vorher stehen
bzw vorher und nachher, je nach Funktion.
Der wertet schliesslich die selbe Taste aus!


Nachtrag 5.5.11:
Heute hab ich mal versucht, alles auf die Platine zu bringen.
Das sieht schon sehr gut aus!
Noch ein bisschen besser anordnen, aber das passt alles drauf!
Da haben also auch ein paar Extras noch locker Platz.
Den Spannungsregler über den Atmega, Treiber und Transistoren drehen,
damit links die Leistung und rechts der Prozessor ist.
Das ist fast schon gut so!
So macht das Spass!

























13.05.2011:
Alles ein bisschen besser angeordnet und noch einige Teile zusätzlich
für alle möglichen und unmöglichen Fälle und schon schaut alles
ganz anders aus.


























So passt das hoffentlich einigermaßen!
Ich lasse mal ein paar dieser Platinen fertigen, und
dann wirds interessant!
ganz ohne Drähte wirds nicht gehen, aber mehr
Brücken und Jumper konnte ich hier nicht mehr
unterbringen.....Wir werden sehen!....

















.....so sieht das dann aus!
Ich bin begeistert! Natürlich habe ich eine Kleinigkeit übersehen,
aber das ist nicht wirklich schlimm, eine Leiterbahn ist zu dünn,
ein 2cm langer Draht auf der Rückseite korrigiert das.....na ja.....
(Da hat Eagle eine Leitung neu verlegt, bzw ich hab das selbst veranlasst,
und dann hab ich die kurze dünne Leitung übersehen....Typischer Fehler!
passiert auch den Profis regelmässig.....)

mfG
Franz

1 Kommentar:

  1. Hi Franz,

    eine sehr gute Wahl. In meiner Zeit als Werksstudent bei einem großen Automobilhersteller haben wir das auch eingesetzt :) Und das man halbe Europlatinen sogar umsonst bestücken kann, finde ich sowieso klasse (da kann man mit SMD Bauteilen schon richtig tolle Sachen anstellen).

    VG

    AntwortenLöschen