Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Compiler support  





2 References  





3 External links  














Motorola S08






Magyar
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from Freescale S08)

The 9S08 (68HCS08orS08 for short) is an 8-bit microcontroller (μC) family originally produced by Motorola, later by Freescale Semiconductor,[1] and currently by NXP, descended from the Motorola 6800 microprocessor. It is a CISC microcontroller. A slightly extended variant of the 68HC08, it shares upward compatibility with the aging 68HC05 microcontrollers, and is found in almost any type of embedded systems. The larger members offer up to 128 KiB of flash, and 8 KiB of RAM via a simple memory management unit (MMU) which allows bank-switching 16 KiB of the address space and an address/data register pair which allows data fetches from any address. The paging scheme used allows for a theoretical maximum of 4 MB of flash.[2]

MMU-equipped variants offer two extra CPU instructions, CALL and RTC, which are used instead of JSR and RTS respectively when dealing with subroutines placed in paged memory, allowing direct page-to-page subroutine calls. In a single atomic operation, CALL saves and RTC restores not only the PC but also one extra address byte, the PPAGE (program page) byte. Because of this extra byte, and to also keep the stack balanced, a subroutine ending with RTC must always be called with CALL, even if it resides in the same memory page.

Internally, the 9S08 instruction set is upward compatible with the 6805, with the addition of stack indexed addressing modes. (Instructions using the SP register have opcodes prefixed with the byte 0x9E). It has a single eight-bit accumulator, A, one sixteen-bit index register, HX (whose lower half, X, is used in isolation by 6805-compatible instructions), a condition code register, a 16-bit stack pointer, and a program counter. For compatibility with the 6805 which does not have an H register, the most significant byte of the HX register, H, is cleared during reset, and H is the only register not stacked automatically when entering any ISR (Interrupt Service Routine).[3]: 81  Unlike the 6805, the stack can be placed anywhere in memory using appropriate instructions.

The standard method of programming or debugging the 9S08 family is via a standard six-pin BDM interface (only one pin is used for communication with the microcontroller).

A wide variety of peripherals is available for different members and/or packages. SCI, SPI, 8/10/12-bit A/D, (C)PWM, Input Captures, and Output Compares are common with most members, but no external bus is available. Some members come with a built-in CAN controller.

Compiler support[edit]

The S08 is partly supported (e.g., no MMU support) by the free C compiler SDCC and fully by CodeWarrior.

References[edit]

  1. ^ "NXP Semiconductors | Automotive, Security, IoT". www.nxp.com. Retrieved 2021-02-18.
  • ^ Viramontes, Eduardo; Li, Rick (May 2008). Understanding Memory Paging in 9S08 Devices (PDF) (Application Note). Rev. 0. Freescale Technical Support. AN3730.
  • ^ HCS08 Family Reference Manual (PDF). Rev. 2. Freescale Semiconductor. May 2007. HCS08RMv1/D.
  • External links[edit]

  • Win/Linux/DOS-based freeware macro cross-assembler (ASM8)
  • Example assembly language code written for ASM8

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Motorola_S08&oldid=1224198093"

    Categories: 
    Motorola microcontrollers
    Freescale Semiconductor microcontrollers
    NXP Semiconductors microcontrollers
    Hidden categories: 
    Articles needing additional references from March 2013
    All articles needing additional references
     



    This page was last edited on 16 May 2024, at 21:01 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki