Group Assignment 07: Electronics Design

In this week’s group assignment, we poked and prodded a microcontroller circuit to understand what was going on.

The Board

We decided to use one of the simple AtTiny84 boards which we designed to run a pair of servo motors. The board was designed starting with the pinout for the AtTiny:

The board was designed with an external crystal, four LEDs which would light when the microcontroller pin went low, and a set of ISP headers. There is a pull-up resistor between RST and Vcc, and several zero-ohm jumpers were included to deal with the challenges of routing the traces. The schematic and board layout are as follows:

The updated Eagle files are here: SCH/BRD

The cleaned up PNGs look like this:

After milling on the Genmitsu, a quick clean-up with emory paper, and careful stuffing, the board looks like this:

The board we’re going to test was part of the six-legged final project robot made by one of our team-members for his final project. Our test board is the one at the bottom left of this image.

Operating Voltage

We used a multimeter set on “Volts DC” to measure the voltages at several places around the robot and board. The series of pictures show the voltage at the various positions (source plug, power to PCB, power on the FTDI header, at the Vcc side of the blue LED, at the bottom of the LED/top of the series resistor, and at the bottom of the resistor/output from the microprocessor pin)

To view the noise on the operating voltage signal, we used a digital oscilloscope. The operating voltage was supplied by a desktop power supply and was very clean, as can be seen in the video below.

We used the same oscilloscope on the PWM output line from the microcontroller. The program running on the AtTiny moves the servo back and forth in response to a high or low on the pin connected to the blue LED. The servo is controlled with a PWM signal, which can be observed on the oscilloscope display in the background of the video below.

The PWM spikes are 1.2 divisions apart, with each division equal to 20ms, so the spikes are coming at a rate of 1 per 24ms or 42Hz. The spikes are approximately 0.15 divisions long, but that measurement isn’t useful, as the expected length according to the datasheet is between 1 and 2 ms, so I’ll have to do the measurement again with a higher time resolution setting.