November 2008 Hands-on Workshop: How to Use Ultra-Low Cost RS08 Processors in Real-Time Applications PZ113 Kenny Ji Systems and Applications Engineering TM Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. Curta Calculator ►Curta • a small, hand-cranked mechanical calculator introduced in 1948 ►Features • Addition • Subtraction • Multiplication • Division • Square roots ►Advantages • Easy to use • Portable • No battery needed! • ... Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM RS08 Core – Curta in Silicon ►RS08 Core • Optimized Memory Organization High code density for 16-KB Memory size ƒ High efficient access to first 256 bytes ƒ • Optimized instruction set Compact instruction set for high code density ƒ Simplified HCS08 Instruction set for code porting ƒ • Simplified stacking and calling mechanism • Polling Interrupt Mechanism Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM RS08 Target Applications ¾ Target Applications ¾ Ultra-bright LED Application – MR16 Bulb ¾ Low End Thermal Controlled BLDC Fan – KA2 Replacing Analog Driver ¾ Low End Remote Control in Light Dimmer, Light Switch, Electric Fan -- KA2 Replacing ASIC / 4-bit MCU ¾ Toaster Oven Application – KA2 Replacing ASIC ¾ AC Voltage Line Monitor ¾ Low End Microwave Oven Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM First EETimes China ACE (Awards for Creativity in Electronics) Best Product of the Year in Microcontrollers (MCUs) Category - MC9RS08KA family •Finalist in EE Times America ACE Award Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Objective and Agenda ►Objectives: Address field concerns on the RS08 MCU in Real-time applications. • Provide RS08 Real-time solutions. • ►Agenda: RS08 Architecture • Interrupt Mechanism used in RS08 CPU • ƒ ƒ • Real-time solutions for RS08 MCU ƒ ƒ • Nested Interrupt VS non-Nested Interrupt Event Based scheduling High efficient scheduling Examples FAQ Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Small but Powerful RS08 Architecture TM Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. RS08 Core CPU Model ► CPU • Central Processing Unit • Processing most algorithm & logic operations ► BDC • Background Debug Controller • Providing background debug capability for RS08 CPU ► MMC • Memory Mapping Controller • Providing memory accessing capability in RS08 core ► IMU • Integration Management Unit • Interfacing RS08 core to external logic Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. CPU CPU BDC BDC MMC MMC IMU IMU BUS TM RS08 Core CPU Model ►CPU Registers • A – Accumulator • PC – Program Counter • SPC – Shadow Program Counter • CCR – Condition Code Register ►Memory Mapped Registers • D[X] – Indexed Data Register @0x000E • X – Index Register @0x000F • PAGESEL – Page Select Register @0x001F Accumulator (A) Program Counter (PC) Shadow Program Counter (SPC) Condition Code Register (CCR) ZZ CC Indexed Data Register (D[X]) Index Register (X) Page Select Register (PAGESEL) Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Memory Map and Addressing Mode ►Memory Map • Direct Page Fast Access RAM ƒ Paging Window Short Addressing High Page Registers Nonvolatile Memory Direct Addressing ƒ • • Fast Access RAM Tiny Addressing D[X] X Frequently Used Registers PAGESEL RAM Unimplemented ►Addressing Mode • Inherent Addressing Mode (INH) • Relative Addressing Mode (REL) • Immediate Addressing Mode (IMM) • Tiny Addressing Mode (TNY) • Short Addressing Mode (SRT) • Direct Addressing Mode (DIR) • Extended Addressing Mode (EXT) • Indexed Addressing Mode Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. Paging Window Unimplemented High Page Registers Unimplemented Nonvolatile Memory TM Optimized Instruction Set ►Optimized Instructions • • Most Opcode are encoded in Tiny and Short Addressing Modes Tiny and Short Addressing Modes saving at least 1 bytes per instruction which maximizes code density and is quite suitable for small applications = Tiny Addressing = Short Addressing Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Stacking and Calling ►Stacking • No hardware stack management to simplify stacking maintain • No special registers needed for stack operations • Software stack management as alternate method if necessary ►Calling • Shadow Program Counter (SPC) • Register-based instead of RAMbased calling stack operation for quick calling • SHA and SLA instruction used for more than nested calling Accumulator (A) SHA instruction SLA instruction Program Counter (PC) return from calling Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. Jump to calling Shadow Program Counter (SPC) TM Polling Mode Interrupt Schedule RS08 Interrupt Mechanism TM Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. RS08 Interrupts Model ►RS08 Application Model • The time based event model allows software sorts interrupt priorities and selects the top one to execute. • Time based event model does not use interrupt vector table as it will prevent the interrupt priorities sort. • Time based event model can maximize the usage of code and minimize RAM size. Executing ISR Executing ISR ISR Return from ISR Interrupted Interrupted Return from ISR Background Background Background Running Wait/Stop Go to Wait or Stop ISR Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. Background Time Direction TM How does RS08 CPU service interrupts ►Polling mode interrupt CPU will be waked up from wait and stop modes when an interrupt occurs. • The corresponding interrupt bit in system interrupt pending register (SIP) will be set. • The program flow is scheduled by polling SIP register. • ISR priority is software defined. • ►Target Applications State machine • Time based event applications • Event base applications • Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Traditional Interrupts Operation ► ► ► ► ► /* This column shows a typical background program for a interrupt-based schedule */ ► /* background program */ ► ► ► void main(void) { /* do any initialization here */ ng ri te En R IS ► ► ► ► ► /* enter the background, loop forever */ while(1) { /* do lowest priority tasks here*/ ... } } /* interrupt service routine */ ► ► ► interrupt void ISR1(void) { /* do interrupt triggered tasks ► here */ ► ... ►} R IS /* enable interrupts */ ► ng ti ci Ex ► ► ► ► /* This column shows a typical interrupt service loop program ► for a interrupt-based schedule */ ► ► ► interrupt void ISR2(void) { As main program can be interrupted at any anywhere unmasked, a /*time doand interrupt triggered lot of stacking tasks here */operation is made to save ► ...the status, which will take much time and many memories. ►} Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM RS08 Interrupts Operation /* This column shows an RS08 background program for a interrupt-based schedule */ ► ► ► /* This column shows a typical interrupt service loop program for a interrupt-based schedule */ ► /* background program */ ► /* interrupt service routine */ ► ► ► ► ► ► void main(void) { ... while(1) { stop(); // stop until arise ► ► ► void ISR1(void) { /* do interrupt triggered tasks here */ ... } R IS ► ► ng ti ci Ex if (interrupt 1 triggered) { ISR1(); continue; } if (interrupt 2 triggered) { ISR2(); continue; } ... ► ► ► ► ► void ISR2(void) { /* do interrupt triggered tasks here */ ... } RS08 polling mode controls the program stream wholly so that no stacking operation is needed and minimal latency is required. R IS ► ► ► ► ► ► ► ► ► ► ► ► ► ng ri te En ► ► ► } } Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Benefits of RS08 Interrupt Mechanism ►More • available code space As no vector table needed, RS08 core can utilize 32 bytes reserved for HC08 vector table. ►Minimized • As no stacking operation, RS08 core need no hardware stack and no big memory support. ►Minimized • interrupt latency As no stacking operation, RS08 core need few cycles to enter and exit from interrupt service routine (ISR). ►Increased • • RAM size performance 10-MHz BUS Reduced cycle count for RAM access Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Target Real-time Applications A Timing-base RS08 schedule example TM Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. Timing Base RS08 Core Schedule ►Timing Based RS08 Core Schedule • The main idea is intended to split big tasks into small fragment so that it can be schedule in a timing slot. • The timing is handled by hardware timer. • As far as the ISR is small enough, the total time period can be occupied by a scheduled task. • All tasks pended are prioritized so that the pended task will always be serviced firstly Timing Period = T T T T Time Direction Task A Task B Background Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. ISR + Scheduler TM Timing Base RS08 Core Schedule Set Hardware Timing Source 1. • • Select a hardware timer as timing source Keep Timing ISR as short as possible Tasks Allocation 2. • • Split big task into small fragment Prioritize Tasks Schedule Tasks after timing ISR 3. • • Schedule task when timing ISR is completed Schedule the pended task with top priority to execute Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Set Hardware Timing Source ►Select a hardware timer as timing source • Hardware timer has more accuracy than software • Hardware timer is standard peripheral of MCU ►Keep Timing ISR as short as possible • Timing is only a source to execute split tasks • Keep ISR short means more time for task execution MTIM: 8-bit Modulo RTI: Fixed Modulo, 1, 2, 4, 8, ..., 1024 CLK CLK INT INT FLAG FLAG TPM: 16-bit Modulo Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Task Allocation ►Split big task into small fragment • Most tasks are big and difficult to handle • Make sure each split task can completed execution within a timing period ►Prioritize Tasks • Only one task can be executed in one timing period • The scheduler need input to arbiter the right task to execute while more than one tasks are pended High Priority AA BB EE FF CC GG 3 Tasks: 2 big and 1 small EE FF AA BB GG 6 Tasks: All small Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. Low Priority CC 6 prioritized Tasks: 3 Level Green: high Priority Yellow: middle Priority Blue: Low Priority TM Schedule Tasks after timing ISR ►Schedule task when timing ISR • ISR is the trigger of every schedule is completed ►Schedule the pended task with high priority to execute • The pended task with high priority must be service prior to the one with low priority • The tasks with same priority will be scheduled by time order • No task is scheduled if there is no pended task High Priority EE FF AA BB EE FF AA BB CC GG CC GG Low Priority Time Direction Background Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. ISR + Scheduler TM An Example of Timing-Based Schedule ►Preliminary Requirements • To get RMS value of utility power • 64 times sampling each cycle • Report Final result to host via UART 110V 60Hz/220V 50Hz RS08 CPU 10 ms Trigger/Sample Timer CPU ADC To host ADC Sample 50Hz/60Hz × 128 SCI PMC Internal Clock 10-MHz BUS Vaverage = 63 ∑V i =0 2 i Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM An Example of Timing-Based Schedule ►Basic Analysis 60 x 64 = 3840 times ADC samplings per second • 60 x 64 = 3840 times square and accumulation operations per second • One square root operation per second • One UART operation • ►System Design 7680Hz (130.2us) Timing • Start ADC every two timings in timing ISR • Get ADC value and perform square and accumulation operations in the next period to the one starting ADC • For the periods not performing square operation are allocated to perform square root operation and UART operation • Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM An Example of Timing-Based Schedule Timing Period = 130.2us T = 130.2us T = 130.2us T = 130.2us Time Direction Task to perform square root and send data via UART Background Task to perform square and accumulation operations ISR staring ADC sampling ISR not staring ADC sampling Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Performance ¾ Performance ¾ BUS Frequency: 8-MHz ¾ Base time period: 130us ¾ Scheduler code (Flash): 57 bytes ¾ Scheduler data (RAM): 4 bytes ¾ ISR code (Flash): 16 bytes ¾ ISR data (RAM): 1 byte ¾ Scheduler + ISR execution time: 9us* ¾ Scheduler + ISR execution time: 12.5us ¾ Scheduler + ISR CPU load: 9.6% ¾ Conclusion ¾ Over 90% MIPS are used for calculation ¾ RS08 core did a real-time schedule successfully Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Conclusions & FAQ Select best MCU for your applications TM Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. Select Best MCU for Your Applications ►What best MCU? • Meeting requirements ƒ ƒ ƒ • Never over requirements Never under requirements Exact meeting always Cost acceptable Never being asked why it costs so much ƒ Minimized development and manufacture cost ƒ • Least development cycle time ƒ • Always speeding your prototype to markets The best MCU always most suitable to Applications Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM What applications does RS08 target ►Applications Small code density < 12K Bytes • RAM < 256 Bytes • No nested interrupt requirement • A small or empty background loop • ►Scheduling State machine • Time based event applications • Event base applications • Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM FAQ ►Q : Why do we need RS08 core when polling mode looks to be able to be implemented in a traditional CPU? ►A : RS08 core can wake CPU from stop mode but release the program stream handle to software. A traditional CPU can not use polling mode as they can not be waken up from stop without interrupt vector support. And, if vector table is not used, why do you spend money on it? ►Q : Does RS08 core have any limitations? ►A : Of course. RS08 has a strong capability to deal with less tasks (<=6) program. But the polling mode will not always work when the task becomes more. Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Related Session Resources Session Location – Online Literature Library http://www.freescale.com/webapp/sps/site/homepage.jsp?nodeId=052577903644CB Sessions Session ID Title Demos Pedestal ID Demo Title Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM BACKUP S08 VS RS08 Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM RS08 Advantages ►Reduced Code Size Every S08 vector occupies 2 bytes to store address. S08 uses a fixed interrupt vector table, 32 × 2 = 64 bytes. At least 6 bytes are needed to stack current registers when an interrupt occurs. • Every RS08 polling occupies 3 bytes to store opcode. RS08 supports up to 16 interrupts, which means up to 16 × 3 = 48 bytes will be used. No stacking operation is needed in RS08 interrupt mechanism. • ►Conclusion • RS08 uses LESS space than traditional interrupt vector. Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM RS08 Advantages Size for Interrupt Vector S08 VS RS08 Size performance 80 60 64 64 64 64 64 64 15 18 40 20 0 3 0 6 9 1 2 12 3 4 5 64 48 16 Interrupt Number Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM RS08 Advantages ►Time Performance S08 takes at least 11 cycles before entering ISR and at least 9 cycles after ISR. S08 takes 20 cycles at least to process ISR associated action. • RS08 takes 5 cycles before entering ISR and 3 cycles after ISR. RS08 takes 5 × Priority + 8 cycles to process ISR associated action. • ►Conclusion • For RS08 uses a software scheduling interrupt vector, ƒ ƒ Priority #0, Priority #1, and #2 ISR executions are FASTER than S08 ISR. Priority #3 or higher ISR executions is SLOWER than S08 ISR. Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM RS08 Advantage S08 VS RS08 Interrupt Latency BUS cycles 40 30 20 10 20 8 20 13 0 1 20 18 23 20 2 3 33 28 20 20 0 4 5 Number of Interrupt Sources Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Use Cases ►Consider two cases Case 1: High priority interrupt with high frequency, Low priority interrupt with low frequency. Assuming high priority interrupt has double frequency of adjacent low priority interrupt. • Case 2: Low priority interrupt with high frequency, High priority interrupt with low frequency. Assuming high priority interrupt has half frequency of adjacent low priority interrupt in Case 2. The maximum frequency is 10kHz. • ►Other assumption Assuming there are up to 6 major interrupts used. Assuming the maximum frequency is 10kHz. Assuming there are no redundancy in background program except the scheduler. • Assuming 10-MHz BUS used for schedule consumption calculation • • • Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Use Cases RS08 Case 1 RS08 Case 2 S08 Freq Cycle Sum Freq Cycle Sum Freq Cycle Sum Priority #0 10000 8 80000 312.5 8 2500 10000 20 200000 Priority #1 5000 13 65000 625 13 8125 5000 20 100000 Priority #2 2500 21 45000 1250 21 22500 2500 20 50000 Priority #3 1250 26 28750 2500 26 57500 1250 20 25000 Priority #4 625 31 17500 5000 31 140000 625 20 12500 Priority #5 312.5 36 10312.5 10000 36 330000 312.5 20 6250 Total Percentage of 10-MHz BUS 246562.5 2.5% (37.4% faster than S08) Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. 560625 5.6% (42.4% slower than S08) 393750 3.9% TM Use Cases ►Conclusion In the case that high priority interrupt with high frequency, the RS08 gets MORE efficient than S08 (37.4% faster in the example). • In the case that high priority interrupt with low frequency, the RS08 gets LESS efficient than S08 (42.4% slower in the example). • Less interrupts MORE efficient in RS08 • The only assumption is, • ƒ No big task executed in background program Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM BACKUP Timebase Event Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Timebase Event Constant Time t ► InfLoop: ► wait ► brset SIP1_RTI, MAP_ADDR_6(SIP1), TimeTick ► brset SIP1_LVD, MAP_ADDR_6(SIP1), Brownout ► ► TimeTick: ► ; ... Code here ... ► jmp InfLoop ► ► Brownout: ► ; ... Code here ... ► jmp InfLoop Wait takes 3 bus cycles to wake up at most Brset takes 5 bus cycles At most 8 bus cycles software overhead At 10MHz bus, 0.8us required. Application Example Sensor applications, Low end power meter Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Timebase with additional Interrupt Handling Constant Time ► InfLoop: wait ► brset SIP1_IIC, MAP_ADDR_6(SIP1), _IIC_ISR ► brset SIP1_SCI, MAP_ADDR_6(SIP1), ► ► _SCI_ISR brset SIP1_RTI, MAP_ADDR_6(SIP1), _TimeTick brset SIP1_LVD, MAP_ADDR_6(SIP1), Brownout _IIC_ISR: jmp IIC_ISR _SCI_ISR: jmp SCI_ISR _TimeTick: jmp TimeTick Brownout: ; ... Code here ... jmp InfLoop ► ► ► ► ► ► ► ► IIC_ISR: ► ; ... Code here ... ► jmp InfLoop ► _SCI_ISR: ► ; ... Code here ... ► jmp InfLoop ► ► _TimeTick: ► ; ... Code here ... ► jmp InfLoop Asynchronous Interrupt t Software defines interrupt priority At 10MHz, IIC_SIR takes 1.2us to response (including JMP) SCI_ISR takes 1.7us to response (including JMP) Application Example Sensor applications, Low end power meter, mouse, home applicants, remote control Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Linear Coding Constant Time ISR execution t ►If you are forced to use linear code, i.e. CPU bandwidth is reaching 100%, pending interrupt can be checked in regular manner. Int_Check: MACRO tst beq jsr ENDM SIP1 *+5 Handle_interrupt Handle_Interrupt: brset SIP1_IIC, MAP_ADDR_6(SIP1), IIC_ISR brset SIP1_SCI, MAP_ADDR_6(SIP1), SCI_ISR brset SIP1_LVD, MAP_ADDR_6(SIP1), Brownout rts Brownout: ; ... Code here ... bra Handle_Interrupt IIC_ISR: ; ... Code here ... bra Handle_Interrupt SCI_ISR: ; ... Code here ... bra Handle_Interrupt Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM BACKUP Skills used in Demo Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Programming Skills in The Demo ►Inline • Technology Inline ISR makes the RS08 program smaller and more efficient. ►Software • Software defined ISR priorities make RS08 program more flexible. Hardware defined ISR priorities are inhibited by the IC maker. ►Quick • defined ISR priorities Polling Mode Quick polling mode ensure that the interrupt with highest priority will be responded prior to the others. Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM BACKUP MISC Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM 9RS08KA2 • Supply Voltage / Performance • 1.8-5.5V 1K/2K SIM Flash Analog • Core Comp • Memory BDC 8-bit 63 bytes RAM ICS KBI RS08 Core COP Modulo Timer • RS08 Core • 1K / 2K bytes Flash • 63 bytes RAM • Analog Comparator • Full rail-to-rail supply operation, can operate in STOP mode • Features/ Benefits • Computer operating properly feature (COP) • Integrated Clock Source (ICS) up to 10MHz internal bus operation with 2% deviation over full temperature and voltage range • 8-bit Modulo Timer • 3 / 5 channel keyboard interrupt (KBI) • LVD (low voltage detect) with reset or stop wakeup • External Vpp required for Flash programming • Auto wakeup • Target Package • 6 pin DFN, 8 pin narrow body SOIC, 8PDIP • Development Tools/ Documentation • Similar to existing S08 platform • Target Applications: • Small appliance, toys, simple analog comparator / simple logic replacement, HB-LED Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM A Typical Scheme of Timing Based Schedule Tasks Prioritized Tasks Status Next Status Next 2nd Status Dotted tasks will not be executed in current available interval Interrupt Interrupt Service Routine Task Priority Schedule Task schedule being executed Time Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM Freescale Semiconductor Proprietary Information. Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other product or service names are the property of their respective owners. © Freescale Semiconductor, Inc. 2008. TM
© Copyright 2024 Paperzz