Atmega8515 with external SRAM memory

The Atmega8515 features a external memory interface that can be used to interface a external SRAM memory. The picture shows my Atmega8515 board with the
addon SRAM board. The small IC is a 74HC537 8-bit latch. The big one is a 128kByte SRAM memory. Only 64bit out of these can be addressed by the microcontroller. One thing that i found worth to notice is: The SRAM has two chip select inputs. The first is /CS1 and the second is CS2. The aim is to use one select signal (without inverter) to distinguish between two memories. I thought it is enougth to use one of the inputs and let the second floating. This was a mistake that caused me some hours of hunting a failure of sporadic instabilities during memory access. ;) The memory access is only valid if /CS1 is low and CS2 is high. I should read the datasheet before next time.
At the moment the whole application runs with a 12MHz crystal and without inserting wait-cycles during memory access. Hence i have a 74AC537 high speed latch i will try to go to 18.432MHz again. Above 14MHz it should be necessary to insert a wait cycle for read and write since the memory latency becomes to large. If one needs the speed he might use a cache memory instead.

74HC537 and 128kByte SRAM on top of 8515 eval board

74HC537 and 128kByte SRAM on top of 8515 eval board

Atmega 8515 at 18MHz…

I assembled a small board containing a Atmega8515 microcontroller. I used a 18.432MHz crystal for clock generation. I discovered that the circuit is very sensitive in terms of routing the ground in a correct way and keeping the crystal connections as short as possible. Now it seems to work more or less stable. The board you can see is similar to the Atmega boards a german company sells as kit. But since these boards do not support the Mega8515 and i want to use its external memory bus feature i had to create a new one…

Mega8515 in action making some LED´s blink ;)

Mega8515 in action making some LED´s blink ;)

KISS for AVR

These days i wrote some code to dig into packet radio. I started with some coding to implement KISS (keep it simple and stupid) that was invented in 1987 by KA9Q and K3MC. It is a small protocoll that is similar to the Serial Line Internet Protocoll. It is used to transfer HDLC data over a asyncronous serial interface. KISS adds some capabilities to control some radio parameters for wireless transmissions. At the picture you see the result so far. Data can be received via the serial line. The SLIP decoding is done (removing FEND´s), control parameters are extracted. In addition the path in the header of the transferred AX25 frame is decoded and printed to the display (which is just for understanding all the stuff).
My goal is to design a small KISS/SMACK terminal node controller that can interface a HDLC modem or even do the AX25 frame generation on its own.
Most probably it would be necessary to add some more RAM in order to get enougth frames buffered for transmission. Currently i use a Atmega644 with 4kByte of SRAM. I plan to add external memory to a Atmega8515 but maybe it is cheaper to use one of those new XMEGA´s with 16kByte…
For sure, just for doing some APRS stuff less memory would be sufficient.

KISS for AVR

KISS for AVR

SSH Attacks

Today i faced some SSH Attacks from 3 different Servers. First i noticed unusual traffic at the network device. Looking to the traffic closer showed that it was SSH traffic. It seemed that it was a attack to break the Root password. SSH Login for Root is now disabled… Let´s see :(

New Version of GPS2LCD Software (V1.0)

I continued to hack my AVR software that displays GPS data on a 4×27 character LCD.
Now the software converts all the data into number format and uses this data to write to the display.
The advantage is that you might do some calculations with this data.
I wrote a routine that calculates the Maidenhead locator. This is now printed to the display as well
including the extended subfield. If Pin PD2 is pulled up the firmware prints all the received data
out to the UART again. For that it is possible to give the data to a existing APRS tracker or to the PC.
So far i saw no data loss at a speed of 4800 baud.
See a picture and find the archive below…
gps2lcd_10

GPS2LCD Version 1.0

GPS2LCD Version 1.0

Eigenartiges Routing Problem …

Seit einiger Zeit habe ich sporadisch das Problem, dass die Netzwerk Verbindung zu meinem Netzwerk Server Rechner für einige 10 Sekunden ausfällt.
Heute bin ich der Sache mal etwas nachgegangen und habe folgendes Problem eingekreist:
Die Netzwerkstruktur ist, dass ich einen DSL/WLAN Router habe. An dem ist ein Windows Rechner über WLAN angebunden. Über Draht gehts zu nem Switch und dort hängt auch ein Windows Rechner sowie der Server, welcher unter Ubuntu läuft. Hier laufen verschiedene Dienste, z.B. ein UPNP Server (Mediatomb).
Jedes mal, wenn der WinXP Rechner im WLAN eingebucht ist und der Mediatomb auf dem Linux Broadcasts an Port 1900 schickt ist für ca. 30 Sekunden die Netzwerkverbindung von allen Rechnern zu dem Linux Rechner weg. Auch die Pings vom Windows Rechner, der direkt am Switch hängt kommen nicht durch.
Es tritt wirklich nur auf, wenn der Win Rechner im WLAN Netzwerk ist. Auch ein zweiter Win Vista Rechner im WLAN verursacht das Problem. Nicht aber mein Windows Rechner, der direkt an dem Switch ist.
Wenn das Problem auftritt flackert auch die LED für Traffic auf dem Port zur Linux Kiste nicht. Die Pings gehen also offenbar über keinen Port mehr raus.
Meine Vermutung ist also, dass der WLAN Router, wenn ein Windows Rechner im Netz ist und der Mediatomb broadcastet aus irgenteinem Grund die MAC Route zu dem Linux Rechner zerstört und das auch an den Switch weiterleitet.
Einen anderen Switch oder Win Rechner über Draht am Router habe ich noch nicht versucht.
Übergangsweise ist der Mediatomb auf dem Linux Rechner also erstmal abgeschaltet…

Printing GPS information to LCD

Today i tried to code a small programm that displays information from a GPS receiver on a LCD display. It receives the data via the UART and searches for the GPGGA dataset. If one is received the information (character strings) is written to a 4×27 character HD44780 display. Currently there is no convertion of the data to numbers and no calculations too. A future version might calculate the Maidenhead locator and the distance to a certain coordinate. At my side the programm is running on a Atmega8535 at 16MHz.

GPS2LCD Version 0.8

GPS2LCD Version 0.8

gps2lcd_08

Alix1.C Mini PC

Für alle, die sich mal gefragt haben, wie klein ein “Zuhause-Server” sein kann hier mal ein Bild von dem Rechner auf dem dieses Blog läuft.

Es handelt sich um ein Alix1.C Board mit Geode LX. In das Gehäuse ist noch eine 250GByte 2,5 Zoll Festplatte eingebaut. Auf dem Rechner läuft der Webserver mit Blog, ein Multimedia Streaming Server, die AX25 Router Software XNet, Samba als File- und Druckserver und einiges mehr.

Der Stromverbrauch inclusive Netzteil wurde mit 11Watt gemessen.

Alix1.C Board in Betrieb....

Alix1.C Board in Betrieb....

UART2LCD

Just for fun i hacked a short program for Atmega that prints all the stuff that comes in at the UART to a 4×27 character LCD. The lines are wrapped automatically. Different baudrates can be selected via 3 input pins. Unfortunately printing to the display is not fast enougth. For that reason characters get lost if you send the complete input for 4 line at once in case a UART speed greater than 19k2 is used.
Future feetures might be:
– improvements to avoid loosing characters from the UART
– adding a mode that cuts lines longer than 27 characters instead of wrapping them
– adding keyboard input possibility

uart2lcd_09