Programa del Curso (Primer Día):

23
Introducción a la Introducción a la Programación en C Programación en C sobre uC 9S08 de sobre uC 9S08 de Freescale Freescale Lenguaje C sobre Lenguaje C sobre Microcontrolador Microcontrolador 9S08 de 8 bits para 9S08 de 8 bits para novatos novatos

description

Introducción a la Programación en C sobre uC 9S08 de Freescale Lenguaje C sobre Microcontrolador 9S08 de 8 bits para novatos. Programa del Curso (Primer Día):. Arquitectura 9S08. Modelo de Programación. Registros. Mapa de Memoria. Periféricos. Registros de Configuración. (45 minutos). - PowerPoint PPT Presentation

Transcript of Programa del Curso (Primer Día):

Page 1: Programa del Curso  (Primer Día):

Introducción a la Introducción a la Programación en C Programación en C sobre uC 9S08 de sobre uC 9S08 de FreescaleFreescale

Lenguaje C sobre Lenguaje C sobre Microcontrolador Microcontrolador 9S08 de 8 bits para 9S08 de 8 bits para novatosnovatos

Page 2: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

22

Ing. Gerardo Sager

FI-UNLP

[email protected] del Curso Programa del Curso (Primer Día):(Primer Día):

Arquitectura 9S08. Modelo de Programación. Arquitectura 9S08. Modelo de Programación. Registros. Mapa de Memoria. Periféricos. Registros. Mapa de Memoria. Periféricos. Registros de Configuración. (45 minutos).Registros de Configuración. (45 minutos).

Entorno de Programación Codewarrior. Entorno de Programación Codewarrior. Creación de Proyectos. Simulación. (45 Creación de Proyectos. Simulación. (45 minutos).minutos).

Primitivas del lenguaje C. Variables, Primitivas del lenguaje C. Variables, Estructuras de Control. Expresiones. (45 Estructuras de Control. Expresiones. (45 minutos).minutos).

Puertos de Entrada-Salida. Configuración Puertos de Entrada-Salida. Configuración Básica. Encendido de un LED. (45 minutos) Básica. Encendido de un LED. (45 minutos)

Page 3: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

33

Ing. Gerardo Sager

FI-UNLP

[email protected]

Arquitectura 9S08. Modelo de Arquitectura 9S08. Modelo de Programación. Registros. Mapa de Programación. Registros. Mapa de Memoria. Periféricos. Registros de Memoria. Periféricos. Registros de Configuración. (45 minutos).Configuración. (45 minutos).

Page 4: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

44

Ing. Gerardo Sager

FI-UNLP

[email protected] microcontrolador Un microcontrolador moderno posee:moderno posee: CPU (Central Processing Unit) CPU (Central Processing Unit) Sistema de CONTROLSistema de CONTROL Uno o más PERIFERICOSUno o más PERIFERICOS Sistema de MEMORIA (RAM y FLASH) Sistema de MEMORIA (RAM y FLASH) Sistema de DEBUGSistema de DEBUG

TODO CONECTADO POR:TODO CONECTADO POR: BUSES (DATOS y DIRECCIONES) BUSES (DATOS y DIRECCIONES) LINEAS DE CONTROLLINEAS DE CONTROL

Page 5: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

55

Ing. Gerardo Sager

FI-UNLP

[email protected] de un Componentes de un MicrocontroladorMicrocontrolador

CPU

Per

iféric

os

CO

NT

RO

L

Memoria

DEBUG

n bits

n bi

tsn

bits

n bits

m bits

m b

its

Page 6: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

66

Ing. Gerardo Sager

FI-UNLP

[email protected]

Microcontrolador I Microcontrolador I Es un dispositivo programable.Es un dispositivo programable. Posee Registros y Comunicación mediante uno o más Posee Registros y Comunicación mediante uno o más

BUSESBUSES Permite realizarPermite realizar

Operaciones Aritméticas ( +, −, X, / )Operaciones Aritméticas ( +, −, X, / ) Operaciones Lógicas ( AND, OR, XOR, NOT)Operaciones Lógicas ( AND, OR, XOR, NOT) Decisiones basadas en comparaciones Decisiones basadas en comparaciones

( < ≤ = > ≥ ( < ≤ = > ≥ ≠ ).≠ ).

Saltos (Condicionales / Incondicionales)Saltos (Condicionales / Incondicionales) Llamados a Subrutina (Funciones) Llamados a Subrutina (Funciones) Movimiento de datos RMovimiento de datos RR, RR, RM, MM, MMM

CPU

Page 7: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

77

Ing. Gerardo Sager

FI-UNLP

[email protected]

Microcontrolador II Microcontrolador II

InterrupcionesInterrupciones COP ( CPU operating properly) / COP ( CPU operating properly) /

(CPU Operando Correctamente) (CPU Operando Correctamente) Distintos modos de Reset (reinicio)Distintos modos de Reset (reinicio) Monitor de tensión de alimentaciónMonitor de tensión de alimentación

Sistema de

Control

Page 8: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

88

Ing. Gerardo Sager

FI-UNLP

[email protected]

Microcontrolador III Microcontrolador III Puertos de Entrada / SalidaPuertos de Entrada / Salida TimerTimer Convertidor Analógico-DigitalConvertidor Analógico-Digital Comparador AnalógicoComparador Analógico Sensor de TemperaturaSensor de Temperatura Comunicaciones (I2C, SPI, SCI, Comunicaciones (I2C, SPI, SCI,

USB, CAN) USB, CAN) Fuentes de Reloj.Fuentes de Reloj.

PERIFERICOS

Page 9: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

99

Ing. Gerardo Sager

FI-UNLP

[email protected]

Sistema de

Memoria

Microcontrolador IV Microcontrolador IV Memoria RAMMemoria RAM Memoria FlashMemoria Flash Control de Escritura de FlashControl de Escritura de Flash

Controlador de Debug / CPUControlador de Debug / CPU Módulo de Debug / PerifericosMódulo de Debug / Perifericos

Sistema de

Debug

Page 10: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1010

Ing. Gerardo Sager

FI-UNLP

[email protected]

Arquitectura 9S08Arquitectura 9S08

Page 11: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1111

Ing. Gerardo Sager

FI-UNLP

[email protected] Microcontrolador MC9S08SH8MC9S08SH8

MODULO TIMER/PWM DE 16 BITS (TPM2)

MODULO TIMER/PWM DE 16 BITS (TPM1)

MOD. INTERFAZ DE COMUNICACIONES SERIE

(SCI)

MODULO INTERFAZ DE PERIFÉRICOS SERIE

(SPI)

MODULO (I2C) INTER CIRCUITO INTEGRADO

MODULO TIMER DE 8 BITS (MTIM)

MODULO DEBUG (DBG)

TCLK

TCLK

SCL

SDA

SS*

MISO

MOSI

SPSCK

RXD

TXD

TCLK

TPM1CH0

TPM1CH1

TPM2CH1

TPM2CH1

CONTROL DE HCS08

INTERRUPCIONES Y RESETMODOS DE OPERACIÓN

ALIMENTACIÓN

FLASH DE USUARIOMC9S08SH8 = 8192 BYTES

CONTADOR DE TIEMPO REAL (RTC)

NUCLEO HCS08

CPU BDC

COP LVDIRQ

RAM DE USUARIOMC9S08SH8 = 512 BYTES

FUENTE DE RELOJ INTERNA DE 40MHZ (ICS)

OSCILADOR DE BAJA POTENCIA 31.25KHZ A 38.4KHz

1MHz A 16MHz (XOSC)

EXTAL

IRQ

XTAL

BKGD/MS

ACMP0

ACMP+

ACMP-

ADP11-ADP0

REGULADOR DE TENSIÓN

COMPARADOR ANALÓGICO

CONVERTIDOR ANALÓGICO DIGITAL

DE 10 BITS

VSS

VDD

VREFL

VREFH

VSSAVDDA

PTC1/TPM1CH1/ADP9

PTC0/TPM1CH0/ADP8

PUERTO C

PTC3/ADP11

PTC2/ADP10

PTA1/PIA1/TPM2CH0/ADP1/ACMP-

PTA0/PIA0/TPM1CH0/ADP0/ACMP+

PUERTO A

PTA5/IRQ/TCLK/RESET*

PTA4/ACMP0/BKGD/MS

PTA3/PAI3/SCL/ADP3

PTA2/PAI2/SDA/ADP2

PUERTO B

PTB7/SCL/EXTAL

PTB6/SDA/XTAL

PTB5/TPM1CH1/SS*

PTB4/TPM2CH1/MISOPTB3/PIB3/MOSI/ADP7

PTB2/PIB2/SPSCK/ADP6

PTB1/PIB1/TxD/ADP5PTB0/PIB0/RxD/ADP4

Page 12: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1212

Ing. Gerardo Sager

FI-UNLP

[email protected]ódulos que vamos a Módulos que vamos a usarusar

MODULO TIMER/PWM DE 16 BITS (TPM2)

MODULO TIMER/PWM DE 16 BITS (TPM1)

MOD. INTERFAZ DE COMUNICACIONES SERIE

(SCI)

MODULO INTERFAZ DE PERIFÉRICOS SERIE

(SPI)

MODULO (I2C) INTER CIRCUITO INTEGRADO

MODULO TIMER DE 8 BITS (MTIM)

MODULO DEBUG (DBG)

TCLK

TCLK

SCL

SDA

SS*

MISO

MOSI

SPSCK

RXD

TXD

TCLK

TPM1CH0

TPM1CH1

TPM2CH1

TPM2CH1

ACMP0

ACMP+

ACMP-

ADP11-ADP0

REGULADOR DE TENSIÓN

COMPARADOR ANALÓGICO

CONVERTIDOR ANALÓGICO DIGITAL

DE 10 BITS

VSS

VDD

VREFL

VREFH

VSSAVDDA

PTC1/TPM1CH1/ADP9

PTC0/TPM1CH0/ADP8

PUERTO C

PTC3/ADP11

PTC2/ADP10

PUERTO B

PTB7

PTB6

PTB5

PTB4PTB3

PTB2

PTB1PTB0

CONTROL DE HCS08

INTERRUPCIONES Y RESETMODOS DE OPERACIÓN

ALIMENTACIÓN

FLASH DE USUARIOMC9S08SH8 = 8192 BYTES

CONTADOR DE TIEMPO REAL (RTC)

NUCLEO HCS08

CPU BDC

COP LVDIRQ

RAM DE USUARIOMC9S08SH8 = 512 BYTES

FUENTE DE RELOJ INTERNA DE 40MHZ (ICS)

EXTAL

IRQ

XTAL

BKGD/MS

OSCILADOR DE BAJA POTENCIA 31.25KHZ A 38.4KHz

1MHz A 16MHz (XOSC)

PIA1

PIA0

PUERTO A

PTA5/IRQ/TCLK/RESET*

PTA4/ACMP0/BKGD/MS

PTA3/PAI3/SCL/ADP3

PTA2/PAI2/SDA/ADP2

Page 13: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1313

Ing. Gerardo Sager

FI-UNLP

[email protected] de 20 patasEncapsulado de 20 patas

12

13

14

15

16

17

18

11

19

20

9

8

7

6

5

4

3

10

2

1

PTB3/PIB3/MOSI/ADP7

PTB2/PIB2/SPSCK/ADP6

PTB1/PIB1/TxD/ADP5

PTB0/PIB0/RxD/ADP4

PTA1/PIA1/TPM2CH0/ADP1/ACMP-

PTA0/PIA0/TPM1CH0/ADP0/ACMP+

PTA3/PAI3/SCL/ADP3

PTA2/PAI2/SDA/ADP2

PTC1/TPM1CH1/ADP9

PTC0/TPM1CH0/ADP8

PTB7/SCL/EXTAL

PTB6/SDA/XTAL

PTB5/TPM1CH1/SS*

PTB4/TPM2CH1/MISO

PTA5/IRQ/TCLK/RESET*

PTA4/ACMP0/BKGD/MS

PTC3/ADP11

PTC2/ADP10

VSS

VDD

Puertos A, B y C accesiblesPuertos A, B y C accesibles

12 entradas de conversor Analógico/Digital12 entradas de conversor Analógico/Digital

Page 14: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1414

Ing. Gerardo Sager

FI-UNLP

[email protected] de 16 patasEncapsulado de 16 patas

Solo Puertos A y B accesiblesSolo Puertos A y B accesibles

Solo 8 entradas de conversor Analógico/DigitalSolo 8 entradas de conversor Analógico/Digital

8

7

6

5

4

3

2

1

PTB3/PIB3/MOSI/ADP7

PTB2/PIB2/SPSCK/ADP6

PTB1/PIB1/TxD/ADP5

PTB0/PIB0/RxD/ADP4

PTA1/PIA1/TPM2CH0/ADP1/ACMP-

PTA0/PIA0/TPM1CH0/ADP0/ACMP+

PTA3/PAI3/SCL/ADP3

PTA2/PAI2/SDA/ADP2

PTB7/SCL/EXTAL

PTB6/SDA/XTAL

PTB5/TPM1CH1/SS*

PTB4/TPM2CH1/MISO

PTA5/IRQ/TCLK/RESET*

PTA4/ACMP0/BKGD/MS

VSS

VDD

12

13

14

15

16

11

9

10

Page 15: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1515

Ing. Gerardo Sager

FI-UNLP

[email protected] de 8 patasEncapsulado de 8 patas

Solo Puerto A accesibleSolo Puerto A accesibleSolo 4 entradas de conversor Analógico/DigitalSolo 4 entradas de conversor Analógico/Digital

Sin posibilidd de Reloj/Cristal ExternoSin posibilidd de Reloj/Cristal ExternoSólo un PWMSólo un PWM

Sin posibilidad de usar SCI / SPISin posibilidad de usar SCI / SPI

4

3

2

1PTA1/PIA1/TPM2CH0/ADP1/ACMP-

PTA0/PIA0/TPM1CH0/ADP0/ACMP+

PTA3/PAI3/SCL/ADP3

PTA2/PAI2/SDA/ADP2

PTA5/IRQ/TCLK/RESET*

PTA4/ACMP0/BKGD/MS

VSS

VDD

8

7

6

5

Page 16: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1616

Ing. Gerardo Sager

FI-UNLP

[email protected] de ProgramaciónModelo de Programación

FUENTE DE RELOJ INTERNA DE 40MHZ (ICS)

DATOS (8BITS)

DIRECCIONES(ADDRESS)

16 BITS

NUCLEO HCS08 (CORE)

BDC

CPU

INDEX LOW (X)

STACK POINTER (SP)

PROGRAM COUNTER (PC)

INDEX HIGH (H)

CCR (FLAGS)

ACCUMULATOR (A)

8BITS

16BITS

FLASH DE USUARIOMC9S08SH8 = 8192 BYTES

RAM DE USUARIOMC9S08SH8 = 512 BYTES

REGISTROS de PERIFERICOS

MC9S08SH8 = 224 BYTES

Page 17: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1717

Ing. Gerardo Sager

FI-UNLP

[email protected] DE LA CPUREGISTROS DE LA CPU

El Acumulador es un registro de 8 bits y sobre este registro se realizan la mayor parte de las El Acumulador es un registro de 8 bits y sobre este registro se realizan la mayor parte de las operaciones aritméticas y lógicasoperaciones aritméticas y lógicas

ACUMULADOR (A)ACUMULADOR (A)

CONDITION CODE REGISTER (CCR o FLAGS)CONDITION CODE REGISTER (CCR o FLAGS) El Registro de Códigos de Condición es un registro de 8 El Registro de Códigos de Condición es un registro de 8

bits, que permite ver distintos FLAGS relacionados con los bits, que permite ver distintos FLAGS relacionados con los resultados de la última operación realizada sobre A resultados de la última operación realizada sobre A

C: CARRY ( ACARREO) C: CARRY ( ACARREO) Z: ZEROZ: ZERO N: NEGATIVON: NEGATIVO

V 11 H I N Z C

I: MASCARA DE INTERRUPCIONES I: MASCARA DE INTERRUPCIONES H: MEDIO ACARREOH: MEDIO ACARREO V: OVERFLOW (DESBORDE) V: OVERFLOW (DESBORDE)

Page 18: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1818

Ing. Gerardo Sager

FI-UNLP

[email protected] DE LA CPUREGISTROS DE LA CPU

En realidad son dos registros de 8 bits, (H y X) que pueden ser utilizados En realidad son dos registros de 8 bits, (H y X) que pueden ser utilizados por separado o juntos formando un registro de 16 bitspor separado o juntos formando un registro de 16 bits

Sirven como Registros de direccionamiento que permiten usar modos de Sirven como Registros de direccionamiento que permiten usar modos de direccionamiento avanzados para obtener los operandos desde memoria direccionamiento avanzados para obtener los operandos desde memoria (datos o instrucciones) en forma eficiente.(datos o instrucciones) en forma eficiente.

Almacenan operandos y resultados de instrucciones como Almacenan operandos y resultados de instrucciones como MULTIPLICACION y DIVISIÓN. MULTIPLICACION y DIVISIÓN.

La parte baja (X) puede ser incrementada, decrementada, puesta a cero, La parte baja (X) puede ser incrementada, decrementada, puesta a cero, complementada, negada, rotada o desplazada. complementada, negada, rotada o desplazada.

También puede ser transferida al Acumulador eficientementeTambién puede ser transferida al Acumulador eficientemente

PROGRAM COUNTER (PC).PROGRAM COUNTER (PC).

REGISTRO DE ÍNDICE (H:X)REGISTRO DE ÍNDICE (H:X)

Es un Registro de 16 bits que indica de que lugar de la memoria se va a obtener la Es un Registro de 16 bits que indica de que lugar de la memoria se va a obtener la próxima instrucción.próxima instrucción.

Page 19: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

1919

Ing. Gerardo Sager

FI-UNLP

[email protected] DE LA CPUREGISTROS DE LA CPUSTACK POINTER (SP)STACK POINTER (SP)

• El Registro de Puntero de Pila es un registro de 16 bits que es El Registro de Puntero de Pila es un registro de 16 bits que es fundamental para el uso eficiente de interrupciones y para la fundamental para el uso eficiente de interrupciones y para la implementación de lenguajes de alto nivel como C.implementación de lenguajes de alto nivel como C.

• Permite establecer un lugar de almacenamiento dinámico, ubicado Permite establecer un lugar de almacenamiento dinámico, ubicado en la misma memoria RAM donde guardar temporalmente en la misma memoria RAM donde guardar temporalmente información, descartándola luego de ser usada. información, descartándola luego de ser usada.

• Se debe tener precaución con la pila en microcontroladores con Se debe tener precaución con la pila en microcontroladores con poco espacio de RAM, ya que si se abusa de su uso, puede poco espacio de RAM, ya que si se abusa de su uso, puede producirse la situación llamada “desborde de pila” que lleva a un producirse la situación llamada “desborde de pila” que lleva a un fallo del programa.fallo del programa.

Page 20: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

2020

Ing. Gerardo Sager

FI-UNLP

[email protected] DE PERIFERICOSREGISTROS DE PERIFERICOS Los periféricos usan registros de configuración, de Los periféricos usan registros de configuración, de

programación y de resultados.programación y de resultados. Están ubicados en dos secciones de la memoria.Están ubicados en dos secciones de la memoria.

Pagina Directa: entre las direcciones 0x0000 y 0x007F (128 Bytes) Pagina Directa: entre las direcciones 0x0000 y 0x007F (128 Bytes) Página Alta: entre las direcciones 0x1800 y 0x185F (96 Bytes)Página Alta: entre las direcciones 0x1800 y 0x185F (96 Bytes)

La CPU accede a Página Directa más eficientemente que a La CPU accede a Página Directa más eficientemente que a otras direcciones. Por eso se colocan allí los registros de otras direcciones. Por eso se colocan allí los registros de periféricos mas usados.periféricos mas usados.

En Página Alta el acceso es menos eficiente y se colocan En Página Alta el acceso es menos eficiente y se colocan los registros que se usan pocas veces durante el programa.los registros que se usan pocas veces durante el programa.

Además hay otros registros especiales que se almacenan Además hay otros registros especiales que se almacenan en FLASH en el momento de programar. en FLASH en el momento de programar.

Page 21: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

2121

Ing. Gerardo Sager

FI-UNLP

[email protected] RAMMEMORIA RAM

• La Memoria RAM, es una memoria de lectura/escritura, en La Memoria RAM, es una memoria de lectura/escritura, en la cual los procesos de lectura y escritura se hacen a la cual los procesos de lectura y escritura se hacen a velocidad similar, compatible con la velocidad del reloj que velocidad similar, compatible con la velocidad del reloj que controla la CPU.controla la CPU.

MEMORIA FLASHMEMORIA FLASH

• La Memoria FLASH, Tambien es una memoria de lectura y La Memoria FLASH, Tambien es una memoria de lectura y escritura, pero la lectura puede hacerse a la velocidad del reloj de escritura, pero la lectura puede hacerse a la velocidad del reloj de la CPU, mientras que la escritura es lenta, y necesita una la CPU, mientras que la escritura es lenta, y necesita una scuencia de comandos especiales para realizarla. Por eso se scuencia de comandos especiales para realizarla. Por eso se utiliza para almacenar el código de programautiliza para almacenar el código de programa

Page 22: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

2222

Ing. Gerardo Sager

FI-UNLP

[email protected] DE MEMORIAMAPA DE MEMORIAREGISTROS DE PÁGINA DIRECTA

MC9S08SH8 = 128BYTES

RAM DE USUARIOMC9S08SH8 = 512 BYTES

FLASHMC9S08SH8 = 8192 BYTES

NO IMPLEMENTADAMC9S08SH8 = 5504 BYTES

REGISTROS DE PÁGINA ALTAMC9S08SH8 = 96BYTES

NO IMPLEMENTADAMC9S08SH8 = 51104 BYTES

0x0000

0x007F0x0080

0x027F0x0280

0x17FF0x1800

0x185F0x1860

0xDFFF

0xE000

0xFFFF

0x0100

Page 23: Programa del Curso  (Primer Día):

15/08/201315/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SIntroducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-ASE 2013-

2323

Ing. Gerardo Sager

FI-UNLP

[email protected] visto:Hemos visto: Partes de un Microcontrolador en generalPartes de un Microcontrolador en general Partes del Microcontrolador MC9S08SH8Partes del Microcontrolador MC9S08SH8 Partes que usaremos del MC9S08SH8Partes que usaremos del MC9S08SH8 Encapsulados del MC9S08SH8 Encapsulados del MC9S08SH8 Modelo de ProgramaciónModelo de Programación Registros de la CPU 9S08Registros de la CPU 9S08 Registros de Periféricos del MC9S08SH8Registros de Periféricos del MC9S08SH8 Tipos de Memoria del MC9S08SH8Tipos de Memoria del MC9S08SH8 Mapa de Memoria del MC9S08SH8Mapa de Memoria del MC9S08SH8