Hallo erstmal. Mein Spezialgebiet ist eindeutig die Software, aber ich möchte mich jetzt ein wenig mit ATMEL Mikrocontrollern beschäftigen. Da ich in für ein kleines Automatisierungsprojekt bei mir zu Hause eine I/O Steuerung für den PC brauche, sehe ich das als den idealen Einstiegszeitpunkt. Ich habe mich schon intensiver mit dem Forum hier befasst und mir selbst schon ein kleines Bild davon gemacht, aber ich bin kein Profi und man möge es mir verzeihen, wenn meine Fragen etwas "dumm" anmuten sollten. Ich habe vor einen kleinen IO-Controller zu entwickeln, der maximal 64 Inputs bzw Outputs verwalten kann. Die In- oder Outputs sollten in 8er Schritten wählbar sein, wobei nicht vorgeschrieben ist, wieviele der 8er Input- oder Output-Platinen jeweils genutzt werden (ich möchte das System nachträglich aufrüsten und weiss noch nicht genau wie sich der Bedarf entwickeln wird). Ob ein In- oder Output-Modul an der jeweiligen Select-Leitung hängt, wird vorher im MC festgelegt. Die Module sollten mit einfacher Verkablung verbunden sein - idealerweise mit YTSY oder einfachem Flachbandkabel, aber die Länge der einzelnen Kabel kann durchaus mal 3-4m betragen - I2C scheidet also wahrscheinlich aus. Ich habe mir deshalb folgendes System überlegt, das den PORTC am ATMEGA als 8-bit I/O-Bus nutzt und über einen anderen Port 8 "Select-Leitungen" zur Verfügung stellt. Die Signale werden parallel und nicht allzu häufig abgefragt bzw. gesendet, so dass ich vermute, dass keine HF-Störungen zu befürchten sind. Was ich mich frage ist, ob bei entsprechenden Leitungslängen Bustreiber notwendig sind und ob bei der Beschaltung noch zusätzliche Dinge beachtet werden sollten. Ich habe einen schematischen Entwurf einmal angehängt. Vielen Dank für eure Antworten schon einmal vorab.
Hi, also, ich würde nicht sagen, dass I2C ausscheidet. Es gibt ja auch entsprechende Bustreiber, die die Maximalkapazität auf das 10-fache steigern. Such hierzu z.B. mal nach dem P82B715. Ich würde generell eine serielle Übertragung bevorzugen, weil man da ja ein abgeschirmtes Kabel verwenden kann, bei I2C also eine Leitung mit vier Adern, was wiederum der Störunanfälligkeit zugute kommt. Nicht zu vergessen, dass du je nachdem, was an den Outputs hängt, ja auch ziemlich dicke Querschnitte brauchst. Dein System bräuchte dann schonmal mindestens 18 Adern (VCC/GND nicht vergessen). Ausserdem gibts I2C Port-Expander, welche sowohl Ein- als auch Ausgänge sein können, das ganze bisweilen sogar bitmäßig konfigurierbar. Ein entsprechender Chip wäre der PCA9534. Desweiteren hättest du bei I2C den Vorteil, dass du z.B. ein EEPROM auf jedes Modul bringen könntest, welches dem Controller sagt, um was für ein Modul es sich handelt -> fällt bei den bidirektionalen Expandern natürlich wieder weg :) Unabhängig davon, ob du seriell/parallel arbeitest, wäre evtl. eine galvanische Trennung der Ein-/Ausgänge von Vorteil, bedeutet aber dass du die Module separat versorgen musst. Auf jeden Fall aber würde ich Schutzelemente einbauen, z.B. Transzorber-Dioden, um Spitzen usw. abzuleiten. Ralf
Vielen Dank für die Antwort. Das mit dem P82B715 hört sich schon einmal sehr vielversprechend an und der IC ist gut verfügbar. Ich habe mich wohl noch nicht intensiv genug mit I2C beschäftigt, aber mir kommt gleich eine Frage in den Sinn: Sollte man bei I2C den Bus bei allen Modulen durchschleifen, alle Module sternförmig an die Controller-Platine anbinden oder ist das egal? Den PCA9534 finde ich weder bei Reichelt / Conrad noch bei Schuricht - bei Farnell gibts den nur ab 1000 Stück Mindestabnahme und dann auch nicht als Lagerware - gibt's da irgendwo eine gute Quelle? Meine Angaben waren leider auch etwas missverständlich. Der Schaltplan sollte nur das Grundgerüst des Busses darstellen. Für die "richtigen" I/Os ist auf den Input-Boards der MCP3700 (AC/DC Optocoupler mit definierbarem Threshold und integrierter Konstantstromquelle für die LED bei 3V DC bis 250V AC Toleranz) und auf den Output-Boards jeweils ein UDN2981 mit Relais vorgesehen. Den Logikteil wollte ich dabei trotzdem noch komplett von der Hauptplatine aus versorgen und die 5V Stromversorgung also mit über das "Datenkabel" führen. Die I/Os selbst (also Optokoppler-Eingäng und Relais-Ausgänge) werden über Schraubklemmen potentialfrei ausgeführt. Oder ist es auch bei dieser Anwenung noch sinnvoll jedes einzelne i/O-Modul mit einer eigenen Stromversorgung aufzubauen (ein Steckernetzteil kostet ja auch nicht die Welt)? Thorsten
Zum Thema Porterweiterungen gäbe es hier etwas mit billigen Standardbauteilen: http://www.mikrocontroller.net/articles/Porterweiterungen Für längere Strecken müsste man sich noch Treiber dazudenken. Aber generell braucht man für eine Hausautomatisierung ein grösseres Konzept ich würde mir die Busse ansehen die dafür hier im Unterforum http://www.mikrocontroller.net/forum/hausbus auch schon lange diskutiert werden. Schwieriger wird meist auch das Ganze Störungsfest hinzubekommen.
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.