Skip to content

Commit 15a6cff

Browse files
committed
xs2184-tsw202: add package to control PoE for TSW202 device
this package is used to configure the Power-over-Ethernet controller xs2184 found on TSW202 switches. The PoE doesn't work without this package. Investigation and Dokuments 'https://git.f2a.space/patrick/openwrt-24.10-tsw202/ -/wikis/POE-XS2184' Signed-off-by: Patrick Grimm <[email protected]>
1 parent 8a51592 commit 15a6cff

File tree

10 files changed

+1982
-0
lines changed

10 files changed

+1982
-0
lines changed

utils/xs2184-tsw202/Makefile

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
include $(TOPDIR)/rules.mk
2+
3+
4+
PKG_NAME:=xs2184-tsw202
5+
PKG_VERSION:=1.0.2
6+
PKG_RELEASE:=1
7+
8+
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
9+
PKG_MAINTAINER:=patrick <[email protected]>
10+
11+
include $(INCLUDE_DIR)/package.mk
12+
13+
ifeq ($(CONFIG_BIG_ENDIAN),y)
14+
TARGET_CFLAGS+= -DHAVE_BIG_ENDIAN=1
15+
endif
16+
TARGET_CFLAGS+= -D_GNU_SOURCE
17+
18+
define Package/xs2184-tsw202
19+
SECTION:=Applications
20+
CATEGORY:=Network
21+
SECTION:=utils
22+
CATEGORY:=Utilities
23+
TITLE:=XinSheng PoE/PSE i2c driver for Teltonika TSW202 Switch
24+
DEPENDS:=+i2c-tools +libuci
25+
endef
26+
27+
define Package/xs2184-tsw202/description
28+
ZheJiang XinSheng PoE/PSE SoC devices drivers;
29+
endef
30+
31+
define Build/Prepare
32+
mkdir -p $(PKG_BUILD_DIR)
33+
$(CP) ./files $(PKG_BUILD_DIR)/
34+
endef
35+
36+
define Build/Compile
37+
$(MAKE) -C $(PKG_BUILD_DIR)/files \
38+
$(TARGET_CONFIGURE_OPTS) \
39+
TARGET=Linux \
40+
CFLAGS="$(TARGET_CFLAGS)" \
41+
LDFLAGS="$(TARGET_LDFLAGS)"
42+
endef
43+
44+
define Package/xs2184-tsw202/install
45+
$(INSTALL_DIR) $(1)/usr/sbin
46+
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/xs2184 $(1)/usr/sbin/
47+
$(INSTALL_DIR) $(1)/etc/init.d
48+
$(INSTALL_BIN) ./files/xs2184.init $(1)/etc/init.d/xs2184
49+
$(INSTALL_DIR) $(1)/etc/config
50+
$(INSTALL_DATA) ./files/xs2184.config $(1)/etc/config/xs2184
51+
endef
52+
53+
$(eval $(call BuildPackage,xs2184-tsw202))

utils/xs2184-tsw202/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# XS2184 PSE driver and monitor app
2+
3+
## 检测原理
4+
- 正常工作时, PSE 协商使能, 供电给 PD, 并统计15轮 实时功耗;
5+
- 当平均功耗 为0, 判定 PD 出现异常, 关闭 PSE 对应 Port的供电;
6+
- 被关闭的 Port, 在下一轮统计时, 重新开启协商供电使能;
7+
- 实测, MS1800K 在 上电复位异常情况下, 实时功耗 为0 mW, 能被识别出异常, 并断电重启;
8+
9+
## 测试方法
10+
1. 正常 PoE - PD 组网;
11+
2. 后台执行: xs2184 -m 1000;
12+
3. xs2184 监听模式, 参数 -m: monitor 模式, 检测间隔 1000ms, 平均功耗计算周期: 默认 15 轮, -s <ms> 可修改;
13+
4. 观察 xs2184 日志, 会实时打印功耗和检测状态;
14+
5. 用镊子短路 MS1800K 的 C133 复位电容, 模拟上电无法启动的情况;
15+
6. 重复4), 对比关电和重新上电的行为, 以及MS1800K重新开机和功耗变化;
16+
17+
## Funktionsprinzip
18+
- Im Normalbetrieb verhandelt die PSE die Freigabe, versorgt das PD mit Strom und zeichnet den Stromverbrauch in Echtzeit über 15 Zyklen auf.
19+
- Wenn der durchschnittliche Stromverbrauch Null erreicht, wird das PD als fehlerhaft eingestuft und die PSE unterbricht die Stromversorgung des entsprechenden Ports.
20+
- Der deaktivierte Port verhandelt während des nächsten Verbrauchszyklus erneut die Freigabe der Stromversorgung.
21+
- Feldtests bestätigen, dass der MS1800K unter abnormalen Power-On-Reset-Bedingungen einen Echtzeit-Stromverbrauch von null mW aufweist, was die Erkennung von Anomalien und den anschließenden Neustart nach dem Ausschalten ermöglicht.
22+
23+
## Testmethodik
24+
1. Standard-PoE-PD-Netzwerkkonfiguration.
25+
2. Hintergrundausführung: xs2184 -m 1000.
26+
3. xs2184-Überwachungsmodus, Parameter -m: Überwachungsmodus, Erkennungsintervall 1000 ms, durchschnittlicher Stromverbrauchsberechnungszyklus: standardmäßig 15 Runden, änderbar mit -s in ms;
27+
4. Beobachten Sie die xs2184-Protokolle, die den Stromverbrauch und den Erkennungsstatus in Echtzeit anzeigen.
28+
5. Verwenden Sie eine Pinzette, um den C133-Reset-Kondensator des MS1800K kurzzuschließen und so einen Fehler beim Hochfahren nach dem Einschalten zu simulieren.
29+
6. Wiederholen Sie Schritt 4 und vergleichen Sie das Verhalten nach dem Ausschalten und erneuten Einschalten mit dem Neustart des MS1800K und den Änderungen des Stromverbrauchs.
30+
31+
## UI einfach
32+
```
33+
uci add luci command
34+
uci set luci.@command[-1].name="poe-status"
35+
uci set luci.@command[-1].command="xs2184 -c"
36+
last=8
37+
for i in $(seq 1 $last);do
38+
uci add luci command
39+
uci set luci.@command[-1].name="poe-lan$i-on"
40+
uci set luci.@command[-1].command="xs2184 -u $last"
41+
uci add luci command
42+
uci set luci.@command[-1].name="poe-lan$i-off"
43+
uci set luci.@command[-1].command="xs2184 -d $last"
44+
last=$((last-1))
45+
done
46+
uci commit luci
47+
```

utils/xs2184-tsw202/files/Makefile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
SRCS= \
2+
libxs2184/xs2184.c \
3+
libxs2184/i2cbusses.c
4+
5+
ifeq ($(CC),cc)
6+
CC=${CROSS_COMPILE}gcc
7+
endif
8+
9+
all:
10+
${CC} ${CFLAGS} -Wno-format-overflow -Wall -Werror -O1 -s ${SRCS} -o xs2184 ${LDFLAGS} -luci -lpthread -ldl
11+
12+
clean:
13+
-rm -f *.o xs2184

0 commit comments

Comments
 (0)