microcontrolador cygnal 8051f040icaro.eii.us.es/descargas/ii_transparencias_tema3_8051f040.pdf ·...

Post on 12-Jul-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Ingeniería Técnica Industrial Electrónica.

Informática Industrial.Prof. Dr. Alejandro Linares Barranco

Microcontrolador Cygnal 8051F040

2

Microcontrolador Cygnal 8051F040.

Contenido1. Introducción y características.2. CPU 8051.3. Reset.4. Memoria flash.5. Memoria externa.6. Relojes.7. Puertos de entrada / salida.8. Periféricos Analógicos.9. Interfaz Serie SPI.10. UART.11. Timers.12. Contador programable (PCA).

3

•Características del Cygnal 8051F040.•Microcontrolador compatible 8051 con pipeline de alta velocidad (hasta 25 MIPS).•Controlador bus CAN 2.0B con 32 mensajes, cada uno con su máscara de identificación.•Interfaz de depuración integrada y de alta velocidad.•ADC de 12 bits, 100ksps, 8 canales, ganancia programable y con multiplexor analógico integrado.•ADC de 8 bits, 500ksps, 8 canales, ganancia programable y multiplexor analógico integrado.•2x DCA de 12 bits•Amplificador diferencial de entrada de alto voltaje (60v pico a pico) y ganancia programable.•64K de memoria Flash integrada.•4096 + 256 bytes de RAM interna.•Interfaz de Memoria RAM externa de hasta 64Kb de espacio direccionable.•SMBus / I2C, 2xUART, SPI integrados.•5 timers de propósito general.•PCA: contador / timer programable con 6 capturadores / comparadores y Watch Dog.•Watch-Dog timer, Vdd Monitor y Sensor de temperatura.•64 puertos I/O tolerantes 5v.

1. Introducción y Características.

4

5

•Microcontrolador de alta velocidad 8051.•Pipeline de instrucciones. El 70% de instrucciones se ejecutan entre 1 y 2 ciclos de reloj.•Hasta 25 MIPS con un reloj de 25 MHz. Control de interrupciones extendido.

•Periféricos analógicos.•Convertidor A/D de 12 bits de precisión. Hasta 100 Kmuestras/seg. Hasta 8 entradas externas.•Convertidor A/D de 8 bits de precisión. Hasta 500 Kmuestras/seg. Hasta 8 entradas externas.•2 DACs de 12 bits.•Comparadores analógicos.•Power-on Reset

•Controlador CAN 2.0B•Depuración On-chip.•Memoria. 4K + 256 RAM interna. 64Kbyte Flash.

•Periféricos digitales. •64 I/O bits (8x8). SPI, 2xUART, SMBus/I2C. 6 contadores/timers 16-bits. 1 PCA 16-bits.

•Fuentes de reloj. •Oscilador interno. Recuperación de reloj. Oscilador externo. Cambio de reloj on-the-fly.

1. Introducción y Características.

6

2. CPU 8051.

• Aumenta el throughput respecto al 8051 estandar, debido al pipeline.

• 26 instrucciones se ejecutan a razón de 1 ciclo de reloj.

• 50 instrucciones a razón de 2 ciclos.• 5 instrucciones entre 2 y 3 ciclos.• 14 instrucciones a razón de 3 ciclos.• 7 instrucciones entre 3 y 4 ciclos.• 3 instrucciones a razón de 4 ciclos.• 1 instrucción entre 4 y 5 ciclos.• 2 instrucciones a razón de 5 ciclos.• 1 instrucción a razón de 8 ciclos.• Total 109 instrucciones en el juego de instrucciones.

• Las instrucciones de salto condicional tardan un ciclo menos si el salto no se toma.

• Permite debugging y programación de la Flash en tiempo de ejecución, mediante la interfaz C2.

7

2. CPU 8051.

2.1. Juego de Instrucciones.

• Operaciones Aritméticas. ADD, ADDC, SUBB, INC, DEC, MUL, DIV, DA

• Operaciones Lógicas. ANL, ORL, XRL, CLR, CPL, RL, RLC, RR, RRC, SWAP

• Transferencia de datos. MOV, MOVC, MOVX, PUSH, POP, SCH, XCHD

• Manipulación booleana. CLR, SETB, CPL, ANL, ORL, MOV, J(N)C, J(N)B, JBC

• Saltos de programa. ACALL, LCALL, RET, RETI, {JMP}, JZ, JNZ, CJNE, DJNZ

• NOP.• Opcode no usado: 0xA5.

8

2.2. Organización de la memoria.

4 bancos de 8 reg.Sel. banco PSW(4:3)

Instrucción MOVX

Memoria temporal

- Puntero a Pila: SP. Tras Reset vale 0x07. El primer dato se guarda en R0 del banco 1.- Si usamos la pila configurarlaen una zona de RAM libre.

9

• SFR: Special Function Registers.– Desde dirección 0x80 hasta 0xFF.– Organización en páginas. Cada dirección

puede tener hasta 256 SFR, uno por página.– Nuestro micro F040 implementa 5 páginas:

0,1,2,3 y F.– La página se selecciona a través del registro

SFRPAGE

• SFR Page Stack. Pila de páginas de SFR. 3-bytes– Cuando salta una interrupción se guarda en

pila el SFRPAGE y se usa la página asociada a la interrupción (tabla pag. 154). Cuando acaba la interrupción se restaura la página. Ambas operaciones de forma automática.

– Únicamente se podrán anidar 2 interrupciones.

2.2. Organización de la memoria.

10

11

2.2. Organización de la memoria. Registros.

12

2.2. Organización de la memoria. Registros.

13

2.2. Organización de la memoria. Registros.

14

2.2. Organización de la memoria. Registros.

15

2.3. Interrupciones.

• Soporta hasta 20 fuentes de interrupción diferentes (más el Reset) con 2 niveles de prioridades.

• Cada interrupción tiene asociado uno o más flags en algún registros especial. Cuando se produce una interrupción el flag se pone a 1.

• Cuando se activa una interrupción se produce un LCALL a la rutina de servicio de interrupción. El código de esta rutina acabará con RETI.

• Hay un bit de enable global de interrupciones (EA) y enables para cada interrupción.

• El flag de interrupción debe ser puesto a cero en la rutina de interrupción.• El software puede simular cualquier interrupción poniendo a 1 el flag

correspondiente.• Hay 2 interrupciones externas /INT0 e /INT1, mapeadas a algún puerto digital, y

que pueden configurarse como activas por nivel, flanco, nivel alto o bajo.• El tiempo de respuesta ante una interrupción depende del estado de la CPU en

el momento de la interrupción. Lo más rápido son 5 ciclos de reloj. Y lo más lento son 18 ciclos si estaba ejecutando un RETI y posteriormente una DIV. Cuando se escribe o lee la Flash la CPU se para (stall) y no ve las interrupciones.

16

• Fuentes de interrupión:• Reset• /INT0• Timer0 Overflow• /INT1• Timer1 Overflow• UART0• Timer2 Overflow• SPI0• SMB0• ADC0 rango de

comparación

• PCA• Comparador 0• Comparador 1• Comparador 2• Timer3 Overflow• ADC0 fin de conversión• Timer4 Overflow• ADC2 rango de comparación• ADC2 fin de conversión• CAN • UART1

2.3. Interrupciones.

17

2.3. Interrupciones.

18

2.3. Interrupciones.

19

2.3. Interrupciones.

20

2.3. Interrupciones.

21

2.3. Interrupciones.

22

2.3. Interrupciones.

23

2.4. Gestión de la alimentación.

- Dos modos: Idle y Stop. El primero para la CPU pero deja activa la periferia y el reloj. El segundo detiene también la periferia y el reloj.

24

3. Gestión del Reset.

25

Power-On Reset.

3. Gestión del Reset.

26

3. Gestión del Reset.

27

3. Gestión del Reset.

Watchdog Timer

28

4. Memoria Flash.

• Destinada para almacenar código y datos no volátiles.• Puede ser escrita en fase de ejecución a través de la interfaz JTAG o mediante

la instrucción MOVX.• La memoria debe ser borrada antes de volver a escribirla.• Mientras la memoria flash se borra o escribe, la CPU se detiene.• Las interrupciones deben deshabilitarse antes de escribir o borrar la flash.• El borrado es una escritura a 1 de todos los bits de una página de 512 bytes. El

procedimiento para programar la Flash es el siguiente:1. Deshabilitar las interrupciones (recomendado).2. Poner a uno el bit FLWE del registro FLSCL. Enable de escritura y borrado de la flash.3. Poner a uno el bit PSEE del registro PSCTL. Enable borrado de flash.4. Poner a uno el bit PSWE del registro PSCTL. Redirecciona MOVX a la flash.5. Escribir un byte con MOVX en cualquier posición de los 512 byte de la página a borrar.6. Poner a cero el bit PSEE del registro PSCTL.7. Escribir un byte con MOVX en una dirección de la página borrada.

Repetir este paso n veces.8. Poner a cero el bit PSWE del registro PSCTL.9. Habilitar las interrupciones.

29

4. Memoria Flash.

• Dispone de 128-bytes de flash no disponible para ejecutar código.

• Se accede activando el bit SFLE del registro PSCTL, en el rango de direcciones 0x00 al 0x7F.

• Bytes de seguridad para accesos a través de interfaz JTAG en las direcciones: 0xFDFE (lectura) y 0xFDFF(escritura y borrado).

• Cada bit del byte indica si un bloque de 8k está protegido o no.

30

4. Memoria Flash.

31

4. Memoria Flash.

32

5. Memoria Externa.

-El Cygnal 8051 cuenta con 4Kb de RAM externa de usuario (XRAM) on-chip.-Cuenta con un interfaz de datos de memoria externa (EMIF) para ampliar la memoria usando los GPIOs. (O bien P0-P3, o bien P4-P7)-La XRAM puede ser accedida con mapeado directo usando el puntero DPTR o con direccionamiento indirecto, mediante registro R0-R8 (para página activa).-Si el direccionamiento se hace con registro (@R1), los otros 8 bits de la dirección los pone EMI0CN.-Configurar la XRAM:

-Seleccionar la EMIF en puertos bajos (P0-P3) o altos (P4-P7). PRTSEL (EMI0CF.5)-Configurar el modo de los puertos de salida en push-pull o open-drain.-Seleccionar el modo multiplexado o no multiplexado.-Seleccionar el modo de memoria (solo on-chip, modo split sin selección de banco, modo split con selección de banco, solo off-chip).

33

5. Memoria Externa.

34

5. Memoria Externa.

35

5. Memoria Externa.

-EMI0CF[3:2]=“00” => Sólo on-chip XRAM, que son 4k (sólo se usan los 12 bits LSB dir)-EMI0CF[3:2]=“01” => mapa separado en 2 partes: on-chip y off-chip. Sin selección banco.-EMI0CF[3:2]=“10” => idem con selección de banco.-EMI0CF[3:2]=“11” => on-chip XRAM está oculta. Util para acceder a los 4k bajos de off-

chip XRAM.

36

5. Memoria Externa.

37

5. Memoria Externa.

38

5. Memoria Externa.

39

6. Relojes.

- C8051F320 incluye:•Reloj interno.•Circuitería para reloj externo.

- La frecuencia del reloj interno puede modificarse usando OSCICL para ajustarlo entre 24 y 25 MHz. Tras el reset el valor de OSCICL se ajusta automáticamente para un frecuencia de 24.5MHz

- El reloj externo puede ser de 30 MHz como máximo.

40

6. Relojes.

41

6. Relojes.

42

7. Puertos Entrada / Salida.-64 pines E/S en 8 puertos de 8 bits. P0, P1, P2 y P3 puede configurarse como GPIO, de periférico. P1 entrada para ADC2, P2 comparador analógico y P3 entrada ADC0.

-El “Crossbar” permite conectar cualquier dispositivo interno con los pines de P0 a P3 según prioridades.

-Procedimiento de inicialización de los puertos:

1. Escribir en los reg. PnMDINlos modos analógico (menos P0) o digital de los puertos de entrada.

2. PnMDOUT indica si la salida digital es push-pull o open-drain.3. Asignar los puertos a los

periféricos con XBR0 – XBR3.4. Habilitar el “Crossbar”

(XBARE =‘1’).

43

7. Puertos Entrada / Salida.

44

7. Puertos Entrada / Salida.

45

7. Puertos Entrada / Salida.

46

7. Puertos Entrada / Salida.

47

7. Puertos E/S => P0.

48

7. Puertos E/S => P1.

49

7. Puertos E/S => P1.

50

7. Puertos E/S => P2.

51

7. Puertos E/S => P2.

52

7. Puertos E/S => P3.

53

7. Puertos E/S => P3.

54

7. Puertos E/S => P4.

-P4 a P7 sólo pueden usarse como GPIO o para acceder a la memoria externa.

55

7. Puertos E/S => P5.

56

7. Puertos E/S => P6.

57

7. Puertos E/S => P7.

58

7. Puertos Entrada / Salida.

59

7. Puertos Entrada / Salida.

60

7. Puertos Entrada / Salida.

61

7. Puertos E/S. Ejemplo.

62

7. Puertos E/S.

63

8. Periféricos Analógicos.1. Convertidor Analógico-Digital de 12 bits.

La entrada analógica puede tomarse del puerto P3, 4 entradas analógicas externas, HVDA (high voltage diference amplifier 60v) y un sensor de temperatura interno. Tienen un amplificador programable, 100 ksps, ventana detección programable.

64

8. ADC0: 12-bits

65

8. ADC0: 12-bits

66

8. ADC0: 12-bits

67

8. ADC0: 12-bits

68

8. ADC0: 12-bits

69

8. ADC0: 12-bits

70

8. ADC0: 12-bits

71

8. ADC0: 12-bits

72

8. ADC0: 12-bits

73

8. ADC0: 12-bits

74

8. ADC0: 12-bits

75

8. ADC0: 12-bits

Ventana de Comparación Programable

del ADC0.

76

8. ADC0: 12-bits

77

8. ADC0: 12-bits

78

2. Convertidor Analógico-Digital de 8 bits, 500ksps: ADC2.

8. Periféricos Analógicos.

79

3. Convertidores Digital-Analógico de 12 bits.

8. Periféricos Analógicos.

80

8. Periféricos Analógicos.

2. Comparadores analógicos.

81

9. Interfaz Serie SPI.

82

9. Interfaz Serie SPI.

83

9. Interfaz Serie SPI.

84

9. Interfaz Serie SPI.

85

9. Interfaz Serie SPI.

86

10. UART.

87

10. UART

Mode 0: Síncrono.Mode 1y3: Asíncrono. Baud Rate Variable.Mode 2: Asíncrono. Baud Rate Fijo.

88

11. Timers.

T0/1. Modo 1: Igual que el 0 pero con 16 bits.

T1. Modo 0.

89

11. Timers.

T0/1. Modo 2: Contador de 8 bits con recarga de valor inicial.

90

Sólo para el T0: dos contadores de 8 bits separados.

11. Timers.

91

11. Timers.

92

11. Timers.

93

11. Timers.

94

11. Timers.

95

11. Timers.

96

11. Timers.

97

11. Timers.

98

11. Timers.

99

12. PCA.

100

12. PCA.

101

12. PCA.

102

12. PCA.

103

12. PCA.

104

12. PCA.

105

12. PCA.

106

12. PCA.

top related