This repository contains the firmware implementation of the ATmega32U4 microcontroller as a RAVA8 Device. The following host-side driver projects are available for interfacing with a RAVA device:
The firmware is built on top of the RAVA_RNG and RAVA8_RNG libraries. The RAVA_RNG library
provides the functionality shared across all hardware implementations of the RAVA circuit
architecture, while RAVA8_RNG implements the hardware-specific functionality required for the
ATmega32U4 microcontroller, including:
- Message transport over USART and USB CDC communication interfaces using the
LUFALibrary - Use of Timer0 and Timer1 for RNG acquisition by counting comparator pulses generated by the comparator IC and avalanche noise circuitry
- Use of Timer3 to generate fixed-interval random-byte streams
- Use of Timer4 to generate the PWM boost switching signal
- Device information services, including serial number retrieval, available RAM estimation, internal temperature measurement, and supply voltage monitoring
In addition to the base functionality, RAVA8_RNG also provides:
- EEPROM support for persistent storage of RNG configuration parameters
- Peripheral interfaces, enabling external hardware interaction through Timer3, ADC, External Interrupt, Analog Comparator, Input Capture, and Pin Change Interrupt functionalities
- RAVA_RNG : provided in this repository under
lib/RAVA_RNG - RAVA8_RNG : provided in this repository under
lib/RAVA8_RNG - LUFA : provided in this repository under
lib/LUFA - GCC Toolchain for Microchip AVR microcontrollers
