BX-24 Ethernet Interface


I recently built an Ethernet interface for the BX-24. The initial work is complete and it is working quite well. The interface is built using the EDTP Packet Whacker (available here) along with 7 other ICs and a few passive components. It connects to the BX-24 using only 5 I/O lines. A parallel interface 2x16 LCD was added that shares the address and data lines with the Packet Whacker and utilizes some spare control lines so no additional I/O pins were required for it.

The software that I wrote responds to ARP and ICMP requests and can issue them as well. It recognizes the difference between local hosts (i.e. on the same network) and non-local hosts and routes packets to a specified gateway when necessary. It can also contact an SNTP server to get the current date and time from which the BX-24 RTC is updated. It also receives SNTP broadcasts on the local network.

I had initially anticipated implementing DHCP client operations but the packet sizes are just too large to manage in the BX-24's limited RAM. DNS lookups are similarly problematical although they could be done.

The code currently uses a 100 byte packet buffer which, along with a few other variables, leaves about 100 bytes of headroom on the stack. The packet size could be reduced if certain services are omitted. For example, the service that requires the largest packet size currently is SNTP. It utilizes UDP packets with a payload size of 48 bytes yielding a total packet size of 90 bytes. The next largest packet requirement is ICMP at 42 bytes plus ICMP data size.

I believe that the stack usage can be reduced, perhaps by another 50 bytes or so, by modifying the code structure; essentially flattening it out a bit. The code size is currently about 14K which probably includes about 2K in debugging code.

A larger picture of the prototype may be seen here. The interface schematic is available as images (Page 1, Page 2 and Page 3) or as an ExpressSCH schematic here. The full schematic can be most conveniently viewed and printed using the ExpressSCH schematic drawing program that can be downloaded free here.

I have several ideas for using the BX-24 Ethernet which I may post when they're operational. If you wish, you may email me with questions or comments.