8 #ifdef ARDUINO_ARCH_RP2040
10 #ifndef USE_RP2040_EEPROM_EMULATION
11 #ifndef KNX_FLASH_OFFSET
12 #define KNX_FLASH_OFFSET 0x180000
13 #pragma warning "KNX_FLASH_OFFSET not defined, using 0x180000"
17 #ifdef USE_RP2040_LARGE_EEPROM_EMULATION
18 #define USE_RP2040_EEPROM_EMULATION
22 #pragma warn "KNX_SERIAL not defined, using Serial1"
23 #define KNX_SERIAL Serial1
27 #if ARDUINO_PICO_MAJOR * 10000 + ARDUINO_PICO_MINOR * 100 + ARDUINO_PICO_REVISION < 30700
28 #pragma error "arduino-pico >= 3.7.0 needed"
33 #include <W5500lwIP.h>
37 #define KNX_NETIF WiFi
40 #if USE_KNX_DMA_UART == 1
41 #define KNX_DMA_UART uart1
42 #define KNX_DMA_UART_IRQ UART1_IRQ
43 #define KNX_DMA_UART_DREQ DREQ_UART1_RX
45 #define KNX_DMA_UART uart0
46 #define KNX_DMA_UART_IRQ UART0_IRQ
47 #define KNX_DMA_UART_DREQ DREQ_UART0_RX
50 #if USE_KNX_DMA_IRQ == 1
51 #define KNX_DMA_IRQ DMA_IRQ_1
53 #define KNX_DMA_IRQ DMA_IRQ_0
64 void knxUartPins(pin_size_t rxPin, pin_size_t txPin);
67 #ifdef USE_KNX_DMA_UART
70 void knxUart( HardwareSerial* serial)
override {};
75 size_t writeUart(
const uint8_t data)
override;
76 size_t writeUart(
const uint8_t* buffer,
size_t size)
override
94 #ifdef USE_RP2040_EEPROM_EMULATION
98 #ifdef USE_RP2040_LARGE_EEPROM_EMULATION
113 virtual void flashErase(uint16_t eraseBlockNum);
122 #if defined(KNX_NETIF)
132 int readBytesMultiCast(uint8_t* buffer, uint16_t maxLen, uint32_t& src_addr, uint16_t& src_port)
override;
135 bool sendBytesUniCast(uint32_t addr, uint16_t port, uint8_t* buffer, uint16_t len)
override;
137 #define UDP_UNICAST _udp
146 pin_size_t
_rxPin = UART_PIN_NOT_DEFINED;
148 pin_size_t
_txPin = UART_PIN_NOT_DEFINED;