Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 3 – New instruction recap Tutorial.

Slides:



Advertisements
Similar presentations
Getting the O in I/O to work on a typical microcontroller Activating a FLASH memory “output line” Part 1 Main part of Laboratory 1 Also needed for “voice.
Advertisements

Tutorial Essentially all the Blackfin instruction you need for all of ENCM511. The instructions are easy. Its knowing when to use them that is the difficult.
A look at interrupts What are interrupts and why are they needed.
Microprocessor or Microcontroller Not just a case of “you say tomarto and I say tomayto” M. Smith, ECE University of Calgary, Canada.
Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 2.
Lab 3 Details. Lab 3 Develop a bio-feedback system based on a PWM (pulse width modulated) thermal sensor Use temperature setting to control the delays.
Assignment Overview Thermal oscillator One of the ENCM415 Laboratory 2 items Oscillator out GND +5V.
Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 2.
Review of Blackfin Syntax Moves and Adds 1) What we already know and have to remember to apply 2) What we need to learn.
CSC Timers Since this is a microcontroller it mainly finds itself in embedded devices Quite often embedded devices need to synchronize events The.
Interfacing. This Week In DIG II  Basic communications terminology  Communications protocols  Microprocessor interfacing: I/O addressing  Port and.
A look at interrupts What are interrupts and why are they needed in an embedded system? Equally as important – how are these ideas handled on the Blackfin.
Over-view of Lab. 1 For more details – see the Lab. 1 web-site There will be a 20 min prelab quiz (based on Assignment 1 and 2) at the start of the lab.
Communication Lab - Interrupts 1/13 Sequential Programming  Our C++ programs are sequential ( סדרתיים), they start at the first instruction and end at.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
A look at interrupts What are interrupts and why are they needed.
Microprocessor or Microcontroller Not just a case of “you say tomarto and I say tomayto” M. Smith, ECE University of Calgary, Canada.
Getting the O in I/O to work on a typical microcontroller Ideas of how to send output signals to the radio controlled car. The theory behind the LED controller.
AVR Programming CS-212 Dick Steflik. ATmega328P I/O for our labs To get data into and out of our Arduino its a little trickier than using printf and.
Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 2.
Getting the O in I/O to work on a typical microcontroller Activating a FLASH memory “output line” Part 1 Main part of Laboratory 1 Also needed for “voice.
Just enough information to program a Blackfin Familiarization assignment for the Analog Devices’ VisualDSP++ Integrated Development Environment.
Blackfin BF533 EZ-KIT Control The O in I/O
Microprocessor or Microcontroller Not just a case of “you say tomarto and I say tomayto” M. Smith, ECE University of Calgary, Canada.
Tutorial Essentially all the Blackfin instruction you need for all of ENCM511. The instructions are easy. Its knowing when to use them that is the difficult.
Interrupts. 2 Definition: An electrical signal sent to the CPU (at any time) to alert it to the occurrence of some event that needs its attention Purpose:
Input Laboratory: GPIO Pin control needed to have the Blackfin accept your commands Re-uses information from ENEL353 and ENCM369 courses and text books.
Assembly Language Review Being able to repeat on the Blackfin the things we were able to do on the MIPS 9/19/2015 Review of 50% OF ENCM369 in 50 minutes1.
RM2D Let’s write our FIRST basic SPIN program!. The Labs that follow in this Module are designed to teach the following; Turn an LED on – assigning I/O.
Blackfin Array Handling Part 2 Moving an array between locations int * MoveASM( int foo[ ], int fee[ ], int N);
Microcomputers Final Project.  Camera surveillance is an important aspect of Robotics.  Autonomous robots require the use of servos for camera control.
Moving Arrays -- 1 Completion of ideas needed for a general and complete program Final concepts needed for Final Review for Final – Loop efficiency.
Copyright 2006 by Timothy J. McGuire, Ph.D. 1 MIPS Assembly Language CS 333 Sam Houston State University Dr. Tim McGuire.
Blackfin Array Handling Part 1 Making an array of Zeros void MakeZeroASM(int foo[ ], int N);
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
IT253: Computer Organization Lecture 9: Making a Processor: Single-Cycle Processor Design Tonga Institute of Higher Education.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Copyright 2006 by Timothy J. McGuire, Ph.D. 1 MIPS Assembly Language CS 333 Sam Houston State University Dr. Tim McGuire.
Building a simple loop using Blackfin assembly code If you can handle the while-loop correctly in assembly code on any processor, then most of the other.
EE/CS-352: Embedded Microcontroller Systems Part V The 8051 Assembly Language Interrupts.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Lab. 1 – GPIO Pin control Using information ENEL353 and ENCM369 text books combined with Blackfin DATA manual.
Assembly Language Review Being able to repeat on the Blackfin the things we were able to do on the MIPS 2/26/2016 Review of 50% OF ENCM369 in 50 minutes1.
Assembly Language Review Being able to repeat on the Blackfin the things we were able to do on the MIPS 3/3/2016 Review of 50% OF ENCM369 in 50 minutes1.
“Lab. 5” – Updating Lab. 3 to use DMA Test we understand DMA by using some simple memory to memory DMA Make life more interesting, since hardware is involved,
Over-view of Lab. 1 See the Lab. 1 web-site and latter lecture notes for more details.
ARM Embedded Programming Lecture 4 Accessing Memory Mapped Registers.
Programming PIC 16F84A in Assembly. PIC16F84 pin-out and required external components.
80C51 Block Diagram 1. 80C51 Memory Memory The data width is 8 bits Registers are 8 bits Addresses are 8 bits – i.e. addresses for only 256.
DEPARTMENT OF ELECTRONICS ENGINEERING V-SEMESTER MICROPROCESSOR & MICROCONTROLLER 1 CHAPTER NO microcontroller & programming.
MIPS Instruction Set Advantages
Tutorial Essentially all the Blackfin instruction you need for all of ENCM511. The instructions are easy. Its knowing when to use them that is the difficult.
Lecture 4: MIPS Instruction Set
Handling Arrays Completion of ideas needed for a general and complete program Final concepts needed for Final.
Assembly Language Review
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Assembly Language Review
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Handling Arrays Completion of ideas needed for a general and complete program Final concepts needed for Final.
Tutorial Essentially all the Blackfin instruction you need for all of ENCM511. The instructions are easy. Its knowing when to use them that is the difficult.
Explaining issues with DCremoval( )
Lab. 1 – GPIO Pin control Using information ENEL353 and ENCM369 text books combined with Blackfin DATA manual.
Embedded System Development Lecture 7 2/21/2007
Input Laboratory: GPIO Pin control needed to have the Blackfin accept your commands Re-uses information from ENEL353 and ENCM369 courses and text books.
Handling Arrays Completion of ideas needed for a general and complete program Final concepts needed for Final.
Blackfin BF533 EZ-KIT Control The O in I/O
Developing a bicycle speed-o-meter
Building a simple loop using Blackfin assembly code
Blackfin Syntax Stores, Jumps, Calls and Conditional Jumps
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Blackfin BF533 EZ-KIT Control The O in I/O Activating a FLASH memory “output line” Part 3 – New instruction recap Tutorial

Blackfin BF533 I/O2 Agenda Processors need to send out control signals (high / low 1 / 0 true / false) –General purpose input / output GPIO on processor chip (16) –FLASH memory chip has additional I/O ports connected to Ez-Lite KIT LED’s Making the FLASH memory I/O port control the Ez-KIT LED’s The new Blackfin assembly language instructions needed

Blackfin BF533 I/O3 LEDs connected to FLASH port BACK FORWARD RIGHT LEFT ??? CONTROL ON Might be connected to other things DON’T CHANGE BEHAVIOUR

Blackfin BF533 I/O4 Activating LEDs -- REVIEW Get the FLASH to work correctly –InitFlashASM( ) Get the Port to work correctly as output for pins PB5  PB0, leaving other pins unchanged –InitFlashPortASM( ) Write the value we want to LEDs –WriteFlashLEDASM( int value) Read back the value the LEDs show –int ReadFlashLEDASM( )

Blackfin BF533 I/O5 Blackfin Memory Map If P0 is 0x then R0 = [P0]; reads a value from FLASH BANK 0 If R0 is 6 and P0 is 0x1000 then [P0] = R0; places a value into SDRAM

Blackfin BF533 I/O6 InitFlashASM( ) -- REVIEW Get the FLASH to work correctly May be “many” processes running on the Blackfin. All these processes may want to use InitFlashASM( ) InitFlashASM( ) { If FLASH memory already configured – return without initializing Else { configure Memory Bank control register THEN configure Global control (turns on the FLASH) }

Blackfin BF533 I/O7 Set the Bank control register Kit documentation recommends 0x7BB0 7 cycles not not 15 B = cycles 3 cycles IGNORE 4 cycles

Blackfin BF533 I/O8 Set General Control Register Documentation says set to “0xF” for this particular FLASH chip ENABLE ALL

Blackfin BF533 I/O9 Key issues -- REVIEW InitFlashASM( ) Does not sound too big a deal –Set P0 to point to EBIU_AMBCTLO –Then R0 = 0x7BB07BB0 –Then [P0] = R0 –Then make sure “write occurs” NOW as this processor can delay doing writes “until convenient” Do the same for the other “32 bit” registers

Blackfin BF533 I/O10 Obvious problem – value needed EBIU_AMBCTL0 = ? Code review 2 obvious errors

Blackfin BF533 I/O11 Corrected code – still fails No “=“ in a define statement No “spaces” in number Spell check “0” not “O” DEFECTS in code process Pair programming cost 3 * $5

Blackfin BF533 I/O12 MIPS and Blackfin behave same You can’t load a 32-bit register with a 32-bit immediate value using one instruction WRONG R0 = 0x7BB07BB0; Must load low 16-bit of register R0.L = 0x7BB0; Then load high 16-bits of register R0.H = 0x7B00; You handle P0 = 0xFFC00A04

Blackfin BF533 I/O13 More readable code Self documenting code I do “define” and then cut-and-paste the label

Blackfin BF533 I/O14 WriteFlashLEDASM(long in_value) Write ‘1’ (on) or ‘0’ (off) to the Port to activate LEDs connected to pins PB5  PB0, leaving other pins unchanged.

Blackfin BF533 I/O15 WriteFlashLEDASM(long in_value) –Read “LED data register” into processor data register (makes a copy) –Keep “top” 2 bits (AND operation) of copy –Keep “bottom” 6 bits of “in-par” 32-bit in_value –OR the two processor data registers –Write “modified copy” back into “LED data register” PROBLEM “byte” read and writes

Blackfin BF533 I/O16 Now identify the registers to use In_par is in R0 We can use R1, R2 and R3 without saving registers to the stack

Blackfin BF533 I/O17 Add in the code we understand Fixed typo Still another syntax problem

Blackfin BF533 I/O18 8 bit and 32 bit writes [P0] = R0; 32-bit write (4 bytes) –Places all 32-bits of processor data register into “long word” (32 bit) address starting at memory location P0 –If P0 = 0x1000 – then place “32-bit” value at memory location 0x1000 B[P0] = R0; 8-bit write –Places “bottom” 8-bits of processor data register into “byte” (8 bit) address starting at memory location P0

Blackfin BF533 I/O19 8 bit and 32 bit reads R0 = [P0]; 32-bit read (4 bytes) –Places all 32-bits of “long word” (32 bit) address starting at memory location P0 into processor data register –If P0 = 0x1000 – then place “32-bit” value at memory location 0x1000 R0 = B[P0] (Z); 8-bit read –Places “byte” (8 bit) address starting at memory location P0 into “bottom” 8-bits of processor data register and puts “0” into the “top” 24 bits of register –Must convert “8-bit” read operation into a “32” bit “store in register” operation

Blackfin BF533 I/O20 Add byte read and write operations Is this correct for keeping top 2 bits of an 8-bit value? “DEFECT” if not corrected Still syntax problems ”ERRORS” Fix as exercise

Blackfin BF533 I/O21 InitFlashPortASM() to complete Set direction to 1 on lower pins leaving other direction values unchanged – around 12 lines Read “direction” byte register into processor data register (makes a copy) –Set another processor data register to 0x3F –OR the two data registers (HOW?) –Write “modified copy” back into “direction byte register”

Blackfin BF533 I/O22 InitFlashASM( ) -- Exercise InitFlashASM( ) { If FLASH memory already configured – return without initializing Else { configure Memory Bank control register THEN configure Global control (turns on the FLASH) } } instructions – many cut-and-paste-modify IF CLOCK ACTIVATED THEN ASSUME ANOTHER PROCESS HAS ALREADY SET THE FLASH “AND” on BIT 0 of EBIU_AMG CTL register followed by “IF” set then JUMP

Blackfin BF533 I/O23 Work in pairs for the solutions These exercises will form part of take-home quiz 1 IF-THEN-ELSE SYNTAX Do bits 7 to 4 of register R0 contain 12??? R0 = ????; R1 = 0x000000F0; // MASK R2 = 0x000000C0; // Expected value R1 = R0 & R1; // KEEP old value CC = R1 == R2; // Check to see if 12 is there IF CC JUMP IS_TRUE; IF !CC JUMP IS_FALSE;

Blackfin BF533 I/O24 This slide is not in the course notes

Blackfin BF533 I/O25 This slide is not in the course notes

Blackfin BF533 I/O26 This slide is not in the course notes

Blackfin BF533 I/O27 Agenda Processors need to send out control signals (high / low 1 / 0 true / false) –General purpose input / output GPIO on processor chip (16) –FLASH memory chip has additional I/O ports connected to Ez-Lite KIT LED’s Making the FLASH memory I/O port control the Ez-KIT LED’s The new Blackfin assembly language instructions needed