#include #include #include #include #include #include #include #include #include wiz_NetInfo wizNetInfo = { .mac = { 0xa0, 0x57, 0x62, 0x01, 0x02, 0x03 }, .dhcp = NETINFO_DHCP }; void wizchip_cs_select(void) { HAL_GPIO_WritePin(ETHER_CS_GPIO_Port, ETHER_CS_Pin, GPIO_PIN_RESET); } void wizchip_cs_deselect(void) { HAL_GPIO_WritePin(ETHER_CS_GPIO_Port, ETHER_CS_Pin, GPIO_PIN_SET); } uint8_t wizchip_spi_readbyte(void) { uint8_t rbuf; HAL_SPI_Receive(ðerSpi, &rbuf, 1, HAL_MAX_DELAY); return rbuf; } void wizchip_spi_writebyte(uint8_t wb) { HAL_SPI_Transmit(ðerSpi, &wb, 1, HAL_MAX_DELAY); } void wizchip_spi_readburst(uint8_t* pBuf, uint16_t len) { } void wizchip_spi_writeburst(uint8_t* pBuf, uint16_t len) { } static void wizReset(bool b) { HAL_GPIO_WritePin(ETHER_RES_GPIO_Port, ETHER_RES_Pin, b ? GPIO_PIN_RESET : GPIO_PIN_SET); } static void wizDHCPHandler(void *handle) { uint8_t phyLink = 0; int8_t res = ctlwizchip(CW_GET_PHYLINK, (void*) &phyLink); coloredMsg(LOG_RED, "wizdh, ctlwizchip returns %d, phy link is %d", res, phyLink); } int wizInit() { coloredMsg(LOG_RED, "wizI, resetting Ethernet module"); wizReset(true); activeDelay(2); wizReset(false); activeDelay(2); coloredMsg(LOG_RED, "wizI, initializing Ethernet module"); int8_t res = wizchip_init(NULL, NULL); coloredMsg(LOG_RED, "wizI, module driver returned %d", res); wizchip_setnetinfo(&wizNetInfo); coloredMsg(LOG_RED, "wizI, netinfo set to Ethernet module"); schAdd(wizDHCPHandler, NULL, 0, 1000); coloredMsg(LOG_RED, "wizI, DHCP handler scheduled"); return 0; }