Odp: Cudy C200P
no dobra to dla 3 będzie 0x88 + 3/2 ?
https://www.lcsc.com/datasheet/lcsc_dat … 626921.pdf str 23
Port 0~1 Detected PD Class Registers @ 0x88 of Page 0
Port 2~3 Detected PD Class Registers @ 0x89 of Page 0
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Sprzęt / Hardware → Cudy C200P
Strony Poprzednia 1 … 19 20 21 22 23 … 27 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
no dobra to dla 3 będzie 0x88 + 3/2 ?
https://www.lcsc.com/datasheet/lcsc_dat … 626921.pdf str 23
Port 0~1 Detected PD Class Registers @ 0x88 of Page 0
Port 2~3 Detected PD Class Registers @ 0x89 of Page 0
Nie - 0x89 + 3/2 jeżeli tam się ma to przeliczać.
Całkowicie nie czuję tego
#define IP804AR_REG_PORT_PD_CLASS(port) (0x88 + (port / 2))
#define IP804AR_SHIFT_PORT_PD_CLASS(port) (4 * (port % 2))
#define IP804AR_MASK_PORT_PD_CLASS(port) \
(GENMASK(2, 0) << IP804AR_SHIFT_PORT_PD_CLASS(port)) Tzn wiem, co ma zrobić, ale kodu w ogóle.
Więc nie korzystaj z tych makr tylko przeliczaj sobie wartości tak jak jest to wymagane dla każdego portu.
#define IP804AR_REG_PORT_PD_CLASS(port) (0x88 + (port / 2))
dla wartości 0 i 1 mam nadal rejestr 0x88
dla wartości 2 i 3 będzie już rejestr 0x89?
Jeśli tak, to powinno działać bez dodawania kolejnego rejestru.
Nie czytałem pdf'a i nie wiem co tam ma być podane. Jeżeli jest tak jak piszesz to po co dwa razy zrobiłeś to makro?
Wg pdf są dwa rejestry dla 4 portów.
0x88 i 0x89. Pierwszy dla portu 0 i 1 a drugi dla portu 2 i 3.
W oryginalnym pliku z którego korzystam dla ip802ar. są dwa porty - zatem jeden rejestr.
Tak jak wyżej wygląda w oryginale makro.
https://ibb.co/zVmN2Ry8
wg datasheet oba rejestry są takie same. Dlatego pytałem, czy w tym makrze jak port będzie 3 i 4 to przejdzie mi na rejestr 0x89.
Zwykła operacja matermatyczna więc tak.
Ok. Dziękuję.
Poprawiłem na git. możesz próbować, czy pójdzie.
P.S. Sorki, za tyle pytań, ale ja nie pracuję jako programista, ba nawet nie pracuję obecnie w elektronice ![]()
Skompilować się skompilowało, ale nawet jak zrobię swój własny profil to w sumie nic to nie robi.
Pytanie, czy to już jest ogarnięte w samym programie poemgr?
Bo ten PR nie jest jeszcze zamknięty na 8008 i 802.
a przeglądajac poemgr.c:
#include "poemgr.h"
extern struct poemgr_profile poemgr_profile_psx10;
extern struct poemgr_profile poemgr_profile_psx28;
extern struct poemgr_profile poemgr_profile_uswflex;
static struct poemgr_profile *poemgr_profiles[] = {
&poemgr_profile_psx10,
&poemgr_profile_psx28,
&poemgr_profile_uswflex,
NULL
};Strzelam, nie musi mieć jednak profilu zdefiniowanego najpierw??
Choć wg README, to chyba sam tworzysz ten profil i wg tego powinien działać.
W contrib masz trzy pliki konfiguracyjne.
każdy dla trzech urządzeń, które wcześniej były dodane.
usw-lite.config
config poemgr 'settings'
option profile 'usw-flex'
option disabled '1'
option power_budget '0'
config port 'lan2'
option name 'lan2'
option port '3'
option disabled '1'
config port 'lan3'
option name 'lan3'
option port '2'
option disabled '1'
config port 'lan4'
option name 'lan4'
option port '1'
option disabled '1'
config port 'lan5'
option name 'lan5'
option port '0'
option disabled '1' I jeszcze brakuje pliku .c od profilu dostarczającego poemgr_profile_cudyc200p
@Cezary, dodałem kilka linii:
wg pliku nagłówkowego:
/* Port power control */
#define IP804AR_PORT_DISABLED 0b00
#define IP804AR_PORT_ENABLED 0b01
#define IP804AR_PORT_FORCE 0b10 c200p.config:
# SPDX-License-Identifier: CC0-1.0
config poemgr 'settings'
option profile 'c200p'
option disabled '0'
option power_budget '50'
config port 'lan2'
option port '3'
option disabled '0'
config port 'lan3'
option port '2'
option disabled '0'
config port 'lan4'
option port '1'
option disabled '0'
config port 'lan5'
option port '0'
option disabled '0' Budżet POE liczą chyba sumaryczny - u nas wg spec producenta:
- Max Power on a Single PoE Ports 30W
- MAX Power Consuption:
* PoE: 55W
* PoE (when USB Device is plugged in): 50W
* No PoE: 5W
No i właśnie wychodzi, że max PoE to 50W? Na razie tyle ustawiłem w profilu.
git diff
diff --git a/contrib/uci-defaults.sh b/contrib/uci-defaults.sh
index c07ddb4..8229f1b 100644
--- a/contrib/uci-defaults.sh
+++ b/contrib/uci-defaults.sh
@@ -6,6 +6,9 @@
board=$(board_name)
case "$board" in
+cudy,c200p)
+ cp /usr/lib/poemgr/config/c200p.config /etc/config/poemgr
+ ;;
plasmacloud,psx8|\
plasmacloud,psx10)
cp /usr/lib/poemgr/config/psx10.config /etc/config/poemgr
diff --git a/openwrt/poemgr/Makefile b/openwrt/poemgr/Makefile
index 881266d..a406fb1 100644
--- a/openwrt/poemgr/Makefile
+++ b/openwrt/poemgr/Makefile
@@ -33,6 +33,7 @@ define Package/poemgr/install
$(INSTALL_DIR) $(1)/sbin $(1)/usr/lib/poemgr/config $(1)/etc/config $(1)/etc/uci-defaults $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/poemgr $(1)/sbin/poemgr
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/uswlite-pse-enable $(1)/usr/lib/poemgr/uswlite-pse-enable
+ $(CP) $(PKG_BUILD_DIR)/contrib/c200p.config $(1)/usr/lib/poemgr/config/c200p.config
$(CP) $(PKG_BUILD_DIR)/contrib/psx10.config $(1)/usr/lib/poemgr/config/psx10.config
$(CP) $(PKG_BUILD_DIR)/contrib/psx28.config $(1)/usr/lib/poemgr/config/psx28.config
$(CP) $(PKG_BUILD_DIR)/contrib/usw-lite.config $(1)/usr/lib/poemgr/config/usw-lite.configPoprawki na github. Jak chcesz, możesz spróbować, czy teraz coś ruszy. ![]()
55W jest, per port max 30, ale to nie oznacza że możesz pobrać 4x30 W, tylko max 55 (bez usb). WIęc option power_budget '55' jak już albo 50 jak coś jest do usb dołączone (tak cudy robi).
Nie ruszy to. Konfig sam dodałem - pisałem wcześniej. Potrzebny jest jeszcze plik która woła te funkcje, to też już pisałem.
Ale w repo nie widzę pliku, który woła funkcje dla innych, żeby podpatrzeć.
Ja dodałem dwa pliku do IP804 - ip804ar.h i ip804ar.c, nie wiem jaki plik jeszcze potrzebny jest?
uswflex.c, psx10.c oraz psx28.c. One dostarczają poemgr_profile_psx10, poemgr_profile_psx28 oraz poemgr_profile_uswflex które sam pokazałeś w poście 511. Sama obsługa chipa to za mało, teraz potrzebny jest mały kodzik który integruje profil z tym do obsługi konkretnego chipa.
OK. Teraz rozumiem, o co chodzi.
No to tego to ja nie ogarnę.
Co ty opowiadasz, wzoruj się na uswflexie i zrób swoje dla cudy. Przecież potrafisz.
To już trochę za dużo...
Szkoda, że oprócz Ciebie Cezary, nikt nie próbuje pomóc.
/*#define PSX10_PSE_PORTMASK 0xffNie moge rozkminić co to?
Jedynie co mi pasuje wg datasheet od ip8008 to
The 8-bit checksum for I2C write cycle is calculated as the following:
0xFF - (7-bit slave address and R/W bit + 8-bit register address + 8-bit data + carry out bits) =
8-bit checksum.
In write cycle, the IP8008 will verify the checksum bits and if the checksum fails, the data will not be
written into the register and a NACK bit is sent back to the host. If the checksum succeeds, the register
will be written and an ACK bit is sent back to the host. To się nawet nie skompiluje, zostawiłeś makro po inną nazwą. Czemu sam tego nie kompilujesz? Zamiana kodu w ciemno nic nie daje przecież.
Napisz mi jak mam kompilować. To spróbuję sam.
Co mam klępnac w konsoli.
- w źródłach openwrt jest juz poemgr, zmień sobie wskazanie na swojego git'a i normalnie próbuj skompilować pakiet
lub - skopiuj te źródła które masz do katalogu poemgr1 w pacakge, zmień makefile w tych źródłach żeby była nowa nazwa pakietu (np poemgr1) i jego kompiluj.
Wsparcie dla urządzenia poszło do repo: https://github.com/openwrt/openwrt/comm … 08937a61d5 . Gratulacje.
@Cezary, bez Twojego wkładu w życiu by się nie udało. Dziękuję za poświęcony czas i pomoc. Pozdrawiam Marcin
Edit.
Teraz czekamy na kolejne wydanie - powinien pojawić się już oficjalnie tak? Czy jeszcze po drodze coś czeka?
Strony Poprzednia 1 … 19 20 21 22 23 … 27 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Sprzęt / Hardware → Cudy C200P
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc