53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#include <cstdio>
|
|
#include "pico/stdlib.h"
|
|
#include "pico/critical_section.h"
|
|
#include "wizchip_conf.h"
|
|
#include "wizchip_spi.h"
|
|
#include "wizchip_qspi_pio.h"
|
|
|
|
static critical_section_t g_cris_sec;
|
|
|
|
void wizchip_cris_enter() {
|
|
critical_section_enter_blocking(&g_cris_sec);
|
|
}
|
|
|
|
void wizchip_cris_exit() {
|
|
critical_section_exit(&g_cris_sec);
|
|
}
|
|
|
|
void wizchip_reset() {
|
|
gpio_init(PIN_RST);
|
|
gpio_set_dir(PIN_RST, GPIO_OUT);
|
|
gpio_put(PIN_RST, 0);
|
|
sleep_ms(100);
|
|
gpio_put(PIN_RST, 1);
|
|
sleep_ms(100);
|
|
}
|
|
|
|
void wizchip_spi_initialize() {
|
|
wizchip_pio_init();
|
|
}
|
|
|
|
void wizchip_cris_initialize() {
|
|
critical_section_init(&g_cris_sec);
|
|
}
|
|
|
|
void wizchip_initialize() {
|
|
wizchip_pio_frame_end();
|
|
uint8_t memsize[2][8] = {{4, 4, 4, 4, 4, 4, 4, 4}, {4, 4, 4, 4, 4, 4, 4, 4}};
|
|
ctlwizchip(CW_INIT_WIZCHIP, (void *)memsize);
|
|
}
|
|
|
|
void wizchip_check() {
|
|
if (getCIDR() != 0x6300) {
|
|
printf("W6300 ACCESS ERR: CIDR = 0x%04x\n", getCIDR());
|
|
while (1);
|
|
}
|
|
}
|
|
|
|
void network_initialize(wiz_NetInfo net_info) {
|
|
uint8_t syslock = SYS_NET_LOCK;
|
|
ctlwizchip(CW_SYS_UNLOCK, &syslock);
|
|
ctlnetwork(CN_SET_NETINFO, (void *)&net_info);
|
|
}
|