It is currently Tue 24. Oct 2017, 10:30


All times are UTC + 1 hour




Post new topic Reply to topic  [ 17 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Wed 19. Dec 2012, 14:15 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
Das mit der LC-Einheit ist eigentlich ganz einfach.
Es gibt PLCBUS1 und PLCBUS2
Der Unterschied ist die Größe des Impuls den die LC-Einheit erzeugt, entsprechend sind die Bauteile anders dimensioniert.
Für PLCBUS1 ist auf dem Chip-Modul die Induktivität schon vorhanden und man braucht nur den externen Kondensator.
Für PLCBUS2 muss auch die Induktivität extern sein.
Die Induktivität auf dem Chip-Modul ist zwischen Pin 21-22.
Bei PLCBUS2 werden somit die Pins 21 und 22 nicht belegt.
Es gibt "alte" 1141-Interface, die im Layout eine Verbindung vom Kondensator zum Pin 21 haben.
Die ist überflüssig und bringt auch nichts. Bei neueren Ausführungen wurde das im Layout geändert!

Zu deinem Testaufbau.
Wieso soll ein Chip-Modul von sich aus auf einen Befehl des 1141 antworten?
Das Chip-Modul empfängt nur die PLCBUS Befehle und stellt sie in die Register.
Auswerten und antworten muss dein Controller (dein Programm), der am I²C hängt.
Also wäre die erste Frage, kannst du mit dem Controller den PLCBUS-Befehl vom 1141 empfangen? Bzw. kannst du am Bus mithören?
Anders verhält es sich, wenn du im PLCBUS Modul über die Register eine PLCBUS Adresse setzt, dann würde das Chip-Module einen Befehl an seine Adresse mit einem ACK bestätigen. Ein ACK ist aber kein Befehl sondern nur ein Impuls!

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Wed 19. Dec 2012, 15:16 
Offline

Joined: Mon 4. Jun 2012, 16:09
Posts: 10
Vermiutlich habe ich mich falsch ausgedrückt.

Ich meinte, dass ich mit meinem Logic Analyzer sehen kann, ob die Daten eines Controllers direkt an der I2C Schnittstelle des anderen PLCBUS-Moduls ersichtlich sind. Habe natürlich noch kein Programm auf der Platine (ATmega8). Wollte erst die Übertragung verstehen.

Wenn ich das mit dem Plcbus1 bzw. Plcbus2 Puls richtig verstehe, kann es sein da meine Platine auf Plcbus2 Puls arbeitet dass diese auch keine Daten Übertragen bekommt bzw. den Controller nicht sieht?

Schon mal vielen Dank für deine Geduld.

Habe noch ein Bild des Versuches den Bus abzuhören.



Gruß,

East


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
PostPosted: Thu 20. Dec 2012, 09:58 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
PLCBUS1 und PLCBUS2 sind 100% kompatibel.
Wie geschrieben ist der einzige Unterschied die Stärke/Höhe des Impuls.
Dadurch ist eine PLCBUS2 Übertragung besser - hebt sich stärker vom Rauschen ab.

Die Controller wie 1141, 4034 oder der Phasenkoppler verwenden alle PLCBUS2.
Die Micromodule arbeiten meist mit PLCBUS1, da die Bauteile kleiner sind.

Mit einem Logic Analyser am I²C wirst du die PLC-BUS Kommunikation ohne Software in deinem Controller nicht sehen.
Das Chip-Modul gibt da nichts aus.
Empfangene PLC-BUS Nachrichten landen in den Registern und müssen explizit über I²C dort ausgelesen werden.

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Thu 20. Dec 2012, 11:12 
Offline

Joined: Mon 4. Jun 2012, 16:09
Posts: 10
Das heisst ich muss vorher ein Programm schreiben, um diese Register wie EEProm,IO,RXTX usw. auszulesen.

Sprich ich kann dann auch bspw. in Data1 und Data2 meine I2C Daten ablegen und wieder auslesen?

Das Problem was ich dabei nur sehe ist, dass in der Doku 2.10 die Register zwar beschrieben, aber mit 0101 1100 bspw. hex (0x5C) angegeben wird. Wenn ich jetzt das mit den UPB Registern vergleiche habe ich unterschiebliche Hexcodes für nicht gleiche Register.

Da ja der X10 Code gleich sein soll, könnte ich diese doch zum vergleich nehmen oder?

Das ist ein ganzes Stück arbeit, denn das ist nicht alles was ich damit machen möchte. Den Atmega8 der an dem PLCBUS-Modul sitzt, soll zusätzlich noch über Mutimastermode verfügen und mit einem Atxmega128 über einen Leveltranslator Daten schicken und Befehle von diesem erhalten.


Top
 Profile  
 
PostPosted: Fri 21. Dec 2012, 08:49 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
zum Verständnis.

PLC-BUS ist nicht UPB und auch nicht X10. PLC-BUS ist zu keinem der beiden Systeme Hardware kompatibel!
PLC-BUS vereint die zwei Technologien zu einer neuen Technologie.

Wenn du das Ganze mit Netzwerkschichten vergleichst kann man es vielleicht so ausdrücken.
Die unterste Schicht ist UPB und die obere Schicht ist X10 - im weitesten Sinne wie Ethernet und TCP/IP.

Das heißt aber nicht, dass PLC-BUS Hardware kompatibel zu UPB ist.
UPB stammt von ein anderer Hersteller der andere Prozessoren verwendet und somit andere Register.
Von UPB stammt nur das Prinzip wie Daten über ein vorhandenes Stromkabel gesendet werden.
UPB ist für 110V/60Hz definiert. PLC-BUS überführt dies in die 230V/50Hz Welt.

Dasselbe gilt für X10.
Von x10 stammt nur die Adressierung, und das auch nur im Home- und Unit-Code Bereich, da X10 nur 256 Adressen kennt.
PLC-BUS erweitert den X10 Adressraum mit dem User-Code auf 64k-Adressen.
Es besteht aber die Möglichkeit durch die Verwendung derselben Basisadressen eine bestehende X10 Installation mit PLC-BUS zu erweitern und mit einem speziellen Koppler die Welten zu verbinden.

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Fri 21. Dec 2012, 15:43 
Offline

Joined: Mon 4. Jun 2012, 16:09
Posts: 10
Oh, hatte ich schon vermutet................

Vielen Dank für deine Geduld und dein Verständnis. Hast mir sehr weiter geholfen.

Bvor ich jetzt die Programme in C schreibe, könntest Du mir vielleicht noch ein paar Tipps geben, wie ich am besten und schnellsten ein Protokoll auf die Beine stelle?

Habe schon eine ungefähre Vorstellung. Leider bin ich noch frisch im schreiben mit C. Daher denke ich, das ich Stück für Stück die Register in jeweils einem PLCBUS-Modul beschreibe und erstmal die Verbindung zum anderen, durch Auslesen des Redundanten Registers teste......

Heisst ich sehe die Module ersteinmal wie bspw. einen Digitalen Temp.-Sensor (DS1621) an.
Oder wie meinst Du geht man am besten vor?

Habe bereits im Datasheet sehen können, dass das I2C - Protokoll die Zero Cross braucht. Mir ist allerdings nicht klar warum diese bei der I2C- Übertragung von Controller zum PLC-Controller benötigt wird. Warum gibt es hier Zeitfenster T2 und T4??

Die Fenster verstehe ich nicht ganz, da ja das Modul intern die PPM moduliert und auf die Halbwellen aufmoduliert. Warum wird das beim I2C benötigt?? Und wie bzw. wieviel BITs kann ich in diesen Zeitfenstern T2 und T4 aufs SDA übertragen ???

Könntest Du mir da noch ein wenig auf die Sprünge helfen?

Wäre super nett von Dir.


Gruß und großen Dank,

East


Top
 Profile  
 
PostPosted: Thu 3. Jan 2013, 12:09 
Offline

Joined: Mon 4. Jun 2012, 16:09
Posts: 10
Hallo und Frohes neues Jahr,

habe vielleicht noch eine Frage bzgl. des I2C-Protokolls. Und zwar würde ich gerne wissen, ob die Zeitfenster t2 und t4 einen DSatenaustausch von PLC zu µC eine Übertragung von 60Khz erlauben, oder ich das falsch verstehe?

Weiter würde ich auch wissen wollen, ob das Auslesen des ACK im RXTX-Register nur bei empfangen der kompletten Nachricht oder schon jede Halbwelle dieses im Register gesetzt wird.

Für Hilfen diesbezüglich wäre ich sehr Dankbar.

Gruß,

East


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 17 posts ]  Go to page Previous  1, 2

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Imprint