29
Dec 12

Reflow Toaster Oven: Conclusion

So the project is finally done other than cleaning up the box and making it look better etc.... The big question though, is, was this project really worth it? How well does this reflow toaster actually work? This is the answer.

Read the rest of this entry »

28
Dec 12

Single channel - Single Sequence ADC10 example

This is a quick write-up to show how to configure and use the MSP430's ADC10 in single channel/single sequence mode. Lets start off with the entire section of C-code and go from there:

/*
 * main.c
 *
 * Basic ADC10 Example
 * GetSomeSystems.com
 */

#include "msp430g2553.h"

// Globals variables
volatile int adc10_value;

void main(void) {

 	WDTCTL = WDTPW + WDTHOLD;             // Stop watchdog timer

	// Configure Clock
	DCOCTL = CALDCO_8MHZ;	// MCLK = 8Mhz
	BCSCTL1 = CALBC1_8MHZ;
	// Configure Submain clock for TimerA
	BCSCTL2 &= ~SELM0;	// MCLK comes from DCO
	BCSCTL2 &= ~SELM1;
	BCSCTL2 &= ~SELS;	// Sub main clock comes from DCO
	BCSCTL2 |= DIVS0 + DIVS1;	// SMCLK = 1 MHz (DC0/8)


	// Setup ADC10
	ADC10CTL1 |= INCH_11 + ADC10SSEL_3 + CONSEQ_0  + ADC10DIV_0;
	ADC10CTL0 |= ADC10SHT_0 + ADC10IE + MSC + ADC10ON + SREF_0;

	ADC10CTL0 |= ENC + ADC10SC;	// start ADC10
	_BIS_SR(GIE + LPM0_bits);

}
/* *******************************
 * ADC10 ISR
 *	
 *	
 */
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{

	adc10_value = ADC10MEM;

// Maintanence
	ADC10CTL0 &=~ ADC10IFG;		// reset flag
	ADC10CTL0 |= ENC + ADC10SC;	// Begin new sampling sequence
}

Read the rest of this entry »

24
Dec 12

Interrupt driven Timer/Timing tutorial

This tutorial covers the basics of the TimerA0 capabilities including interrupt configuration. The Timer module counts clock cycles in an accumulation register called the "TAR" register. The chip I'm using (MSP430G2553) has 3x associated capture compare registers. These registers compare a set value (that they hold) to the TAR and throw an interrupt when they match. A simple way to look at this is that TimerA0 as 3x sub-modules (the capture compare registers) and all of them work together as a unit. Below is a screen shot from the datasheet.

TimerA0

Read the rest of this entry »

20
Dec 12

Reflow Toaster Oven Vid 8: Analog Op Amp Circuit

This section discusses the analog front end for all of my sensors. I had to do some signal conditioning which I'll discuss in a second.

Read the rest of this entry »

20
Dec 12

Reflow Toaster Oven Vid 7: Power System

Here I discuss the power system I used for this project. It's pretty simple and short.

Read the rest of this entry »

20
Dec 12

Reflow Toaster Oven Vid 6: Integer Division and Main State Machine

This will be a quick write-up about how I did my integer division by 10 and a brief discussion of the main state machine that runs the overall 140-170-215 thermal profile.

Read the rest of this entry »

19
Dec 12

Reflow Toaster Oven Vid 5: ADC10 ISR

This (ADC10 interrupt service routine) is one of the most confusing sections. Here, I sample and do most of the math and averaging calculations regarding room temperature and thermal couple temperature.

Read the rest of this entry »

19
Dec 12

Reflow Toaster Oven Vid 3: MSP430 configuration

In this part I go over the MSP430 configuration for this project...ex: clocks, timers, ADC10, etc...

Read the rest of this entry »

18
Dec 12

Reflow Toaster Oven Vid4 - Temp. Control and Comm. links

Here I discuss the details of me temperature control algorithm as well as some simple interrupt service routines I use to run my communication links (comm. links back to the GUI).

Read the rest of this entry »

18
Dec 12

Reflow Toaster Oven Vid2 - Demonstration

Here is the system demonstration. There isn't really much to discuss in text because the video does a much better job of showing this setup in action. The profile I've developed is a ramp to 140 degrees C with a hold time of 45 seconds once we reach 140. Next, we ramp up to 170 C and hold there for 45 seconds. The last target temperature is 215 C and we hold there for 60 seconds. This last temperature is where things get interesting. Once our hold time expires the system shuts down. These profiles are completely customizable in software (embedded C code in the MSP430).

Read the rest of this entry »