keyplus icon indicating copy to clipboard operation
keyplus copied to clipboard

efm8 support

Open ahtn opened this issue 7 years ago • 1 comments

Why support them

The efm8 series of 8051 microprocessors by Silicon Labs are probably the cheapest, smallest and simplest FS USB capable micoprocessors on the market. Some highlights include:

  • Power directly from USB 5V with internal regulator.
  • The only external components necessary for FS USB support are 4 decoupling capacitors.
  • Preloaded USB HID bootloader
  • In volume they can be potentially be purchased for about 1USD.
  • Smallest package is a 3x3mm QFN20 with 13 GPIO
  • Also come in 24-QSOP, 32QFN, 32QFP, 48QFP
  • Flash sizes range from 8-64kB.
  • 8051 based core runs at 48MHz.
  • UART, SPI, I2C

Feature support

The efm8 series would be best suited for USB only keyboards, but could also support I2C split and maybe nRF24 receiver mode. Battery mode would probably not be implemented for efm8.

According to Silcon Lab's documentation, their USB SDK can be compiled with SDCC. So it should be quite easy to add support.

Progress

  • [X] USB communication working
  • [X] Reading/Writing layouts
  • [X] EFM8 factory bootloader support in GUI
  • [x] Handle shared HID descriptors for media, nkro and mouse control.
  • [x] Matrix scanning

References

  • efm8ub1 (harder to support, since they only have max 16kB flash)
  • efm8ub2 (32-64kB, QFN32, QFP32, QFP48)
  • efm8ub3 (40kB, QFN20, QSOP24, QFN24)
  • c8051f380 (Note: older more expensive, no bootloader from factory, but can sink 100mA on IO pins and 5 PWM pins)

ahtn avatar Jan 22 '18 15:01 ahtn

Hi,

SILabs EOL'd one of these parts today: https://www.silabs.com/mcu/8-bit-microcontrollers/efm8-universal-bee/device.efm8ub31f40g-qfn24

Also, the UB2 is a C8051F38x part, with different printing on the outside.

GrantMTG avatar Dec 15 '21 15:12 GrantMTG