Last modified by Olli S. on 2017/04/28 21:52

From version 8.1
edited by Olli S.
on 2016/08/17 20:37
Change comment: Uploaded new attachment "app_main_cpp.png", version {1}
To version 9.1
edited by Olli S.
on 2016/08/17 20:39
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,7 +1,4 @@
1 -In diesem Dokument soll beschrieben werden, wie man die Daten für ein erstes eigenes (nachgebautes) KNX Gerät zusammenträgt
2 -
3 -und in ein Programm für den sogenannten „ARM“ Controller auf Basis des LPC1115 bzw. 1114 einträgt.
4 -
1 +In diesem Dokument soll beschrieben werden, wie man die Daten für ein erstes eigenes (nachgebautes) KNX Gerät zusammenträgt und in ein Programm für den sogenannten „ARM“ Controller auf Basis des LPC1115 bzw. 1114 einträgt.
5 5  Mit diesen Daten, der sblib, der passenden Produktdatenbank und der ETS Software ist es dann möglich dem Gerät die physikalische Adresse und das Applikationsprogramm zu übermitteln.
6 6  
7 7  
... ... @@ -9,4 +9,56 @@
9 9  
10 10  [[image:knxprod_hauptverzeichnis.png||height="113" width="758"]]Abbildung 1: Dateistruktur der *.knxprod Datei
11 11  
9 +
10 +Hier ist der Ordner „M-0083“ auszuwählen und es wird folgender Inhalt angezeigt:
11 +
12 +[[image:knxprod_unterverzeichnis.png||height="112" width="755"]]Abbildung 2: Dateistruktur des Ordners „M-0083“
13 +
14 +
15 +Die Datei „M-0083_A-007-12-AADB.xml“ lässt sich gut mit z.B. dem Notepad++ öffnen.
16 +
17 +Nun sollte man sich klar machen, welche Daten überhaupt für ein KNX Gerät zur Identifizierung benötigt werden:
18 +Hersteller Code (manufacturer)
19 +Gerätetyp (deviceType)
20 +Version
21 +Hardware Version
22 +Typ des Busankopplers
23 +
24 +Für den Start kann man sich am besten ein bestehendes Programm aus dem Repository von selfbus laden und dieses verändern. Um eine lauffähige Umgebung zu bekommen sollte dieses Tutorial durch gearbeitet werden: http:~/~/selfbus.myxwiki.org/xwiki/bin/view/Selfbus/Eclipse_ARM
25 +Anschließend kopiert man sich ein Projekt in LPCXpresso und kann loslegen:
26 +In der Datei „app_main.cpp“ findet sich die Routine „void setup()“ in der sich wiederrum der Aufruf der Routine „bcu.begin“ befindet.
27 +
28 +[[image:app_main_cpp.png||height="300" width="677"]]Abbildung 3: Setup eines KNX Gerätes
29 +
30 +(((
12 12  
32 +)))
33 +
34 +(((
35 +Diese hat die Übergabeparameter
36 +void BcuBase::begin(int manufacturer, int deviceType, int version)
37 +
38 +Der Hersteller Code (manufacturer), der Gerätetyp (deviceType) und die Version ist aus dem Dateinamen der bereits erwähnten Datei „M-0083_A-007-12-AADB.xml“ zu entnehmen.
39 +In diesem Fall ist
40 +0x0083 der Hersteller Code (manufacturer),
41 +0x0047 der Gerätetyp (deviceType) und
42 +0x12 die Version
43 +
44 +Analog dazu sind die entsprechenden Stellen für andere Geräte auszuwerten.
45 +
46 +Die Hardware Version, die wie in Abbildung 3 abgebildet ist, in einem Array abgelegt und anschließend in das userEeprom kopiert wird, lässt sich aus der Datei „M-0083_A-007-12-AADB.xml“ entnehmen. Sie ist unter dem Parameter „LdCtrlCompareProp“ zu finden. In der Datei ist in diesem Fall der Eintrag
47 +<LdCtrlCompareProp ObjIdx="0" PropId="78" InlineData="00000000004800000000" />
48 +zu erkennen. Dieser wird folgerndermaßen ausgewertet:
49 +Die Angabe ist Hexadezimal und 6 Byte lang. Angefangen wird hier bei der linken Stelle (MSB) und dann entsprechend 6 Bytes hinunter. Diese Daten werden dann in das Array übertragen.
50 +
51 +Für die Wahl des korrekten Busankopplers, für die die sblib kompiliert werden muss und an den auch die Parameter des Projektes in LPCXpresso angepasst werden müssen, ist der Parameter „MaskVersion“ wichtig. In der Datei „M-0083_A-007-12-AADB.xml“ ist der Eintrag MaskVersion="MV-0701" zu finden.
52 +Ist dort *70*, so wie hier zu finden, handelt es sich um ein BIM112 Busankoppler.
53 +*01* steht für eine BCU1, *02* für eine BCU2.
54 +Die Parameter in LPCXpresso für das neu erzeugte Projekt müssen an folgenden Stellen angepasst werden:
55 +
56 +
57 +)))
58 +
59 +(((
60 +
61 +)))