Hi, Habr!
I want to present a thesis project, which gradually grew into small-scale production.
Our other projects are
here.')
Actually, this is an open source board for protyping based on AVR AT90USB162 with hardware USB.
The board is designed for beginners and the main focus is on the study of the periphery of the UART, SPI, 1-wire.
DocumentationExamplesZip examplesMain characteristics:1) AT90USB162 USB hardware, 8 MIPS
2) AD7811 ADC 10 bit, 4 channels, 350kSPS
3) Memory DataFlash AT25DF321A 32Mb
4) AD5300BRM DAC 10 bit, 4us setup time
5) Punch box 3x3.5 cm
Now the programming of microcontrollers (MK) and engineering in general is an interesting and highly paid profession in which practically everyone can try themselves, and there are no difficulties. Anyone who has solved a quadratic equation in C / Pascal at school can potentially be the developer of highly reliable embedded systems.
The main difficulty of MK programming lies in the stereotype that repels beginners, such as “Oh, microcontrollers, it’s very difficult, you need to study circuitry, electronics and whatnot ...”. This is all wrong! Practical nothing is needed to work with AVR microcontrollers, even a programmer in some cases.
All that is required to start creating applications on the AVR, for example, using the board below, is:
1) USB mini cable
2) Free
FLIP3 program for downloading firmware to MK
3) C / C ++ gcc compiler
4) Notepad :)
And it's all!
Here below I will give a few examples that were used by me in the “battle” and thus the capabilities of the board will be demonstrated.
1) Work with the Bluetooth module HC05It is easy to connect additional modules to the board, such as, for example, the Chinese Bluetooth module HC05 (I took mine on ebay ready for use). There are no difficulties in the work here, in the slave mode the module works as an extension of the uart port. The default setting I use is 9600, 8n1.

Details about the module read here:
LinkA piece of code is given that greets and sends an increasing sequence of numbers via bluetooth, in terms of code, this is the usual sending of data on uart.
#include <avr/io.h> #include <avr/delay.h> #include "uart.h" #define FOSC 8000000 // Clock Speed #define BAUD 9600 #define MYUBRR (FOSC/(16*BAUD))-1 int main(void) { unsigned char i; DDRD=(0<<PD2)|(1<<PD3); // Rx,Tx UART' DDRB=0xFF; USARTinit(MYUBRR); // 8n1 // PD3 - Tx // PD2 - Rx sendString('Hello!\r\n'); while(1) { for(i=0;i<255;i++) { sendChar(i); _delay_ms(100); } } return 0; }
2) Working with the uLCD-320-PMD2 LCD moduleInitially I designed this board to create a primitive mobile robot that could navigate in space (reaction to light, sound, etc.). Therefore, for these purposes, I purchased a color 320x240 TFT monitor with support for SD cards to monitor the status of the robot. Implemented library to work with him, will soon be added to the user manual.
DatasheetIt was quite convenient to work with the monitor, as it connects to the board via UART with only 5 wires (power, ground, Rx, Tx, RST). It supports exchange speeds up to 500K and has a controller onboard that draws primitives and there are a lot of them, and other commands are also supported, such as mouse drawing, etc.
3) Work with DS18b20 temperature sensorOn the basis of the board, autonomous information collection systems can be made, for example, as shown here.
The temperature sensor issues a digital code via a 1-wire interface, the controller forms a packet and transmits via UART via Bluetooth to a PC in the terminal, we see the temperature in degrees Celsius. But in fact, this is far from everything, as there are 4 more ADC channels with 350kSPS and a small dial pad where you can assemble a small circuit of an autonomous measuring or control device. I think, as there will be new examples of applications I will definitely publish.

In addition about 1-wire to esteem here:
Reference 1Reference 2Reference 3In the demo projects there are examples of DAC control from the PC terminal, data collection from the ADC.
Further examples of use and code will be posted on this
site , there is also a
forum where you can ask questions.
The project will be developed and in the comments I would like to hear the views of the people and constructive criticism, which will help improve the project.