1

Temat: GPIO przycisku RESET

Czy GPIO dla przycisku reset jest takie samo dla chwilowego wciśnięcia jak i dla wciśnięcia i przytrzymania? Czy to zależy od routera?
Chodzi mi o to czy jak wcisnę i puszczę przycisk RESET to wywoływane jest inne GPIO a jak wcisnę i przytrzymam to inne?

2

Odp: GPIO przycisku RESET

Jest wywoływane to samo. Oprogramowanie steruje resztą.

https://tplinkforum.pl - Polskie forum poświęcone tematyce urządzeń firmy TP-Link i Neffos

3

Odp: GPIO przycisku RESET

OK, a jeszcze jedno - jak wykonam polecenie (OpenWrt CC 15.05.1):

root@OpenWrt:~# cat /sys/kernel/debug/gpio
GPIOs 472-503, platform/fffe0084.gpio-controller, bcm63xx-gpio.0:
 gpio-476 (HW553:blue:power    ) out lo
 gpio-477 (HW553:red:power     ) out hi
 gpio-481 (rfkill              ) in  hi
 gpio-484 (HW553:red:hspa      ) out hi
 gpio-485 (HW553:blue:hspa     ) out hi
 gpio-494 (HW553:red:lan       ) out hi
 gpio-495 (HW553:blue:lan      ) out hi
 gpio-497 (HW553:red:wifi      ) out hi

GPIOs 504-511, platform/fffe0080.gpio-controller, bcm63xx-gpio.1:
 gpio-506 (HW553:red:adsl      ) out hi
 gpio-507 (HW553:blue:adsl     ) out hi
 gpio-509 (reset               ) in  hi

to pokazuje mi jakieś dziwne, wysokie GPIO. Czy to normalne? W wersji AA to polecenie pokazywało GPIO z zakresu 0-39. Z tego linku wynika iż przycisk RESET ma GPIO Active High 5:
brcm63xx: HG553 buttons support
Natomiast znalazłem kod źródłowy dla HG553 i w pliku boardparms.c jest funkcja:

BP_GPIO_37_AL, /* usGpioPressAndHoldReset */

co oznacza GPIO 37 Active Low dla przycisku RESET:
boardparms.c
Czy to chodzi o ten sam RESET?

4

Odp: GPIO przycisku RESET

Dobrze jest, 5 w kolejności gpio z drugiego zestawu. Zestaw drugi dostał numerację od 504, więc reset jest wg niego na 509.

Jest to linia wejściowa (in) i jej normalny stan to wysoki (do vcc). Jak naciśniesz reset to jest to low, do masy i to jest właśnie stan aktywny. Zwykła elektronika cyfrowa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez jzef 2016-12-27 07:35:04)

Odp: GPIO przycisku RESET

OK, dzięki już rozwiązałem problem z działaniem przycisku RESET w CFE w tym wątku:
Tryb OEM Update

Ale odnośnie numeracji GPIO w CC 15.05.1 to nie powinno tak być bo wprowadza tylko zamieszanie. BCM6358 ma 40 GPIO numerowane od 0-39, nawet w kodzie źródłowym producenta jest taka numeracja a nie jakieś wysokie 400-coś i więcej:

/* s48571 add for VDF HG553 porting 20080104 begin*/
static BOARD_PARAMETERS g_huawei96358gw_HG553 =
{
    "HW553",                            /* szBoardId */
    (BP_OVERLAY_PCI | 
        BP_OVERLAY_SPI_EXT_CS),                /* usGPIOOverlay */
    {{BP_ENET_NO_PHY} ,                  /* sw */
     {BP_ENET_EXTERNAL_SWITCH,              /* ucPhyType */
      0x0,                                  /* ucPhyAddress */
      BP_NOT_DEFINED,                       /* usGpioPhyReset */
      BP_NOT_DEFINED,                       /* usGpioPhyLinkSpeed */
      BP_ENET_CONFIG_MDIO_PSEUDO_PHY,       /* usConfigType */
      BP_ENET_REVERSE_MII,                   /* usReverseMii */
      SW_INFO_DEFAULT(4)}},                 /* sw */
    {{BP_VOIP_DSP,                          /* ucDspType */
      0,                                    /* ucDspAddress */
      0,                                    /* usExtIntrVoip */
      0,                                    /* usGpioVoipReset */
      0,                                    /* usGpioVoipIntr */
      BP_NOT_DEFINED,                        /* usGpioLedVoip */
      BP_NOT_DEFINED,                         /* usGpioLedPSTN  */
      BP_NOT_DEFINED,                        /* usGpioLedLine0 */        
      BP_NOT_DEFINED,                        /* usGpioLedLine1 */
      0,                                    /* usCsVoip */  
      BP_NOT_DEFINED,                        /* usGpioRelayCtl*/
      BP_NOT_DEFINED,                        /* usGpioRingDetc*/
      BP_NOT_DEFINED,                        /* usGpioLoopDetc*/      
      Legerity_88221,                    /* slic type */
      DAA_Not_Defined},                         /* DAA  type */
     {BP_VOIP_NO_DSP}},                     /* ucDspType */
    BP_MEMORY_64MB_1_CHIP,                  /* usSdramSize */
    BP_PSI_DEFAULT_SIZE,                    /* usPsiSize */
    BP_NOT_DEFINED,                         /* usGpioRj11InnerPair */
    BP_NOT_DEFINED,                         /* usGpioRj11OuterPair */
    BP_GPIO_37_AL,                          /* usGpioPressAndHoldReset */
    BP_NOT_DEFINED,                         /* usGpioUartRts */
    BP_NOT_DEFINED,                         /* usGpioUartCts */
    BP_GPIO_23_AL,                          /* usGpioLedAdsl */
    BP_GPIO_22_AL,                         /* usGpioLedAdslFail */
    BP_GPIO_9_AL,                           /* wlan key  */
    BP_GPIO_25_AL,                         /* usGpioLedWirelessFail */
    BP_NOT_DEFINED,                         /* usGpioLedUsb */
    BP_NOT_DEFINED,                         /* usGpioLedHpna */
    BP_NOT_DEFINED,                          /* usGpioLedWanData */     
    BP_NOT_DEFINED,                         /* usGpioLedWanDataFail */
    BP_GPIO_13_AL,                         /* usGpioLedHspa */
    BP_GPIO_12_AL,                         /* usGpioLedHspaFail */
    BP_GPIO_35_AL,                         /* usGpioLedInternet*/
    BP_GPIO_34_AL,                         /* usGpioLedInternetFail*/
    BP_NOT_DEFINED,                         /* usGpioLedPpp */
    BP_NOT_DEFINED,                         /* usGpioLedPppFail */
    BP_GPIO_4_AL,                         /* usGpioLedBlPowerOn */
    BP_NOT_DEFINED,                         /* usGpioLedBlResetCfg */
    BP_GPIO_5_AL,                         /* usGpioLedBlStop */
    BP_NOT_DEFINED,                          /* usExtIntrAdslDyingGasp */
    BP_NOT_DEFINED,                         /* usExtIntrHpna */
    BP_NOT_DEFINED,                         /* usCsHpna */
    BP_WLAN_ANT_MAIN,                       /* usAntInUseWireless */
    BP_GPIO_9_AL,                         /* usGpioSesBtnWireless */
    BP_EXT_INTR_3,                          /* usExtIntrSesBtnWireless */
    BP_NOT_DEFINED,                         /* usGpioLedSesWireless */ 
    BP_NOT_DEFINED,                         /* usCsHpi */
    BP_NOT_DEFINED,                         /* usVcopeResetGpio */
    BP_NOT_DEFINED,                         /* usVcopeRelayGpio */
    BP_NOT_DEFINED,                         /* usVcopeBoardRev */
    1,                                      /* usCMTThead */    
    GPIO_GET_BOARD_VER_MASK | GPIO_LED_MODE_MMASK,   /* Hardware config */
    {BP_NOT_DEFINED,                         /* PCB version low bit GPIO */
     BP_NOT_DEFINED},                        /* PCB version high bit GPIO */
    {BP_GPIO_7_AL,                          /* Board version low bit GPIO */
     BP_NOT_DEFINED,                          /* Board version middle bit GPIO */                   
     BP_NOT_DEFINED,                          /* Board version high bit GPIO */       
     BP_NOT_DEFINED}                        /* usReserve */
};

/* s48571 add for VDF HG553 porting 20080104 end */

Czy w innych routerach z CC 15.05.1 z chipem Broadcom system też korzysta z takich wysokich GPIO?

6

Odp: GPIO przycisku RESET

Z programowego punktu widzenia numeracja nie ma znaczenia. A że masz inną wizję niż deweloperzy openwrt czy kernela, no cóż, tak bywa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez jzef 2016-12-27 10:31:21)

Odp: GPIO przycisku RESET

Cezary napisał/a:

Z programowego punktu widzenia numeracja nie ma znaczenia. A że masz inną wizję niż deweloperzy openwrt czy kernela, no cóż, tak bywa.

Chciałem zaznaczyć iż to nie ja mam inną wizję tylko developerom OpenWrt się odmieniło - przypominam iż w AA było poprawnie GPIO 0-39 smile

No nic, skoro działa to OK. Teraz - po tym jak zmodyfikowałem kod źródłowy CFE i wiem jakie są GPIO każdej diody i przycisku, to jest mi obojętne jak są te GPIO wyświetlane w OpenWrt ale jakbym zaczynał teraz od wersji CC to informacje GPIO by mnie zdezorientowały przy modyfikacji kodu bootloadera.