Microcontrollers Lecture L12.2 Section 12.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 Single Chip Data Bus CPU RAM ROM General Purpose Microprocessor I/O Port Timer Address Bus (a) General Purpose Microprocessor System Single Chip CPU RAM ROM I/O Timer Serial COM Port (b) Microcontroller Serial COM Port 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 Harvard Data Memory CPU von-Neumann Program Memory CPU Program and Data Memory Architecture used for Desktop personal computers Microcontrollers • What do you think are some advantages/disadvantages of these architectures? Harvard Data Memory CPU von-Neumann Program Memory CPU Program and Data Memory PIC PIC 368 Bytes of Memory for Data 8 KB of Memory For Programs 14-bit program words PIC Similar to Lab 10 PIC The Instruction Set 3 Types 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 Memory address d Byte-oriented instructions If ADDWF is encoded as machine code: 000111 0 0001010 d = 0 memory location = 0A OPCODE = 070A W reg is added to RF[0A] and the answer is placed in W reg Byte-oriented instructions If ADDWF is encoded as machine code: 000111 1 0001010 d = 1 memory location = 0A OPCODE = 078A W reg is added to RF[0A] and the answer is placed in RF[0A] Byte-oriented instructions For ADDWF, we have seen type machine codes: 070A – add RF[0A] to W reg and place answer in W reg 078A – 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 on ffffff – selects the memory location of the data to be operated on For example, BCF encoded as the machine code: 0100 111 0001011 Memory address Bit # Bit-oriented instructions bbb – selects the bit that will be operated on ffffff – selects the memory location of the data to be operated on For example, BCF encoded as the machine code: 0100 111 0001011 OPCODE = 138B Bit 7 (MSB) of the Byte in RF[0B] is cleared to zero Literal and Control instructions X – means don’t care K’s – the literal Literal means ‘inline data’ like in the 8086 when we used MOV AX, 0FFFF to move FFFF into AX, FFFF was the Literal or inline data. Literal and Control instructions X – means don’t care K’s – the literal For example, if ADDLW is encoded as machine code: 111110 00001111 Inline Data Literal and Control instructions X – means don’t care K’s – the literal For example, if ADDLW is encoded as machine code: 111110 00001111 OPCODE = 3E0F 0F is added to the value in W reg and the sum is put in W reg Development Tools for PIC There is a Windows Development Environment for the PIC Controller 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 JSTAMP RAM FLASH RAM JSTAMP CPU TIMERS DUAL UARTS SPI The Java Processing Core DATA Mux Mux Instr. Reg Mux 32-bit ALU Shifter Data Reg Processor Bus Shifter Mux Register File ADDRESS 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