start using new COM module in n27, r05 and t03.

This commit is contained in:
Martin Preuss
2025-07-19 09:47:23 +02:00
parent 4a5ba97b85
commit b7234a6da2
6 changed files with 78 additions and 21 deletions

View File

@@ -70,6 +70,17 @@
.equ COM_IRQ_GIMSK_ATTN = PCIE0
.equ COM_CLK_DDR = DDRA
.equ COM_CLK_INPUT = PINA
.equ COM_CLK_OUTPUT = PORTA
.equ COM_CLK_PIN = PORTA7
.equ COM_IRQ_ADDR_CLK = PCMSK0
.equ COM_IRQ_BIT_CLK = PCINT7 ; bit 7 in PCMSK0
.equ COM_IRQ_GIFR_CLK = PCIF0
.equ COM_IRQ_GIMSK_CLK = PCIE0
; ---------------------------------------------------------------------------
; TWI master module

View File

@@ -61,7 +61,8 @@
#define MODULES_CLOCK
#define MODULES_LED_SIMPLE
#define MODULES_NETWORK
#define MODULES_UART_BITBANG
;#define MODULES_UART_BITBANG
#define MODULES_COM2W
#define MODULES_TWI_MASTER
;#define MODULES_LCD
;#define LCD_MINIMAL_FONT
@@ -123,7 +124,8 @@
; rjmp main ; Reset vector
rjmp BOOTLOADER_ADDR ; Reset vector ; use this for flashed system
reti ; EXT_INT0
rjmp UART_BitBang_PcintIsr ; PCI0
; rjmp UART_BitBang_PcintIsr ; PCI0
rjmp com2wPcintIsr ; PCI0
reti ; PCI1
reti ; WATCHDOG
reti ; ICP1
@@ -218,7 +220,8 @@ onEveryLoop:
; ---------------------------------------------------------------------------
; defines for network interface
.equ netInterfaceData = uart_bitbang_iface
;.equ netInterfaceData = uart_bitbang_iface
.equ netInterfaceData = com2w_iface

View File

@@ -56,11 +56,11 @@
.equ COM_HALFBIT_LENGTH = 26000 ; see https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmitter
; settings for comOnUart0
;.equ COM_DATA_DDR = DDRA
;.equ COM_DATA_INPUT = PINA
;.equ COM_DATA_OUTPUT = PORTA
;.equ COM_DATA_PUE = PUEA
;.equ COM_DATA_PIN = PORTA2
.equ COM_DATA0_DDR = DDRA
.equ COM_DATA0_INPUT = PINA
.equ COM_DATA0_OUTPUT = PORTA
.equ COM_DATA0_PUE = PUEA
.equ COM_DATA0_PIN = PORTA2
.equ COM_ATTN0_DDR = DDRA
.equ COM_ATTN0_INPUT = PINA
@@ -87,6 +87,25 @@
.equ COM_IRQ_GIMSK_ATTN1 = PCIE1
; settings for comOnUart1
.equ COM_DATA1_DDR = DDRA
.equ COM_DATA1_INPUT = PINA
.equ COM_DATA1_OUTPUT = PORTA
.equ COM_DATA1_PUE = PUEA
.equ COM_DATA1_PIN = PORTA4
.equ COM_CLK1_DDR = DDRB
.equ COM_CLK1_INPUT = PINB
.equ COM_CLK1_OUTPUT = PORTB
.equ COM_CLK1_PUE = PUEB
.equ COM_CLK1_PIN = PORTB1
.equ COM_IRQ_ADDR_CLK1 = PCMSK1
.equ COM_IRQ_BIT_CLK1 = PCINT9 ; bit PCINT9 in PCMSK1
.equ COM_IRQ_GIFR_CLK1 = PCIF1
.equ COM_IRQ_GIMSK_CLK1 = PCIE1
; ---------------------------------------------------------------------------
; TWI master module

View File

@@ -70,12 +70,13 @@
#endif
#define MODULES_NETWORK
#define MODULES_COMONUART0
#define MODULES_COMONUART1
;#define MODULES_COMONUART1
#define MODULES_COM2W1
;#define APPS_NETWORK
#define APPS_ROUTER
.equ NET_BUFFERS_NUM = 11
.equ NET_BUFFERS_NUM = 10
@@ -102,7 +103,7 @@
rjmp BOOTLOADER_ADDR ; 1: RESET Reset vector use this for flashed system
reti ; 2: INT0 External Interrupt Request 0
rjmp ComOnUart0_AttnChangeIsr ; 3: PCINT0 Pin Change Interrupt 0
rjmp ComOnUart1_AttnChangeIsr ; 4: PCINT1 Pin Change Interrupt 1
rjmp COM2W1_ClkChangeIsr ; 4: PCINT1 Pin Change Interrupt 1
reti ; 5: WDT Watchdog Time-out
reti ; 6: TIM1_CAPT Timer/Counter1 Capture Event
reti ; 7: TIM1_COMPA (OC1A) Timer/Counter1 Compare Match A
@@ -125,7 +126,7 @@
reti ; 24: USART0_DRE USART0 Data Register Empty
reti ; 25: USART0_TXC USART0 Tx Complete
reti ; 26: USART1_RXS USART1 Rx Start
rjmp ComOnUart1_RxCharIsr ; 27: USART1_RXC USART1 Rx Complete
reti ; 27: USART1_RXC USART1 Rx Complete
reti ; 28: USART1_DRE USART1 Data Register Empty
reti ; 29: USART1_TXC USART1 Tx Complete
reti ; 30: TWI Two-Wire-Interface
@@ -210,7 +211,7 @@ onMessageReceived:
; defines for network interface
.equ netInterfaceData = comOnUart0_iface
.equ netInterfaceData2 = comOnUart1_iface
.equ netInterfaceData2 = com2w1_iface

View File

@@ -79,6 +79,25 @@
.equ COM_DATA_DDR = DDRA
.equ COM_DATA_INPUT = PINA
.equ COM_DATA_OUTPUT = PORTA
.equ COM_DATA_PUE = PUEA
.equ COM_DATA_PIN = PORTA2
.equ COM_CLK_DDR = DDRA
.equ COM_CLK_INPUT = PINA
.equ COM_CLK_OUTPUT = PORTA
.equ COM_CLK_PUE = PUEA
.equ COM_CLK_PIN = PORTA0
.equ COM_IRQ_ADDR_CLK = PCMSK0
.equ COM_IRQ_BIT_CLK = PCINT0 ; bit 0 in PCMSK0
.equ COM_IRQ_GIFR_CLK = PCIF0
.equ COM_IRQ_GIMSK_CLK = PCIE0
; ---------------------------------------------------------------------------
; 1-Wire Master
;

View File

@@ -74,7 +74,8 @@
;#define MODULES_DS18B20
;#define MODULES_MOTION
#define MODULES_NETWORK
#define MODULES_COMONUART0
#define MODULES_COM2W
;#define MODULES_COMONUART0
#define MODULES_TTYONUART1
#define APPS_STATS
#define APPS_NETWORK
@@ -109,7 +110,8 @@
rjmp BOOTLOADER_ADDR ; 1: RESET Reset vector use this for flashed system
reti ; 2: INT0 External Interrupt Request 0
rjmp ComOnUart0_AttnChangeIsr ; 3: PCINT0 Pin Change Interrupt 0
; rjmp COM2W1_ClkChangeIsr ; 3: PCINT0 Pin Change Interrupt 0
rjmp com2wPcintIsr ; 3: PCINT0 Pin Change Interrupt 0
reti ; 4: PCINT1 Pin Change Interrupt 1
reti ; 5: WDT Watchdog Time-out
reti ; 6: TIM1_CAPT Timer/Counter1 Capture Event
@@ -129,7 +131,8 @@
reti ; 20: TIM2_OVF (OVF2) Timer/Counter2 Overflow
reti ; 21: SPI SPI Serial Transfer Complete
reti ; 22: USART0_RXS USART0 Rx Start
rjmp ComOnUart0_RxCharIsr ; 23: USART0_RXC USART0 Rx Complete
; rjmp ComOnUart0_RxCharIsr ; 23: USART0_RXC USART0 Rx Complete
reti ; 23: USART0_RXC USART0 Rx Complete
reti ; 24: USART0_DRE USART0 Data Register Empty
reti ; 25: USART0_TXC USART0 Tx Complete
reti ; 26: USART1_RXS USART1 Rx Start
@@ -165,7 +168,7 @@ firmwareStart:
onSystemStart:
; set interface number for UART0
ldi r16, COMONUART0_IFACENUM
sts comOnUart0_iface+NET_IFACE_OFFS_IFACENUM, r16
sts netInterfaceData2+NET_IFACE_OFFS_IFACENUM, r16
; set interface number for UART1
ldi r16, TTYONUART1_IFACENUM
sts ttyOnUart1_iface+NET_IFACE_OFFS_IFACENUM, r16
@@ -246,7 +249,7 @@ letSysHandleMsg:
ld r16, X
cpi r16, 0xff
breq letSysHandleMsg_forMe
lds r17, comOnUart0_iface+NET_IFACE_OFFS_ADDRESS
lds r17, netInterfaceData2+NET_IFACE_OFFS_ADDRESS
cp r16, r17
brne letSysHandleMsg_end
letSysHandleMsg_forMe:
@@ -304,8 +307,8 @@ addMsgToInterface:
clc
ret
addMsgToInterface_toUart0:
ldi yl, LOW(comOnUart0_iface)
ldi yh, HIGH(comOnUart0_iface)
ldi yl, LOW(netInterfaceData2)
ldi yh, HIGH(netInterfaceData2)
rjmp NET_Interface_AddOutgoingMsgNum ; try to add msg to interface
addMsgToInterface_toUart1:
ldi yl, LOW(ttyOnUart1_iface)
@@ -332,5 +335,6 @@ addMsgToInterface_toUart1:
; defines for network interface
.equ netInterfaceData = ttyOnUart1_iface
.equ netInterfaceData2 = comOnUart0_iface
;.equ netInterfaceData2 = comOnUart0_iface
.equ netInterfaceData2 = com2w_iface