Forum: Mikrocontroller und Digitale Elektronik Auswahl von MC für Türschlussüberwachung


von Mathias I. (methi)


Lesenswert?

Hallo,
ich habe gerade erst angefangen, mit Mikrocontrollern zu arbeiten. Nun
möchte ich gerne ein projekt verwirklichen, doch weiß noch nicht so
recht wie.
Das Projekt ist eine Türschlussüberwachung d.h. es soll angezeigt
werden(wahrscheinlich am PC über die serielle Schnittstelle), ob eine
Tür abgeschlossen ist oder nicht. Dazu liegen schon hinter jedem
Schließblech die Kabel, an denen nur noch ein entsprechender Taster
angebracht werden muss.
Soweit so gut, nun aber zum eigentlichen problem:
Es ist nicht nur eine Tür! --> Es sind 15 Türen, wobei jede Tür 2
Taster besitzen soll: 1. Tür ist geschlossen - 2. Tür ist
ABgeschlossen
Daraus folgt, dass ich mindestens 30 Kontakte überwachen muss!!!
Doch welcher Mikrocontroller(am liebsten von Atmel) schafft das?

Oder kann man das als dezentrales System ausführen, was sich vielleicht
lohnen würden, da sich die Türen auf mehrere Gebäude/Etagen verteilen?
Ich stelle mir das so vor: am PC hab ich einen MC, der die
verständigung mit dem PC übernimmt und die Daten von den anderen MCs
aus den anderen Gebäuden bekommt.
Wie können sich MCs untereinander verständigen? Gibt es da irgentwelche
Beschränkungen(Kabellänge ect.)?
...aber irgendwie wäre mir ein MC doch lieber ;)

Über konstruktive Ideen/Vorschläge/Tipps bin ich dankbar...

Methi
und bitte kein Fach-Kaudawelsch... bin, wie gesagt, noch Anfänger ;)

von Marko (Gast)


Lesenswert?

Naja, du könntest die Kontakte
beispielswse über einen Multiplexer an nen µC hängen,
4097 fällt mir da ein, und die zyklisch durchgehen ob
offen oder zu. Für die Kontakte würd ich Reedkontakte
favorisieren.
Die IOs von nem AVR auf 30m zu verlängern sollte gehen.
Du bist dann aber auf diese Funktionen beschränkt.
Wenn Du mal später die Rolläden mit steuern oder
die Heizung regeln willst musst du wieder komplett ans
Reißbrett zurück.
Anbieten würde sich auch ein sog. Hausbus-System,
beispielsweise per RS485 oder CAN-Bus,
dann könntest Du das System nachträglich erweitern.

Ich würde aber an Deiner stelle nicht einen AVR mit
allen Türen belegen, sondern die Türen gegen den
µC multiplexen um noch Anschlüsse für
beispielsweise n LCD-Display frei zu haben

von Mathias I. (methi)


Lesenswert?

versteh ich dich richtig: ein multiplexer stellt mir an einem µC noch
mehr IO zur verfügung?
Mit welchem µC würde den z.b. der 4097 funktionieren? und wie muss der
angeschlossen werden?
Zyklisch durchgehen heißt wohl: erst I1, dann I2, dann I3 usw. am ende
wieder bei I1 beginnen???

zu dem vorschlag von reedkontakten: Taster sind einfacher und billiger;
ich wenn der Taster schaltet, ist der Schließzylinder hinter dem
schließblech und gut ist :)

Hausbus-systeme lohnen sich nicht, da es wirklich nur um
Verschlussüberwachung geht: wir haben keine Rollläden und die Fenster
sind vergittert(nein, ich sitze nicht im Knast ;) )

Es ist ein Gelände eines vereins am Waldrand, wo zwar oft was los ist,
aber doch nicht jeden tag... und momentan hat sich gerade der
Randalismus breit gemacht: eine Tür, die nur einmal umgeschlossen war,
wurde aufgehebelt und mit den Feuerlöschern, die dort hingen, wurde
"rumgesaut"(Das pulver aus den löschern ist echt in jeder ritze und
maschine)... deswegen habe ich nun den auftrag, die verschlusskontrolle
zu ende zu bauen(wir überlegen schon seit 2 jahren, sowas
anzuschaffen/zubauen)

von Winfried (Gast)


Lesenswert?

Mach doch erstmal Versuche mit einer Tür. Wenn du da alles laufen hast,
kannst du dir immer noch Gedanken machen, wie du es am sinnvollsten für
15 Türen hinbekommst.

Meine langjährige Erfahrung ist, dass viele Projekte, aus welchen
Gründen auch immer, wieder einschlafen. Dann ist es praktischer,
erstmal eine kleine Lösung anzutesten. Wenn man dann noch genug Energie
hat, es weiterzuführen, bestens. Wenn nicht, ist nicht so viel Zeit
drauf gegangen. Außerdem motiviert ein schneller Erfolg.

Die meisten Anfänger nehmen sich viel zu komplizierte Dinge vor und
scheitern dann regelmäßig.

Übrigens: Selbst mit anspruchslosen (leicht lötbaren) AVR's solltest
du zumindst 8 Türen direkt überwachen können. Pack in deinen PC 2
serielle Schnittstellen oder gehe gleich über USB und bau den Kram
zweimal auf.

von crazy horse (Gast)


Lesenswert?

lange Kabel -> irgendein sinnvolles serielles Bussystem nehmen.
Mein Ansatz wäre, jeder Tür einen eigenen MC (ein 8Pin-Tiny reicht) zu
spendieren. Dazu vielleicht RS485-Bustreiber. Die Übertragung
Manchester-codiert, dann kannst du den internen Oszillator nehmen.
Und da du keinerlei Zeitprobleme hast, kannst du ein single master
system nehmen.

von Markus_8051 (Gast)


Lesenswert?

Hallo Matthias,

mit einer Tür und kurzem Kabel ist das sicher kein Problem. Aber wenn
Du 30 Taster mit jeweils bis zu 30m Kabel an den µC anschließt, baust
Du Dir damit ein tolles Antennensystem auf, mit dem Du sicher auch
Störungen vom Mars einfangen kannst - ein tolles Projekt für SETI-Fans.
Wenn es funktionieren soll, würde ich das von Crazy Horse vorgeschlagene
System verwenden. Die Hardware ist echt simpel, und da sie nicht
besonders teuer wird, kann man sie auch leicht 15 mal aufbauen. Die
Software wird dafür etwas aufwendiger - schließlich mußte Du ein
Bus-Protokoll auf den µCs implementieren.

Gruß,
Markus_8051

von crazy horse (Gast)


Lesenswert?

nix kompliziertes Busprotokoll:
Master sendet eine Anfrage an einen slave, Kennzeichen gesetztes Bit7,
die anderen 7Bit enthalten die slave-Adresse. Der angesprochene
antwortet, Bit7 ist immer 0, die restlichen 7Bit können Daten
enthalten. Fertig ist das Mini-Netzwerk ausreichender Adressierbarkeit
und Funktionalität. Man muss nur dafür sorgen, dass jeder slave eine
eindeutige Adresse hat (im Flash oder EEPROM).

von Markus_8051 (Gast)


Lesenswert?

@crazy horse: ich habe nix von kompliziert geschrieben, und daß es etwas
aufwendiger ist, als wenn man nur einen µC über RS232 an den PC hängt,
wirst Du zugeben müssen. Und für die Adresse im EEPROM muß der arme
Mathias jetzt auch noch einen EEPROM-Zugriff programmieren (er hat doch
geschrieben: er ist Anfänger, das wird dann für so ein Anfangsprojekt
doch schon ganz umfangreich...)

Markus_8051

von crazy horse (Gast)


Lesenswert?

ok, vielleicht meldet sich Mathias ja noch mal, ob er alles verstanden
hat.
Jedenfalls ist der Ansatz TTL-Sternverkabelung zum Scheitern
verurteilt.

von Markus_8051 (Gast)


Lesenswert?

Jo, genauso sehe ich das auch.

von Mathias I. (methi)


Lesenswert?

klar meld ich mich nochmal^^
wirklich mitgekommen bin ich noch nicht...
so, hab mich mal über machester-codierung und rs485 informiert :)
klingt ja schon recht vielversprechend, was ihr mir vorgeschlagen
habt...
nur die technische umsetzung ist mir nicht ganz klar.
wie sagt ich jetzt dem µC, dass er slave ist, wie das er master ist?

als ich eben schreib, sind mir schpn wieder einige Fragen
klargeworden.
Also schreib ich mal eine zusammenfassung, wie ich es verstanden habe:
1. Master spricht reihum jeden Slave an
2. Der entsprechende Slave antwortet; Datenpacket entweder Tür offen
oder Tür zu(1 oder 0)
3. Master verarbeitet Daten, schickt sie zum rechner
Richtig?
Welchen Rs485 Treiber schlagt ihr vor? welchen µC für die türen,
welchen für den Master?

von crazy horse (Gast)


Lesenswert?

1. Master spricht reihum jeden Slave an
2. Der entsprechende Slave antwortet; Datenpacket entweder Tür offen
oder Tür zu(1 oder 0)
3. Master verarbeitet Daten, schickt sie zum rechner
Richtig?
Richtig, wobei der master auch der PC selbst sein kann, brauchst am PC
nur einen RS232/RS485-Umsetzer, Statussignale der seriellen
Schnittstelle benutzen, LPT geht auch.

Das der slave ein slave ist, ergibt sich aus dem Programm.
Im Prinzip so:
-Transceiver steht auf Empfang
-eingehende Impulse dekodieren
-Adressvergleich
-falls Adresse = eigener Adresse
 {Eingänge lesen
 Transceiver auf senden schalten
 Daten senden
 }
-gehe in das Gefängnis, begib dich direkt dorthin, ziehe nicht 4000DM
ein

Passender Transceiverbaustein wäre z.B. der MAX485, als MC sollte ein
Tiny12 reichen.

von MArko (Gast)


Lesenswert?

als bustreiber für rs485 hab ich den LTC485 verwendet
einfach zu bedienen das ding

von Mathias I. (methi)


Lesenswert?

klingt gut :)
nur: die umsetzer, die es bei reichelt gibt, sind ein bisschen teuer
(<60 Euro)...
Kann man die auch selber bauen?

von Karl H. (kbuchegg)


Lesenswert?

Bloede Frage:
Muss es unbedingt ein PC sein, der den Master spielt.
Ein kleiner Mega mit einem schicken LCD der neben
dem Haupteingang haengt und auf dem die nicht abgeschlossenen
Tueren angezeigt werden, sollte es doch auch tun.
Nach dem Muster: der letzte checkt am LCD, ob alles zugesperrt
ist.

von Mathias I. (methi)


Lesenswert?

naja, es sollte schon ein PC sein, da die Daten per Internet abgefragt
werden sollen können. Es geht nicht nur darum, beim verlassen zu
schaun, ob alles zu ist, sondern auch, wenn man nicht oben ist, nach
schaun zu können

von crazy horse (Gast)


Lesenswert?

muss dann aber auch kein PC sein. Gibt ja inzwischen einige webfähige
Baugruppen. Ich habe mal ein paar nette Spielereien mit der webcat von
Achatz gemacht.

von Mathias I. (methi)


Lesenswert?

aber das wird dann für mich nicht einfacher :)
kann man den umsetzer also nicht selber bauen?

von crazy horse (Gast)


Lesenswert?

doch, kann man. Und muss man wahrscheinlich sogar, wenn du
manchester-codiert arbeiten willst. Im Prinzip brauchst du dafür nur
einen MAX232, einen MAX485 und 5V.
Wie das allerdings bei heutigen PCs so aussieht, einzelne Bits in
bestimmten Zeiten auszugeben/einzulesen - da bin ich überfragt. Das ist
nicht mein Gebiet :-).
Ich würde das gar nicht erst versuchen, sondern dort auch noch einen MC
dazwischenschalten, geht aber sicher auch ohne.
PC <-> MAX232 <-> MC <-> MAX485 <-> slaves
Wenn du den MC weglassen willst, musst du auf Bitebene die Daten
erzeugen/empfangen.
Ebenfalls weglassen kannst du den MC, wenn du direkt mit UART-Signalen
arbeitest. Das setzt dann aber stabile Taktverhältnisse an den slaves
voraus, sonst wird das Murks.

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Schau mal in den Dateianhang:

Du brauchst halt noch ein paar Gatterbausteine, also
UND-/ODER-/Invertierer-Bausteine.

Das funktioniert dann so:
Du schließt den Adressbus an 5 Ausgangspins an z.B. Port A (0-4)
und das Ergebnis an einen Eingang an.

Jetzt kannst Du nacheinander die Schalter abfragen:
Schicke eine 1 an Port A und Du erhälst den Zustand der Leitung 1
Schicke eine 2 an port B und Du erhälst den Zustand der Leitung 2
...
usw..
Das ganze in einer Schleife..

Wenn Du Hilfe mit den Gatterbausteinen brauchst... Frag einfach (ich
bin zwar auch nicht der Speziallist, hab aber schonmal damit
rumgebastelt)

Ich empfehle Dir auch, die Türleitungen nicht einfach so an die Logik
anzuschließen, sondern sie irgendwie abzukoppeln....

Gruß
Christian

von Christian (Gast)


Lesenswert?

Kleiner Tippfehler:

So ist es richtig:

Jetzt kannst Du nacheinander die Schalter abfragen:
Schicke eine 1 an Port A und Du erhälst den Zustand der Leitung 1
Schicke eine 2 an port A und Du erhälst den Zustand der Leitung 2

von Mathias I. (methi)


Lesenswert?

@christian: danke für die idee mit den gatterbausteinen... aber mit
denen hab ich noch nie gearbetet, hab nur mal kurz von ihnen gehört,
aber hab keine ahnung, wie die genau funktionieren...

PC <-> MAX232 <-> MC <-> MAX485 <-> slaves
so hatte ich mir das ja ursprünglich auch mal vorgestellt... werd mal
schaun, dass ich ein paar max485 und tinys bekomme und mal testreihen
starten(Breadboard lässt grüßen)

von Christian (Gast)


Lesenswert?

Das mit den Gattern ist nicht wirklich schwer...
Da ist ein Microprozessor die Hölle dagegen.

Nehmen wir mal ne einfache & Verknüpfung:
Stell Dir also einen Chip mit 5 Pins vor:
1: +5V
2: GND
3: Eingang A
4: Eingang B
5: Ausgang

Der Ausgang ist auf 5V, wenn A und B auch auf 5V sind. In allen anderen
Fällen ist der Ausgang auf Masse.

So einfach wie hier beschrieben ist das wirklich... Nur daß in einem
Gehäuse normalerweise mehr als nur ein Gatter sitzt.
Genauso gibts OR NOR NAND usw...

Such mal nach
-7411 (3x AND mit je 3 Eingängen)
-7405 (6x Invertierer, macht aus 0->1 und aus 1->0)
-7408 (4x AND mit 2 Eingängen)
- ...
Ich denke, da lässt sich über Google noch mehr auftreiben.

Naja.. Ich will Dich zu nichts überreden, aber es ist wirklich n icht
schwer...

Gruß
Christian

von Mathias I. (methi)


Lesenswert?

hab gerade mal weiter gestöbert: ist es nicht einfache, das ganze über
den I²C zu machen? manche MC scheinen den direkt zu unterstützen...was
spricht für den, was gegen den?

von Winfried (Gast)


Lesenswert?

Ist nicht für lange Leitungen gedacht. War ursprünglich für
Kommunikation zwischen Schaltkreisen auf einer Platine gedacht. Dafür
wird er immer noch hauptsächlich verwendet. RS485 ist schon das
richtige für lange Leitungen.

von Roland P. (pram)


Lesenswert?

Evtl wär auch 1wire eine Lösung:
Z.b der Baustein http://pdfserv.maxim-ic.com/en/ds/DS2413.pdf
(ist dann wahrscheinlich nur wieder ein Problem mit der
Erhältlichkeit)

Gruß
Roland

von Rahul (Gast)


Lesenswert?

Man könnte I²C in abgewandelter Form benutzen, indem man die
Datenleitung in eine Hin- und Rückleitung aufteilt. Das erfordert dann
noch ein Leitungspaar mehr (muß ich für einen Sensor so machen).
Die Lösung von wirren Pferdchen sind schon richtig.
Man könnte die Lösung mit dem LCD auch noch machen: dann hätte das
PC-Interface noch eine Anzeige, und man müsste nicht immer erst am PC
gucken, ob alles zu ist...

von Rahul (Gast)


Lesenswert?

Man sollte nicht morgens um halb etwas posten...
Die Rechtschreibfehler darf der Oberlehrer behalten.
Ich hoffe, der Sinn meiner Aussage ist trotzdem klar geworden.

von crazy horse (Gast)


Lesenswert?

man könnte auch WLAN, SMS oder Ethernet nehmen...
Meine Lösung ist sicher nicht die einzig mögliche sinnvolle, aber immer
dran denken, es geht um etliche Meter Draht. Warum sollen immer
exotische Varianten probiert werden, wenn es genau für solche Zwecke
entwickelte, erprobte und bewährte Verfahren gibt? Versteh ich nicht.
Noch ein billiger RS485-Transceiver: SN75176, kostet bei Reichelt
50Cent.

von Sven (Gast)


Lesenswert?

Ich muss crazy horse zustimmen. Für lange Leitungen wäre RS485
angebracht. Ausserdem kannst Du so Fehlschaltungen vermeiden,
und Du willst mit Sicherheit eine zuverlässige Aussage der Türschlösser
;-)

zu I2C: Dieser Bus kann auch mit Treibern auf lange Kabel ausgedehnt
werden. (ursprünglich aber nur zum Verschalten auf einer Platine
gedacht.... s.o. )

Wen es brennend interessiert wie so etwas geht:

Elektor USB-I2C Interface Ausgabe 12/2004

Vielleicht willst Du so etwas in abgewandelter Form benutzen....

Gruß Sven

von Markus_8051 (Gast)


Lesenswert?

Eine nette Variante für den PC-freien Betrieb wäre ein Beck-IPC.

Na, PC-Frei ist gelogen, im prinzip enthält dieser kleine Baustein
einen kompletten Mini-PC mit RAM, Flash, 186´er Prozessor, zwei
seriellen Schnittstellen und Netzwerkcontroller. ( www.beck-ipc.com )

Sprich, die Slaves bleiben wie geplant und der Beck-IPC kann als Master
eingesetzt werden. Er kann die Anbindung ans Internet machen (wahlweise
über Ethernet oder auch über Modem). Er enthält auch direkt einen
kleinen WEB-Server, so daß man die Tür-Daten als WEB-Seite anzeigen
könnte. Außerdem hat er noch einen I2C-bus wo man ein Display
dranhängen könnte. Programmierung in Borland-C

Markus_8051

von Rahul (Gast)


Lesenswert?

Dann kann man auch eine Ethernut nehmen; wenn man als Türschloß-Sklaven
einen AVR nimmt, hat man weniger Probleme beim Programmieren der
Ethernut, da die IMHO auch einen AVR benutzt.
Ethernet-Add-Ons gibt es inzwischen ja auch wie Sand am Meer.
Wenn man an Funk denkt, könnte man auch Blauzahn benutzen...

von Hauke Sattler (Gast)


Lesenswert?

Ich denke man sollte das für Matthias so einfach wie möglich machen.
Für uns mag ja Master/Slave Bussysteme, uC Webserver usw. recht einfach
sein, aber er hat geschrieben, daß er ein Anfänger ist.
Die Frage ist jetzt was er schon zur Verfügung hat.
Z.B ist schon ein Programmier/Experementierboard vorhanden (Stichwort
STK500)?
Wie sieht es mit den Lötkenntnissen aus?
Kannst du Platinen selber ätzen usw. ?
Wie liegen die Prioritäten ?
Lieber ein ausgefuchstes Master/Slave Bussystem oder lieber einen uC
mit Multiplexer und nen paar KM Kabel ?
In letzterem Fall würde ich nen Mega8 mit nem 7,ungerade Quarz nehmen.
Dazu nen MAX232 (o.ä.) als Pegelwandler zum PC.
Als Multiplexer kann man Logicgatter, PLDs, Intel 82C55 oder Philips
PCF8574 nehmen. (Jetzt schreit nicht Leute, ich weiß der Intel ist nen
riesiges Uraltteil).

Wenn nicht gelötet werden kann, dann kann der ganze Kram auch auf einem
Experementierboard aufgebaut werden. (alle Bauteile gibt es als DIP)
Dort kann man dann auch gleich gleich so einen kleinen ISP Progger für
LPT mit draufpacken.

Bis dann
Hauke

von Rahul (Gast)


Lesenswert?

@Hauke:
Man kann das ganze Ding auch mit Relais aufbauen, oder sich einen
Wachmenschen mieten.
Sachen wie RS485 bieten sich wegen ihrer Übertragungsmethode
(differentiell) an, da sie etwas störsicherer sind.
Wenn man dem Türsensor schon Intelligenz (Tiny...) verpasst, dann kann
man auch noch andere Sachen wie defekte Schalter detetektieren oder
auch eine Zugangskontrolle mit RFID o.ä. realisieren.
Dann könnte man natürlich auch einen Türöffner ansteuern, wenn es sich
um einen berechtigten Zutritt handelt.
Das sind Erweiterungen, die man in einen Mikrocontroller besser
reinbekommt als in einen 8255 (ist der wegen bleifrei nicht endlich
abgekündigt?).
Bei 15 Türen lohnt es sich ja schon eine Platine ätzen zu lassen...

von Hauke Sattler (Gast)


Lesenswert?

@Rahul
In allen Punkten gebe ich dir recht, aber nur wenn es sich um einen
Fortgeschrittenen handelt.
Es geht hier ja um das Projekt eines Anfängers. Dort große Anfangsziele
zu setzen ist Fatal, weil man dann mit großer Wahrscheinlichkeit an
allen Ecken und Enden scheitert. Und das verdirbt grade einem zu Anfang
den Ansporn weiterzumachen. Deshalb zu Anfang lieber einfach und schnell
zu lösen. Wenn man das Ursprüngliche Ziel erreicht hat dann kann man
immer noch Erweiterungen  einbauen. Deshalb meinte ich ja auch zu
Anfang auf einem Steckbrett, weil man dann immer noch umbauen kann. (Zu
Anfang vergisst man ja immer gerne Abblock Cs und Pullup Rs). Wenn man
mal eine Baugruppe stabil auf dem Steckbrett laufen hat, dann kann man
das immer noch in eine geäzte Platine "gießen". (Wobei die Handhabung
von Platinen Programmen wie EAGLE schon wieder ein Stolperstein ist, der
zu Anfang einfach nicht notwendig ist).
Ich glaube du hast zu Beginn deiner uC Karriere bestimmt auch nicht
gleich mit RDIF angefangen.

bis dann
Hauke

von Rahul (Gast)


Lesenswert?

Es ging mir nicht darum, wie Mathias den Einstieg findet, sondern darum,
dass er ein Ziel hat, auf das er zuarbeiten kann. Die von Crazy Horse
vorgschlagene Lösung ist aus meiner Sicht relativ einfach zu
realisieren, und gleichzeitig ziemlich störunanfällig.
Dass man das auch anders lösen kann ist klar.
Die Ideen mit RFID etc. waren einfach nur Ideen, was man in einem
System, mit dieser Flexibilität machen könnte. Ob, und wann man es
macht, steht auf einem anderen Zettel.
Dass dabei nach einer Woche eine fertige 4-Lagen-Platine herauskommen
soll, ist ja wohl selbstverständlich ;) (HanneS zu zitieren: Das ist
ein Smilie).
Natürlich entsteht das Ding erst auf einem Steckbrett. Wie auch sonst?

Übrigens habe ich bis jetzt noch gar nichts mit RFID gemacht...(liegt
wohl daran, dass ich es noch nicht brauchte...)
Eigentlich wollte ich nur aufführen, was man mit soeinem System
(bidirektional) machen kann, im Gegensatz zu einem unidirketionalen
(Fern-Tasterabfrage...).

von Mathias I. (methi)


Lesenswert?

ich will mal noch ein paar antworten geben:
ein stk500 liegt noch nicht vor, sämtliche meienr versuche mit uC hab
ich am breadboard vorgenommen... mal mit erfolg, mal hab ich es
aufgegeben
Lötkenntnisse sind da, solange es kein SMD ist
platinen ätzen ist auch nicht das problem, solange es sich wenige
handelt
ob nun multieplexer oder doch ein bussystem hab ich mich noch nicht
entschieden... wobei der bus dann doch mehr möglichkeiten bietet.. vllt
kommt dann doch noch mal ne Rolltorsteuerung hinzu(das hat aber
zeit)...

und scheitern werd ich an diesem projekt nicht, ich weiß ja, wie
schnell man hier hilfe bekommt ;)

von Hauke Sattler (Gast)


Lesenswert?

@Methi
Was für einen Progger benutzt du denn?

Was den Projektanfang angeht würde ich auf Mega8 (oder Mega16) setzen.
Die haben die wichtigsten Schnittstellen onchip ohne allzusehr komplex
zu sein.
Als Multiplexer würde ich ein paar PCF8574 benutzen.
Die sind überall zu bekommen. Weiterhin hält sich der
Verdrahtungsaufwand durch die TWI Anbindung in Grenzen.
Damit bekommt man bis zu 64 (interruptfähige) Kanäle. Mit einem kleinen
Trick (PCF8574A oder PCF8575) auch 128 Kanäle.
Pro Tür wäre ja eh eine mindestents 3-Adrige Leitung (besser 4-5 Adern)
zu ziehen.
Diese könnte man auch hinterher für einen langsamen Bus verwenden. Da
kann man auch einen Software TWI (wegen der Slew-Raten) mit einer Freq
uenz von 10 Hz nehmen (dürfte ausreichend Störfest sein). Für eine
Rolltorsteuerung oder ein Codeschloss braucht man ja keine 10kBit/s
oder sowas. Wenn der Krempel läuft kann man sich dran machen wie man so
ein Master uC und Slave uC System aufzubauen hat.
cu
Hauke

von Mathias I. (methi)


Lesenswert?

Diesen Thread nochmal hochhol...

irgendwie steh ich auf dem schlauch...
wollte das mit tiny12 und max485 mal testweise was aufbaun, nur werd
ich aus dem Datenblatt des Max485 nicht schlau:

Welche Pins davon müssen an den tiny? Am tiny müsste ich den Uart doch
Softwaremäßig umsetzen, richtig? Auch über die manchesterkodierung
finde ich irgendwie nicht viel... und schon gar nicht, wie man die
umsetzt... wär schön, wenn ihr mir da nochmal weiterhelfen würdet

von Winfried (Gast)


Lesenswert?

Hier steht ja schon ein wenig drüber:

http://www.maxim-ic.com/appnotes.cfm/appnote_number/723

Dann gäbe es noch:

http://de.wikipedia.org/wiki/EIA-422
http://de.wikipedia.org/wiki/RS485

Du musst überlegen, ob du ein RS485 Buss-System oder eine RS422
Point-to-Point Verbindung aufbauen willst. RS485 wäre auf Seite 13 im
Datenblatt gezeigt, RS422 auf Seite 8.

Bei RS485 muss der Sender bei jeder Datenübertragung aktiviert werden,
damit immer nur ein Sender auf dem Buss hängt. Dafür brauchst du das
Enable Signal.

Tiny 12 hat in der Tat keine Hardware-Uart. Da muss du alles
Softwaremäßig implementieren. Würd besser zu einem Tiny 13 o.ä.
greifen, der kostet nahezu gleichviel und hat UART.

von Marko (Gast)


Lesenswert?

Die Manchester brauchste an sich nicht für
RS485. Bei Funkübertragung ist sie absolut
sinnvoll, aber bei UART ist das nicht
unbedingt von Nöten.

Du brauchst für die RS485 3 Pins des µC
RX, TX und Datenrichtung.

RX und TX sind sowqeit klar denk ich,
Daten rein und Daten raus.

Wichtig bei der 485 ist, das sie NICHT
vollduplex ist, sprich es kann ein Busteilnehmer
nur entweder empfangen oder senden, nicht beides
gleichzeitig im Gegensatz zur RS232.
Der MAX485 muss nun gesagt bkommen was der
µC tun will, senden oder empfangen.
Dafür hat er die RE- und DE- Pins. Wenn Du genau ins
Schaltbild schaust wirst Du sehen, das einer der Eingänge
invertiert ist. Das versetzt Dich in die Lage die
beiden einfach brücken zu können und mit einem
Pin Deines µC zu verbinden und so die gewünschte
Datenrichtung einfach durch H oder L-Pegel an dem Pin
einzustellen.

Bei Verwendung der Hardware UART ist noch ein wichtiger
Punkt zu beachten, der Puffer.
Wenn Du auch die Hardware-UART Zeichen sendest werden die
im Puffer zwischengespeichert und dann über die
Datenleitung geschoben. Das passiert unabhängig von Deinem
Programm, das läuft derweil munter weiter.

Es ist aber sinnvoll die Busteilnehmer nach dem senden von Daten
auf Empfangsbereitschaft zu setzen (!).
Dafür wird der MAX485 auf Empfangsmodus umgeschaltet.
Geschieht das aber während der noch Daten überträgt wird
der Versand unterbrochen -> Datenverlust.

Die Hardware-UART hat aber n Flag-Bit, das man abfragen kann
ober der Puffer leer ist, also alle Daten raus sind. Es
ist daher sinnvoll, den Programmablauf bzw. das Umschalten
der Datenrichtung durch Abfrage dieses Flag zu unterbrachen
bis eben dann die Daten raus sind und dann die Richtung ändern.

von Mathias I. (methi)


Lesenswert?

@winfried: es wird auf jedenfall ne rs485 bussystem, da der aufbau ja so
sein soll:
PC - RS232 - MC - RS485 - MC(für Tür) - RS485 - MC(Tür) ...


das mit der verschaltung versteh ich immer noch nicht: ich habe am 485
R0, RE-, DE, DI

RE und DE brücke ich und lege sie auf PB0,
R0 und DI bekommen je einen PB?

Der UART wird auf Software rauslaufen, auch wenn ich noch keine Ahnung
habe, wie ich den implementieren soll...ich hab ja schon tiny12 dar und
würd sie auch gerne nutzen... weiß jmd gute seiten wo so ne
implementierung schon beschrieben ist?

von Winfried (Gast)


Lesenswert?

Ja, Belegung sollte so funktionieren.

Software Uart sollte man per Timer machen. Einsprung in den Timer so
einstellen, dass du nach jeder Bitzeit hineinspringst, um das nächste
Bit seriell rauszuschieben. Klar, dass du dir da irgendwie den Zustand
merken musst, um beim nächsten Einsprung zu wissen, welches Bit jetzt
dran ist.

Empfangen geht dann ganz ähnlich.

von Rahul (Gast)


Lesenswert?

Zur SoftUART gibt es Application Notes auf der Atmel-Seite.

von Rahul (Gast)


Lesenswert?

ApplicationNotes: AVR304, AVR305, AVR306 und AVR307.
Unter http://www.atmel.com/dyn/products/app_notes.asp?family_id=607
zu finden...

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
Noch kein Account? Hier anmelden.