~phlash/EPFTools

Explore Microelectronics EPF011/021 8051 core MCU programming tools
42633fa2 — Phil Ashby 9 months ago
Create LICENCE.md
variable baud rate for console, no local echo
Example firmware added

refs

trunk
browse  log 

clone

read-only
https://git.sr.ht/~phlash/EPFTools
read/write
git@git.sr.ht:~phlash/EPFTools

You can also use your local clone with git send-email.

#EPFtools

Explore Microelectronics EPF011/021 8051 core MCU programming tools:

#epfcon.cs

A serial console that can be compiled/run on MacOS, Linux or Windows with dotnet SDK (5.x+), which also supports the EPF011/021 in-circuit programming (ICP) protocol:

dotnet build|run [-- [-b <baud>] [-a <load/dump address:0x0000>] [-w <memory write file>]]

Typical usage is to connect up via an FT232R or similar TTL serial device to UART (P7[0:1]), pull up the OP_MODE pin on the device (I got lucky, it's on a pair of pads in my HDMI switch) then: power up; press '5' to stop the stream of semi-colons; press BKSP to dump memory from the specified address or Ctrl-W to write a file to the specified address.

#firmware

A folder containing example firmware for the EPF011/021, dependencies are:

  • sdcc
  • make

Build with make command, this should produce bin/hello51.bin and bin/serial.bin that are suitable to write to address 0x0000 in the device. ALWAYS BACK UP YOUR DEVIC MEMORY FIRST!

#hello51.c

A simple blinkenlight for my HDMI switch, it toggles P6:0 pin at ~2Hz.

#serial.c

A serial port loopback test, it should reflect bytes as typed.

#boot.asm

The smallest startup code ever - it declares an absolute segment VECTOR that will always be at address 0x0000, containing a jump to the C code entry() function and exports a symbol vectors to mark the start of the interrupt vector table (unpopulated).

#epf021a.h

Definition of all the special function registers (SFR) according to the EPF021A manual/user guide. This depends on the include/mcs51/compiler.h that should be in your sdcc package.

#MCUManuals.zip

You will need a password to unpack: random