Profile：AVR128DB32 dev board with NRF24L01+
Open source license: Public Domain
Project source： Cloned from MiniDx24 (AVR Dx)
Dev board for AVR*DB32 with optional NRF24L01+ SMD module
(and probably AVR128DD32 in the future)
It may also work with AVR*DA32 MCUs, but it's not tested.
The board was designed for hand soldering.
There is a smaller version (with less pins) of this board here: https://oshwlab.com/Miraculix200/minimegazero24_copy_copy_copy
This is a new generation of AVR MCUs which has builtin OPAMPs, 24MHz CPU speed at 1.8V, 12-bit ADC, increased noise immunity, builtin level shifter (MVIO) and more.
The MVIO section is within the rectangle on the silk screen.
To use it as a level shifter, remove the 0 Ohm resistor and connect VDDIO2 to a voltage source, e.g. 5V. Then the signals in the MVIO section have 5V. On this board you can enable the I2C function for 2 of the 4 pins within the MVIO section, so you don't need to use a level shifter for 5V I2C modules. For the other 2 pins you can enable 5V UART.
Instead of using a 0 Ohm resistor for normal (3.3V) operation, you could also connect the VDDIO2 pin to the 3V3 pin of the board.
It is recommended that you add an external 1uF capacitor to the VDDIO2 pin, when powering it seperately.
If you leave the 0 Ohm resistor in place, the MVIO section will be fed with 3.3V.
WARNING: Do not connect a seperate voltage source to VDDIO2 before you have removed the 0 Ohm resistor.
Optionally you can solder a NRF24L01+ SMD module to the board. Use GPIO 13 as CE pin and GPIO 7 as CS pin. GPIO 25 is connected to the IRQ pin of the NRF24L01+ module.
Example code to measure battery voltage without a voltage divider (using MVIO):
To burn the bootloader, start by connecting your USB to serial board to your dev board like this
WARNING: Do not power the board with 5V through the 3V3 pin if a NRF24L01+ module is present in the circuit. Otherwise you will damage your NRF24L01+
Install DxCore using the Board Manager of Arduino IDE, following the instructions here: https://github.com/SpenceKonde/DxCore/blob/master/Installation.md
DxCore now includes pymcuprog, so you can easily burn the bootloader by selecting "Serial Port + 4.7k Resistor (pyupdi style)" as programmer, then selecting "Burn Bootloader".
Now you can directly connect your FTDI board to the FTDI header on the dev board, and flash it through Arduino IDE, like you would flash a Arduino Pro Mini.
If you prefer to play around with the various possibilties pymcuprog gives you, you can start by burning the bootloader like this
pip install pymcuprog
pymcuprog -t uart -u COM3 -c 9600 -d avr128db32 write -f optiboot_dx128_ser0.hex
5. Set the BOOTSIZE fuse
pymcuprog -t uart -u COM3 -c 9600 -d avr128db32 write -m fuses -o 8 -l 0x01
6. Set the SYSCFG/RSTPINCFG fuse
pymcuprog -t uart -u COM3 -c 9600 -d avr128db32 write -m fuses -o 5 -l 0xc8
Note that if you want to overwrite your bootloader with a new bootloader, you need to manually erase the chip like this: pymcuprog -t uart -u COM3 -c 9600 -d avr128db32 erase
Install DxCore in your board manager, following the instructions here https://github.com/SpenceKonde/DxCore/blob/master/Installation.md
Sheet_1 copy copy copy copyOpen in editor
PCB_2020-11-24_13-48-47 copy copy copy copyOpen in editor