From 3c89a3564507cb1f46d8f69d1aa56542ee2cafc6 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 4 May 2026 21:45:50 +0200 Subject: [PATCH] e05: use 23LC512 (RAM) and 25LC256 (EEPROM) via spi_sw. --- avr/devices/e05/defs.asm | 42 +++++++++++++++++++++++++++++++++++ avr/devices/e05/main/main.asm | 14 +++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/avr/devices/e05/defs.asm b/avr/devices/e05/defs.asm index 7fc7b89..197ca10 100644 --- a/avr/devices/e05/defs.asm +++ b/avr/devices/e05/defs.asm @@ -72,3 +72,45 @@ +; --------------------------------------------------------------------------- +; software SPI module + + +.equ SPISW_MOSI_DDR = DDRA +.equ SPISW_MOSI_INPUT = PINA +.equ SPISW_MOSI_OUTPUT = PORTA +.equ SPISW_MOSI_PIN = PORTA6 + +.equ SPISW_MISO_DDR = DDRA +.equ SPISW_MISO_INPUT = PINA +.equ SPISW_MISO_OUTPUT = PORTA +.equ SPISW_MISO_PIN = PORTA5 + +.equ SPISW_SCK_DDR = DDRA +.equ SPISW_SCK_INPUT = PINA +.equ SPISW_SCK_OUTPUT = PORTA +.equ SPISW_SCK_PIN = PORTA4 + + + +; --------------------------------------------------------------------------- +; SPI RAM + +.equ RAMCS_DDR = DDRB +.equ RAMCS_INPUT = PINB +.equ RAMCS_OUTPUT = PORTB +.equ RAMCS_PIN = PORTB0 + + + +; --------------------------------------------------------------------------- +; SPI EEPROM + + +.equ EEPROMCS_DDR = DDRB +.equ EEPROMCS_INPUT = PINB +.equ EEPROMCS_OUTPUT = PORTB +.equ EEPROMCS_PIN = PORTB1 + + + diff --git a/avr/devices/e05/main/main.asm b/avr/devices/e05/main/main.asm index c420ead..bd224e8 100644 --- a/avr/devices/e05/main/main.asm +++ b/avr/devices/e05/main/main.asm @@ -62,6 +62,9 @@ #define MODULES_LED1 #define MODULES_NETWORK #define MODULES_COM2W +#define MODULES_SPI_SW +#define MODULES_RAM_23LC512 +#define MODULES_EE_25LC256 ;#define MODULES_TWI_MASTER ;#define MODULES_LCD ;#define LCD_MINIMAL_FONT @@ -132,6 +135,14 @@ firmwareStart: ; @routine onSystemStart onSystemStart: + ; external SRAM check + bigcall RAM_23LC512_WritePattern + nop + bigcall RAM_23LC512_ReadPattern + brcs onSystemStart_done + bigcall DEBUG1 + +onSystemStart_done: ret ; @end @@ -183,7 +194,7 @@ onEveryLoop: .include "devices/all/hw_tn84.asm" .include "devices/all/includes.asm" -;.include "common/debug.asm" +.include "common/debug.asm" ;.include "modules/network/msg/debug-w.asm" @@ -201,3 +212,4 @@ deviceCodeEnd: .warning "Code reaches into boot loader!" .endif +