microcontrollers lecture l11.2 section 11.2. microcontrollers microcontrollers vs. microprocessors...

37
Microcontrollers Lecture L11.2 Section 11.2

Upload: avice-ford

Post on 14-Dec-2015

252 views

Category:

Documents


1 download

TRANSCRIPT

Microcontrollers

Lecture L11.2

Section 11.2

Microcontrollers

• Microcontrollers vs. Microprocessors

• Two standard architectures

• PIC microcontroller

• 68HC12 Microcontroller

• BASIC Stamp

• Jstamp

• What’s the Difference

Microcontrollers

• Microprocessor– Performs computing function for different

architectures of memory, input/output ports, devices, and communication ports

• Microcontroller– Performs computing functions and contains onchip

memory, input/output ports, devices, and communication ports.

– Resources are limited

Microcontrollers

CPU

GeneralPurpose

Microprocessor

Single Chip

RAM ROMI/OPort

TimerSerialCOMPort

Data Bus

Address Bus

CPU RAM ROM

I/O TimerSerialCOMPort

Single Chip

(a) General Purpose Microprocessor System

(b) Microcontroller

Microcontrollers

• Desktop Computers– Different architectures/configurations of memory,

devices, and ports

– Microprocessor is a general purpose computing machine

• Embedded Systems– Includes coffee makers, burglar alarms, TV remote

controls, simple robots, etc…

– Easier to use a microcontroller with limited functionality and onchip resources

• No need to select/design a board with memory, etc…

• Ready to program

The PIC Microcontroller

• Very common microcontroller• Made by Microchip Technology• Over 180 different microcontrollers

• Available in different configurations of on-chip resources • Timers, Drivers for writing to Liquid Crystal Displays, USB and TCP/IP interfaces, temperature sensors, and more

• Packaged in 8- to 84-pin configurations• Contains from 1 KB to 128 KB memory• Available in 8 and 16 bits

Microcontrollers

• PIC controllers have a Harvard Architecture

DataMemory

CPUProgramMemory

CPU

ProgramandData

Memory

Harvard von-Neumann

Architecture used forDesktop personal computers

Microcontrollers

• What do you think are some advantages/disadvantages of these architectures?

DataMemory

CPUProgramMemory

CPU

ProgramandData

Memory

Harvard von-Neumann

PIC

PIC

368 Bytes of Memory forData

8 KB of MemoryFor Programs

14-bit programwords

PIC

Similar to Lab 10

PIC

TheInstruction

Set

3Types of

instructions

Byte-oriented instructions

• fff ffff – the 7-bit address for which location in the register file (memory) contains the data of interest• d – if d = 0, then the answer will be stored in the W register, otherwise if d = 1, then the answer will be stored in the memory location selected by fff ffff.

Byte-oriented instructions

If ADDWF is encoded as machine code:000111 0 0001010 d = 0 memory location = 0A

d

Memory address

Byte-oriented instructions

If ADDWF is encoded as machine code:000111 0 0001010 d = 0 memory location = 0A

W reg is added to RF[0A] and the answer is placed in W reg

OPCODE = 070A

Byte-oriented instructions

If ADDWF is encoded as machine code:000111 1 0001010 d = 1 memory location = 0A

W reg is added to RF[0A] and the answer is placed in RF[0A]

OPCODE = 078A

Byte-oriented instructions

For ADDWF, we have seen type machine codes:

070A – add RF[0A] to W reg and place answer in W reg078A – add RF[0A] to W reg and place answer in RF[0A]

… and there are many more where that came from…

Bit-oriented instructions

bbb – selects the bit that will be operated onffffff – selects the memory location of the data to be operated on

For example, BCF encoded as the machine code:

0100 111 0001011

Bit #

Memory address

Bit-oriented instructions

bbb – selects the bit that will be operated onffffff – selects the memory location of the data to be operated on

For example, BCF encoded as the machine code:

0100 111 0001011

Bit 7 (MSB) of the Byte in RF[0B] is cleared to zero

OPCODE = 138B

Literal and Control instructions

X – means don’t careK’s – the literal

Literal means ‘inline data’ like in the 8086 when we usedMOV AX, 0FFFF to move FFFF into AX, FFFF was theLiteral or inline data.

Literal and Control instructions

X – means don’t careK’s – the literal

For example, if ADDLW is encoded as machine code:

111110 00001111

Inline Data

Literal and Control instructions

X – means don’t careK’s – the literal

For example, if ADDLW is encoded as machine code:

111110 00001111

0F is added to the value in W reg and the sum is put in W reg

OPCODE = 3E0F

Development Tools for PIC

There is a WindowsDevelopmentEnvironmentfor the PICController

BASIC Stamp

• Based on 8-bit PIC

• 14-pin microcontroller

• Can be programmed using the BASIC language– It has a BASIC language interpreter built-in

BASIC Stamp

Online Interpreter

• Most microcontrollers do not have a built-in interpreter of any kind

• Usually source code written in higher level languages are compiled to a microcontrollers machine code

• BASIC Stamp is inexpensive and easy to program for small applications

JStamp

Directly executes Java bytecodes

JStamp

RAM

JSTAMPCPU

FLASHRAM

DUALUARTS SPI

JSTAMP

TIMERS

The Java Processing Core

32-bitALU

MuxMux

Mux

Shifter

Shifter

Instr. Reg

Mux

RegisterFile

Data Reg

DATA

ADDRESS

ProcessorBus

What’s the Difference

• When selecting a microcontroller there are several factors that need to be considered

• There are many microcontrollers available

• Each brings advantages and disadvantages

Considerations

• Cost– Prototype– Mass Production

• Inputs– Correct # of inputs– Digital / Analog

Considerations

• Outputs– Correct # of Outputs– Digital / Analog

• Processing Speed and Function– Adequate Computational Power– Upgrading a processor due to choosing the

incorrect processor can be costly• Rework of written programs

Considerations

• Memory– Programs

– Data

– Enough internal memory and/or can address enough external memory

• Ports– Correct ports for communicating with other devices

• Parallel

• Serial

Considerations

• Support– Online Forums

• Free source code

• Frequently Asked Questions (FAQs)

– Support from Vendor– Pre-developed software

• Availability– Volumes – lead time

Considerations

• Extensibility– Future growth– Avoid changing microcontrollers in future

releases

• Development Tools– Language (C / BASIC / Java)– Development Environment

• Debugging

Considerations

• Other technical requirements– Power Consumption

• Portable applications

– Operating Voltage• Compatible with other circuits