explorando os 16 bits da microchip e as ferramentas de

120
Explorando os 16 bits da Microchip Slide 1 Explorando os 16 bits da Microchip e as ferramentas de trabalho Eng. Daniel Rodrigues de Sousa LabTools – Mosaico Didactic Division

Upload: others

Post on 11-Feb-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 1

Explorando os 16 bits da Microchip e as ferramentas de trabalho

Eng. Daniel Rodrigues de SousaLabTools – Mosaico Didactic Division

Page 2: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 2

Agenda

− Microcontroladores PIC de 16 bits Microchip;

− Aplicações;− Recursos de hardware;− MPLAB IDE;− Simulação usando o MPLAB SIM;− Depuração usando o MPLAB ICD2 e o

uso do ICD2BR;

Page 3: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 3

Agenda

− Gravando o programa no microcontrolador usando o ICD2BR;

− Apresentação do kit Explorer 16BR;− Exemplos de aplicação.

Page 4: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 4

Explorando os 16 bits

Microcontroladores PIC de 16 bits Aplicações Recursos de hardware MPLAB IDE Simulação, depuração e gravação Apresentação do kit Explorer 16BR

Exemplos de aplicação

PIC24F PIC24H dsPIC33F dsPIC30F

Page 5: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 5

A Família PIC...

Page 6: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 6

Diagrama em blocos simplificadoArquitetura PIC® 16 bits

Data RAM

Peripherals

I/O Ports

DataSpace

ProgramFlash

ProgramSpace

16-bit CPU24-bit16-bit Y

ProgramBus

DataBuses

PSV Windowand

Table Access16-bit16-bit

16-bit X

O barramento Y somente na família dsPIC30 e dsPIC33

Page 7: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 7

Família PIC24F4-16 KB

Data Memory

Memory Bus

8-256 KBFlash Memory

InterruptControl

16 MIPS 16-bit Core

16b ALU 16 x 16b W Register Array

17b x 17b Multiply

Address Generator Unit

Multi-bitShifter

JTAG Interface

Peripheral B

us

WDT & Pwr Mgmt.

28 to 100-pin Packages

(2 to 4) UART

Real-time clock+cal

CRC

(5) 16/32 Timers

PMP

INTRC w/PLL

InterruptC

ontrol

(2) SPI + (2) I2C™

500 Ksps 10b ADC

(2) Comparators

Peripheral Pin Select

Output Compare/PWM

Input Capture

USB 2.0 OTG NEW

Page 8: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 8

Família PIC24H1-16 KB

Data Memory

Memory Bus

12-256 KBFlash Memory

8 Channel DMA

InterruptControl

40 MIPS 16-bit Core

16b ALU 16 x 16b W Register Array

17b x 17b Multiply

Address Generator Unit

Multi-bitShifter

JTAG Interface

Peripheral Bus

WDT & Pwr Mgmt.

18 to 100-pin Packages

(1-2) UART w/LIN & IrDA®

(1-2) SPI

(3-9) 16/32 Timers

1.1 Msps 10b ADC

INTRC w/PLL

(0-2) ECAN™

InterruptC

ontrol (1-2) I2C™

500 Ksps 12b ADC

Output Compare/PWM

Input Capture

Page 9: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 9

30 MIPS 16-bit Core

16b ALU 16 x 16b W Register Array

17b x 17b Multiply

Dual AGU X & Y

BarrelShifter

JTAG Interface

DSP EngineDual 40b

Accumulators

0.5-8 KB Data Memory

Memory Bus

12-144 KB Flash Memory

1-4 KB EEPROM

Peripheral Bus

WDT & Pwr Mgmt.

18 to 80-pin Packages

(1-2) UART w/LIN & IrDA®

(1-2) SPI

MC QEI

Codec I/F (I2S, AC97)

(2-5) 16/32 Timers

-or- 200 Ksps 12b ADC

MC PWM

INTRC w/PLL

(0-2) CAN

InterruptC

ontrol

(1-2) I2C™

1 Msps 10b ADC

Família dsPIC30F

Output Compare/PWM

Input Capture

Page 10: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 10

40 MIPS 16-bit Core

16b ALU 16 x 16b W Register Array

17b x 17b Multiply

Dual AGU X & Y

BarrelShifter

JTAG Interface

DSP EngineDual 40b

Accumulators

1-30 KB Data Memory

Memory Bus

12-256 KB Flash Memory

8-channel DMA

InterruptC

ontrol

Peripheral Bus

WDT & Pwr Mgmt.

18 to 100-pin Packages

(1-2) UART w/LIN & IrDA®

(1-2) SPI

(0-2) MC QEI

Codec I/F (I2S, AC97)

(3-9) 16/32 Timers

(4-8) MC PWM

INTRC w/PLL

(0-2) ECAN™

(1-2) I2C™

(1-2) 1.1Msps 10b ADC

(1-2) 500Ksps 12b ADC

Família dsPIC33F

(2) 16-bit Audio DAC

IC / OC / PWM

Page 11: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 11

SFR Space

X Data RAM

Unimplemented

Memória de dadosPIC® 16 bits

0x0801

Y Data RAM

Dual Port RAM

MSB LSB

16-bits LSBAddress

MSBAddress

0x00000x0001

0x07FE0x0800

0x07FF

0x1FFE

0x80000x8001

0xFFFE0xFFFF

NEARData Memory8KB

SFR Space2KB

SRAM Space

Dual PortDMA RAM

2KB

PSV32KB

(visível na mem.de programa)

NOTA: PIC24 não há diferença entre X e Y data RAM

DIRETAMENTE ENDEREÇÁVEL

REQUER PONTEIROS

0x1FFF

0x20000x2001

Page 12: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 12

PSV - Program Space Visibility

0x8000

0xFFFF

Segmento de 32kB da Flash

Constantes armazenadas aqui

Janela PSV:Leitura de dados da Flash como se fosse dados na RAM

(somente os 16 bitsmenos significativos)

Leitura de dados constantes aqui

24-bit Program Memory(Flash)

16-bit Data Memory(RAM)

9FD39FD3

Page 13: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 13

Memória de programaPIC® 16 bits

Reset VectorPrimary Interrupt

Vector Table

Alternate InterruptVector Table

User Flash

Data EEPROM (dsPIC30F)Flash Configuration Words

Configurations Registers

Device ID

24-bits

0x000000

0x000004

0x000200

0x7FFFFE

MSW LSW0x000001

0x000005

0x000201

0x7FFFFF

0xFFFFFE0xFFFFFF

0x0000FE0x0000FF

LSWAddress

MSWAddress

Contador deprograma (PC)sempre incrementade 2 em 2.

Page 14: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 14

Reset - GOTO Address

Trap Vectors

Interrupt Vectors

0x000000

0x000100

0x0001FE

Inte

rrupt

Vec

tor T

able

0x000004Reset - GOTO Instruction

Alte

rnat

e In

terru

pt

Vec

tor T

able

Decreasing Natural Order Priority

Sistema de interrupções

● Sistema de interrupção rápido e determinístico

● Único vetor para cada fonte de interrupção− 8 vetores não mascarado

(Traps) − Até 118 vetores de

interrupção● Suporta Interrupt Nesting● 5 ciclos para entrada da Int.● 3 ciclos para saída da Int.● Controle de prioridade

Alternate Trap Vectors

Alternate Interrupt Vectors

Page 15: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 15

L4L4

main() L0main() L0

L1L1

Exemplo de Interrupt NestingL7L7

0123456789101112

Status Register

131415

0123456789101112

Core Control Register

131415

IPL2

IPL1

IPL0

IPL3

CPU EXECUTION TRACECPU EXECUTION TRACE

RETURNRETURN

RETURN*RETURN*

RETURNRETURN

L4 INTL4 INT

L7 INTL7 INT

L1 INTL1 INT

Page 16: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 16

84 instruções (incluindo instruções de DSP)Quase todos em uma única word (24 bits)Quatro são de duas words86% das instruções executadas em 1 ciclo de máquina, exceto:Mudança do fluxo do programa (2 ciclos)Instruções TABLE (2 ciclos)Instruções de duplo movimento (2 ciclos)Instução DO (2 ciclos)Instrução de divisão (18 ciclos)Instruções com três operandos: A = B op CAlta eficiência de código (Assembly ou C)

Set de Instruções

Page 17: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 17

85%

114%118%

100%

188%180%

156%

129%136%

109% 113% 114%

100%

165%

153%153%148% 152%

16-bit Applications(~ 40KB code)

32-bit Applications(~ 50KB code)

Relative Code Size

Free

scal

e 56

83xx

Ren

esas

H8S

Free

scal

e H

C12

Ren

esas

M16

C

dsP

IC D

SC

/PIC

24

AR

M7-

Thum

b

Infin

eon

C16

X

TI 3

20C

24x

AR

M7

Otimizado para Compiladores C EEMBC industry std. Benchmarks, Automotive Suite

Free

scal

e 56

83xx

Ren

esas

H8S

Free

scal

e H

C12

Ren

esas

M16

C

dsP

IC D

SC

/PIC

24

AR

M7-

Thum

b

Infin

eon

C16

X

TI 3

20C

24x

AR

M7

Page 18: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 18

Fonte de Clock

32KHzSecondary

Crystal OSC

SOSCI

SOSCO

Low Pwr RC 32KHz

Fast RC 8.0 MHz

OSCI

OSCO

PostScaler

4x PLL

PostScaler

CPU Clock

Peripherals Clock

XT,HSCrystal OSC

EC ClockEC Clock

Primary Oscillator

Page 19: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 19

Direct Access Memory (DMA)

● Famílias de 16 bits− PIC24H− dsPIC33F

● Periféricos− ECAN™ Module− Data Converter Interface (DCI)− 10-bit/12-bit A/D Converter− Serial Peripheral Interface (SPI)− UART− Input Capture− Output Compare

Page 20: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 20

Controlador DMA Diagrama em blocos

SRAMSRAM DPSRAMDPSRAMPort1 Port2Port1 Port2

DMA-readyDMA-readyPeripheral 1Peripheral 1CPU DMACPU DMA

CPUCPU

DMADMAControlControl DMA ChannelsDMA Channels

CPU X-busCPU X-bus

CPU Peripheral DS BusCPU Peripheral DS Bus

DMA DS BusDMA DS Bus

DMA ControllerDMA Controller0 1 ….. 6 70 1 ….. 6 7

PeripheralPeripheral(non-DMA)(non-DMA)

DMA-readyDMA-readyPeripheral 3Peripheral 3

CPU DMACPU DMA

DMA-readyDMA-readyPeripheral 2Peripheral 2

CPU DMACPU DMA

Page 21: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 21

Controlador DMA Diagrama em blocos

OutputOutputCompare 1Compare 1

CPU DMACPU DMA

InputInputCapture 1Capture 1

CPU DMACPU DMA

InputInputCapture 2Capture 2

CPU DMACPU DMA

OutputOutputCompare 2Compare 2

CPU DMACPU DMA

TimerTimer22

CPU DMACPU DMA

TimerTimer33

CPU DMACPU DMA

SPISPI11

CPU DMACPU DMA

SPISPI22

CPU DMACPU DMA

UARTUART11

CPU DMACPU DMA

UARTUART22

CPU DMACPU DMA

DCIDCI

CPU DMACPU DMA

ECANECAN11

CPU DMACPU DMA

ECANECAN22

CPU DMACPU DMA

A/DA/D11

CPU DMACPU DMA

A/DA/D22

CPU DMACPU DMA

Page 22: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 22

DMA ChannelsDMA Channels

PIC24H/33 DMAMovimentando dados sem o uso da CPU

SRAM DPSRAMPort1 Port2

DMA-readyPeripheral 1CPU DMA

CPU

CPU bus

CPU Peripheral DS Bus

DMA DS Bus

DMA Controller

Interrupt

Peripheral AddressDPSRAM Address

DATA

DMAControl

0 1 2 3 4 5 6 70 1 2 3 4 5 6 7

DATA

Peripheral(non-DMA)

DMA-readyPeripheral 2

Page 23: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 23

I/O PORT – Níveis de tensão

Vi(max)=5,5V para pinos digitais

Vih(nom)=Vdd=3,3VVih=0,8*Vdd=2,64V

Vil=0,2*Vdd=0,66V

Vi(max)=3,6V para pinos anal.

Voh(nom)=VDD=3,3VVoh=2,6V

Vol=0,4V

Vdd=3.3V

Todos os pinos podem drenar ou fornecer:18mA (PIC24F) 4mA (PIC24H)

Todos os pinos podem ser configurados ou não com saída dreno aberto

Page 24: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 24

Entrada e saída de dadosRegistradores TRIS, PORT e LAT

10

0

1 0 1 0 0 1

0 0 1 1 0 1 0TRISx

LATx

ReadPORTx

ReadLATx

WritePORTxor LATx

Internal Data Bus

PORTx(I/O Pins)

Direção do dado(1 = IN, 0 = OUT)

Todos os pinos são entrada após reset (TRIS = 0xFFFF)

Page 25: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 25

I/O PORT – Dreno aberto● Interfaceando sistemas de 5V

− O registrador TRISx configura entrada e saída− O registrador ODCx configura o dreno aberto do I/O.

5V

Load onPin driving Low

5V

Load OffPin with HIGH impedance

5V

Logic lowPin driving Low Logic High

5V

Pin with HIGH impedance

Page 26: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 26

Explorando os 16 bits

Microcontroladores PIC de 16 bits Aplicações Recursos de hardware MPLAB IDE Simulação, depuração e gravação Apresentação do kit Explorer 16BR

Exemplos de aplicação

PIC24F PIC24H dsPIC33F dsPIC30F

Page 27: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 27

Aplicações

● Memory Cards e Sistema de arquivos

● TCP/IP & Ethernet● Rede Wireless ● Soft Modem

● Reprodução de voz

● Supressão de ruído

● Cancelamento de Eco acústico

● Cancelamento de Eco de linha

● Motor/Power Control

Page 28: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 28

Microchip 16-bit Libraries

AES Triple DES

TCP/IP (Microchip) TCP/IP (CMX)

Soft Modem CANbedded (Vector-Informatik) OsCAN (Vector-Informatik)

ZigBee™ Stack (Microchip) IrDA® Stack (Microchip)

CMX-Tiny+ CMX-RTX CMX-Scheduler FAT16 File System

Asymmetric Key Encryption (NTRU) Symmetric Key Encryption (NTRU)

PIC24FPIC24HdsPIC33FdsPIC30FLibrary/Tool Name

RTO

SC

onne

ctiv

ityE

ncry

ptio

n

Page 29: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 29

Microchip 16-bit Libraries

Digital Filter Design Lite Digital Filter Design Tool

dsPICworks™ tool DSP

Peripherals

Math IMA ADPCM Sp. Coding/Decoding G.726 Speech Coding/Decoding G.711 Speech Coding/Decoding

SPEEX Speech Coding/Decoding Speech Recognition Line Echo Cancellation (LEC) Acoustic Echo Cancellation (AEC)

Noise SuppressionPIC24FPIC24HdsPIC33FdsPIC30FLibrary/Tool Name

DS

PA

udio

Spe

ech

Page 30: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 30

Explorando os 16 bits

Microcontroladores PIC de 16 bits Aplicações Recursos de hardware MPLAB IDE Simulação, depuração e gravação Apresentação do kit Explorer 16BR

Exemplos de aplicação

PIC24F PIC24H dsPIC33F dsPIC30F

Page 31: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 31

Peripheral PinSelect(PPS)

RP0

Peripheral 1

Peripheral 2

Peripheral 3

Peripheral N

Peripheral Output Select Bits

Page 32: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 32

Peripheral Pin Select

● Pode ser usado…− Multiplexação de periféricos digitais.− Ajuda a otimizar o hardware.− Redefinição da função do pino via software.

● Não pode ser usado…− Pinos com entrada analógicos e periféricos

especiais (por exemplo, PMP and I2C™) pois são fixos

Page 33: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 33

Funções remapeáveis dos PIC24 e dsPIC®

● Todas as funções de SPI e UART● Entradas de Timer e Interrupções

externas● Entradas de capturas e saídas de

comparação● Saídas dos comparadores analógicos● Entradas de pinos de falha do PWM● Entrada do decodificador de encoder

incremental● Data Converter Interface (DCI)● CAN

Page 34: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 34

PPS – detalhes de implementação

● Qualquer função pode ser remapeado− Múltiplas funções em um pino

● Entradas X Saídas− Entradas podem ser associados a um pino

específico− Saídas podem ser associados a um pino

específico● Configuração dos pinos

− Pode ser feita “on-the-fly” ou no início do programa.

Page 35: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 35

Por que remapear I/O ?

U1RX / SDI / SDA / RC3U1RX / SDI / SDA / RC3

U1TX / SDO / SCL / RC4U1TX / SDO / SCL / RC4

UART1

OC1

SPI1

MPWM

I2C1

CMP

DCI

TMR1

IC1

UART2

OCn

SPI2

QEI

I2C2

ADC

CAN

TMRn

ICn

Muitas aplicações em um Muitas aplicações em um único pinoúnico pino

Típico pino dsPIC30 Típico pino dsPIC30 UART / SPI / IUART / SPI / I22C™C™

Page 36: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 36

UART1

SPI1

I2C1

DCI

TMR1

Entradas remapeadas

RP0RP0

RP1RP1

RP2RP2

RP3RP3

RP4RP4

RP5RP5

Page 37: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 37

Entradas remapeadas

RP0

RP1

RP2

RPn

Pad Logic

Pad Logic

Pad Logic

Pad Logic

Input to Peripheral

Peripheral Input Pin Select Bits

//C Example – Map U1RX to RP8RPINR18bits.U1RXR = 8;

Page 38: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 38

UART1UART1

SPI1SPI1

I2C1I2C1

DCIDCI

OC1OC1

Saídas remapeadas

RP0RP0

RP1RP1

RP2RP2

RP3RP3

RP4RP4

RP5RP5

Page 39: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 39

Saídas remapeadas

RP0Pad

Logic

Peripheral 1 Output

Peripheral 2 Output

Peripheral 3 Output

Peripheral N Output

Peripheral Output Select Bits

//C Example – Map U1TX to RP1RPOR0bits.RP1R = 3

Page 40: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 40

Aplicações práticas

RP3

RP2

RP1

PadLogic

Peripheral Outpute.g. OC1

PadLogic

PadLogic

● Podemos conectar um periférico em várias saídas ou em várias entradas

Page 41: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 41

Aplicações práticas● Conectar uma entrada em mais de um

periférico

RP0 Pad Logic

Input to Peripheral #1e.g. U1CTS

Input to Peripheral #2e.g. INT1

Page 42: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 42

Aplicações práticas● Conectar entrada e saída para

depuração (SPI)

RP0 Pad Logic Input to Peripheral

e.g. SDI

Output to Peripheral e.g. SDO

Page 43: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 43

Porta Paralela Mestre PMP

Page 44: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 44

Porta Paralela Mestre - PMP

PIC24J128GA010

8- or 16-bit DATA

Up to 16-bit Address

Up to 2 Chip Select

Read, Write, Enable

Parallel Peripherals

LCD Display

Page 45: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 45

Exemplo - LCD na PMP

PIC24FJ128GA010

PMD<7:0>

A0PMENB

PMRD/nPMWR

LCD

R/W

RSE

DB7 – DB0Parallel Master Port

Page 46: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 46

Timers

                                                                                                  

Page 47: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 47

T1T1

Interrupt Interrupt FlagFlag

QQ CKCK

TGATETGATE

TMR1TMR1

Comparator x 16Comparator x 16

PR1PR1

EqualEqual

ResetReset

TSYNCTSYNC

TCKPS<1:0>TCKPS<1:0>TONTON

SyncSync

PrescalerPrescaler

1, 8, 64, 2561, 8, 64, 256

TGATETGATE

GateGate

SyncSyncTC

STC

STG

ATE

TG

ATE

11

00

00

11

SOSC1/SOSC1/T1CKIT1CKI

SOSC2SOSC2

LPLP

OSCOSC

1 X1 X

0 10 1

0 00 0TTCYCY

Timer1

QQ

Page 48: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 48

T2T2

InterruptInterrupt

FlagFlag

DD

CKCK

TGATETGATE

TMR2TMR2

Comparator x 16Comparator x 16

PR2PR2

EqualEqual

ResetReset

TCKPS<1:0>TCKPS<1:0>TONTON

SyncSync

PrescalerPrescaler

1, 8, 64, 2561, 8, 64, 256

TGATETGATE

GateGate

SyncSyncTC

STC

STG

ATE

TG

ATE

00

11

T2CKIT2CKI

1 X1 X

0 10 1

0 00 0TTCYCY

Timer2/4

QQ

QQ

Page 49: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 49

T3T3

InterruptInterrupt

FlagFlag

CKCK

TGATETGATE

TMR3TMR3

Comparator x 16Comparator x 16

PR3PR3

EqualEqual

ResetReset

TCKPS<1:0>TCKPS<1:0>TONTON

PrescalerPrescaler

1, 8, 64, 2561, 8, 64, 256

TGATETGATE

SyncSync

TC

STC

STG

ATE

TG

ATE

00

11

T3CKIT3CKI 1 X1 X

0 10 1

0 00 0TTCYCY

ADC Event ADC Event TriggerTrigger

Timer3 onlyTimer3 only

Timer3/5

QQ

QQ

Page 50: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 50

Timer de 32 bits

T3T3

Interrupt Interrupt FlagFlag

CKCK

TGATETGATE

TMR2TMR2

Comparator x 32Comparator x 32

PR2PR2

EqualEqual

ResetReset

TCKPS<1:0>TCKPS<1:0>TONTON

SyncSync

PrescalerPrescaler

1, 8, 64, 2561, 8, 64, 256

TGATETGATE

GateGate

SyncSync

TC

STC

STG

ATE

TG

ATE

00

11

T2CKIT2CKI1 X 1 X

TTCYCY

ADC Event ADC Event TriggerTrigger

(Timer3 only)(Timer3 only)

TMR3TMR3

PR3PR3

0 1 0 1

0 0 0 0

Write TMR2Write TMR2Read TMR2Read TMR2

TMR3HLDTMR3HLD

LSWLSWMSWMSW

**T3CON SFR bits are ignored **T3CON SFR bits are ignored

when in 32-bit timer modewhen in 32-bit timer mode

QQ

QQ

Page 51: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 51

UART

Page 52: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 52

UART - Características

Suporte ao barramento LIN Hardware de detecção de baudrate

Hardware de geração de caractere de Break

Suporte ao IrDA®

Hardware encoder / decoder

Controle de polaridade do sinal

Page 53: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 53

SPI

Page 54: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 54

SPI - Características

Buffer FIFO 8 níveis (transmissão e recepção); Possibilidade de enviar dados de 8 ou 16 bits; Flexível configuração de clock; Modo Framed:

Pulso de sincronismo (final do dado)

Pode ser gerado como mestre ou escravo

Page 55: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 55

SPIFCY

SPIxSR

SPIxBUF

SDIx

SDOx

PIC24F: 8-Level FIFO

SSx

SCKx

Sync Control

Clock Control

Select Edge

Pre- scaler

Clock Enable

Page 56: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 56

I2C™

Page 57: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 57

I2C™ - Características

Hardware independente para mestre e escravo; Endereçamento de 7 ou 10 bits; Chamada global e máscara de endereçamento; Suporte a clock padrão (100kHz e 400kHz); Suporte ao Multi-master.

Page 58: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 58

I2C™

I2CBRG MASTER Mode

SCLx

BRG Control LogicTcy/2

I2CxCON

I2CxSTAT

SDAx

I2CxTRN(8-bit)

Shift Register

I2CxRCV

Add. Match Detect I2CxADD(10-bit)

I2CxMSK(10-bit)

Shift Clock

Shift Clock

Page 59: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 59

Outros periféricos

Page 60: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 60

A/D - PIC24FVVREFREF++

VVREFREF--

A/Dconverter

ConversionControl

Bus In

terface

DataFormat

SampleSequenceControl

Input M

uxes

AN0AN0

AN1AN1S/H

AN15AN15

CH0CH0

8/16 LevelResults Buffer

Page 61: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 61

A/D - PIC24H e dsPIC30/33VVREFREF++

VVREFREF--

A/Dconverter

ConversionControl

Bus In

terface

DataFormat

SampleSequenceControl

Input M

uxes

AN0AN0

AN1AN1S/H

S/H

S/H

S/H

AN31AN31

Results Buffer

CH0CH0

CH1 *CH1 *

CH2 *CH2 *

CH3 *CH3 *

* S/H channels 1, 2 & 3 only available on 10- bit mode* S/H channels 1, 2 & 3 only available on 10- bit mode

Page 62: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 62

● CRC é uma técnica de detecção de erros em comunicação (serial ou paralela) ou em acesso a memórias.

● CRC é uma técnica de detecção de erros, mas não de correção.

CRC - Cyclic Redundancy Check

Page 63: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 63

CMCON<CxPOS>CMCON<CxPOS>

CompComp

__

++

CxIN+CxIN+CxIN-CxIN-

CxIN+CxIN+CVCVREFREF

CMCON<CxNEG>CMCON<CxNEG> CMCON<CxINV>CMCON<CxINV> CMCON<CxOUT>CMCON<CxOUT>

CxOUTCxOUT

CMCON<CxOUTEN>CMCON<CxOUTEN>

VVIN IN --

VVIN IN ++

CMCON<CxEN>CMCON<CxEN>

Comparador Analógico

Page 64: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 64

Gerador de tensão de referência

16 – to – 1 MU

X

VREF+VREF+AVAVDDDD

CVRCON<CVRSS>CVRCON<CVRSS>

CVRCON<CVREN>CVRCON<CVREN>

CVRCON<CVRR>CVRCON<CVRR>

8 R8 R

8 R8 R

RRRRRRRR

RRRRRR CVRCON<CVROE>CVRCON<CVROE>

CVREFCVREF

CVRCON<CVR3:CVR0>CVRCON<CVR3:CVR0>

16 Steps16 Steps

00

11

VREF-VREF-AVAVSSSS

11

00CVRCON<CVRSS>CVRCON<CVRSS>

Page 65: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 65

ICxICxICTMRICTMR

PrescalerPrescaler

CounterCounter Edge Detection Edge Detection Logic and SyncLogic and Sync

ModuleModule

Control LogicControl Logic

TMR2 TMR3TMR2 TMR3

1 01 0

ICxBUFICxBUFICxFICxF

Interrupt FlagInterrupt Flag

Input Capture

PIC24F: 4 Level PIC24F: 4 Level FIFOFIFO

Page 66: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 66

SS

RR

QQOutput CompareOutput Compare

LogicLogic

ComparatorComparator

OCxROCxR

OCxRSOCxRS

0 10 1 0 10 1OCTSELOCTSEL

TMR2 TMR3TMR2 TMR3 Timer2Timer2

Period MatchPeriod Match

Timer3Timer3

Period MatchPeriod Match

OCFAOCFA

OCFxOCFx

OCM<2:0>OCM<2:0>

Mode SelectMode Select

OCxIF OCxIF

Interrupt FlagInterrupt Flag

33

16161616

Output Compare

Page 67: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 67

Real Time Clock Controller – RTCC

32 kHzTimer1 Xtal

OSCSOSCI

SOSCO

Calibration

Prescaler

RTCC Counter

Comparator

Alarm

Current TimeYear

MonthDayHour

MinutesSeconds

Day of Week

Alarm TimeMonthDayHour

MinutesSeconds

0.5s

Repeat Counter

Interrupts

RTCCOutput

Page 68: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 68

PWM para controle de motor

Four PWM output Four PWM output pairs with output pairs with output polarity controlpolarity control

Duty CycleDuty Cycle

Generator #3Generator #3

Duty CycleDuty Cycle

Generator #2Generator #2

Duty CycleDuty Cycle

Generator #1Generator #1

Duty CycleDuty Cycle

Generator #4Generator #4

PWM Override PWM Override LogicLogic

Dead Time UnitDead Time Unit

Dead Time UnitDead Time Unit

Dead Time UnitDead Time Unit

Dead Time UnitDead Time Unit

Fault AFault A

Fault BFault B

PWM4HPWM4H

PWM1LPWM1L

PWM1HPWM1H

PWM2LPWM2L

PWM2HPWM2H

PWM3LPWM3L

PWM3HPWM3H

PWM4LPWM4L

Two fault pins w/ Two fault pins w/ programmable fault programmable fault

statesstates

16-bit Time-base16-bit Time-base

A/D Conversion A/D Conversion TriggerTrigger

Page 69: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 69

dsPIC30/33 Interface para Encoder Incremental

● Módulo para controle de posição de eixo de motor

● Três entradas Encoder − Fase A− Fase B− INDEX

● Contador de 16 bits

Page 70: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 70

DCI - dsPIC30/33

Memory

Analog Front End

CODEC

Output Power

A/DA/D

PWMPWM

DCIDCI

Page 71: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 71

ECAN – PIC24H e dsPIC

● CAN é um protocólo de comunicação serial ● Todos os nós são conectados ao mesmo tempo● Todos os nós possuem a mesma taxa de transmissão● Todos os nós podem transmitir e receber mensagens

CAN DEVICE

#1

CAN DEVICE

#2

CAN DEVICE

#3

CAN DEVICE

#4

CAN BUSCAN BUS

Page 72: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 72

Explorando os 16 bits

Microcontroladores PIC de 16 bits Aplicações Recursos de hardware MPLAB IDE Simulação, depuração e gravação Apresentação do kit Explorer 16BR

Exemplos de aplicação

PIC24F PIC24H dsPIC33F dsPIC30F

Page 73: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 73

MPLAB® IDE e Componentes

Roda em PC´s com MS Windows®

Componentes de hardware e software

MPLAB® IDE é gratuito!

Page 74: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 74

MPLAB® IDE e Componentes

MPLABC18, C30, C32

Compilers

MPLABIntegrated Development Environment

ProjectManager

Programmer’s Editor

Source LevelDebugger

Languages Simulators Emulators Programmers

AssemblersLinkers

Librarians

MPLABSIM

MPLAB ICE2000

MPLAB PM 3

PICSTART® Plus

PICkit™ 2

MPLAB ICD 2

MPLAB REAL ICE™

MPLAB® ICE4000

3rd Party3rd Party

Page 75: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 75

Conveniências do MPLAB® IDEArquivos

cabeçalhos (Template Files)

Assistentes (Wizards)

Help online

Page 76: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 76

MPLAB® IDE Desktop

Page 77: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 77

MPLAB® IDE Desktop

Page 78: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 78

MPLAB® IDE Desktop

Page 79: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 79

MPLAB® IDE Desktop

Make Build AllBuild Mode(Debug/Release)

Page 80: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 80

MPLAB® IDE Desktop

Page 81: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 81

MPLAB® IDE Desktop

Page 82: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 82

MPLAB® IDE Desktop

Page 83: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 83

MPLAB® IDE Desktop

Page 84: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 84

MPLAB® IDE Desktop

Page 85: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 85

MPLAB® IDE Desktop

Page 86: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 86

Explorando os 16 bits

Microcontroladores PIC de 16 bits Aplicações Recursos de hardware MPLAB IDE Simulação, depuração e gravação Apresentação do kit Explorer 16BR

Exemplos de aplicação

PIC24F PIC24H dsPIC33F dsPIC30F

Page 87: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 87

Criando um projeto no MPLAB® usando o MPLAB® C30

Procedimento

1Abra o MPLAB IDE e inicie o assistente de criação de projeto clicando na barra de menu: Project Project Wizard…

Clique para continuar…Next >

Depois de abrir o assistente,

Page 88: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 88

2 Na caixa Device selecione:PIC24FJ128GA010

Criando um projeto no MPLAB® usando o MPLAB® C30

Clique para continuar…Next >

Page 89: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 89

3 Na caixa Active Toolsuite selecione:Microchip C30 Toolsuite

Criando um projeto no MPLAB® usando o MPLAB® C30

Clique para continuar…Next >

Page 90: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 90

Clique e navegue na pasta destino:Browse…4

C:\RTC\TLS2130\Lab1\Lab1

O nome do arquivo Lab1.mcp 

C:\RTC\TLS2130\Lab1\Lab1

Create New Project File

Criando um projeto no MPLAB® usando o MPLAB® C30

Clique para continuar…Next >

Page 91: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 91

Selecione o arquivo TLS2130.a

Selecione o arquivo Lab1.c

5C:\RTC\TLS2130\Lab1\Lab1

Navegar até a pasta destino:

Clique Add >>

6 Adicionar a library:

Criando um projeto no MPLAB® usando o MPLAB® C30

Clique Add >>

Clique para continuar…Next >

Page 92: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 92

7 Clique Finish

Lab 1 Project Tree

Criando um projeto no MPLAB® usando o MPLAB® C30

Page 93: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 93

8 Para abrir o projeto clique na barra de menu:Project Build Options… Project 

Criando um projeto no MPLAB® usando o MPLAB® C30

Page 94: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 94

Habilitando o MPLAB SIM ou o MPLAB ICD2 (ICD2BR)

Page 95: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 95

9 Selecione Debug.

9

10 Clique em Build All.

14 Se não tiver erros, clique em Program.

13Quando a programação completada, clique em Reset.

11 Clique em Run.

12 Clique em Halt.

10 141311 12

Botões de controle MPLAB SIM e MPLAB ICD2 (ICD2BR)

Page 96: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 96

ICD2BR Depuração

.hex

ICD 2

Registradores

Mem. de programa

Reservado para ICD2BR

Reservado para ICD2BR

Page 97: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 97

ICD2BR Programação

.hex

ICD 2

Registradores

Mem. de programa

Reservado para ICD2BR

Reservado para ICD2BR

Page 98: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 98

Selecionando o ICD2BR como um programador

Page 99: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 99

Compilar código em modo Release

Build Mode(Debug/Release)

Page 100: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 100

Programar microcontrolador

Page 101: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 101

Dicas MPLAB C30

main(){

printf(“Não vou usar GOTO”);printf(“Assembly nunca mais!”);printf(“Vou aprender a usar

ponteiros...”);}

Page 102: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 102

Exemplo de código escrito no MPLAB C30

#include <p24fj128ga010.h>#include "TLS2130.h"

_CONFIG1(FWDTEN_OFF & JTAGEN_OFF)

int main(void){ _TRISA0 = 0; while(1) { _LATA0 = 0; while(SwitchPressed(&PORTD, 6)) _LATA0 = 1; }}

Exemplo de código

Configura RA0 como entrada RA0 = 0

RA0 = 1

Função de usuário

Configurations bits

Page 103: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 103

Exemplo Interrupção

Definição de macros (arquivo header do microcontrolador)

#define _ISR __attribute__(interrupt)#define _ISR __attribute__(interrupt)

#define _ISRFAST __attribute__(interrupt, shadow)#define _ISRFAST __attribute__(interrupt, shadow)

Exemplo

void _ISR INT0Interrupt(void)void _ISR INT0Interrupt(void){{ /* Código ISR aqui *//* Código ISR aqui */}}

Page 104: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 104

Funções de interrupção(Lista parcial)

IRQ # Nome secundário

N/AN/AN/AN/AN/AN/AN/AN/AN/AN/AN/AN/AN/AN/AN/AN/A00112233

Nome primário

_ReservedTrap0_ReservedTrap0_OscillatorFail_OscillatorFail_AddressError_AddressError_StackError_StackError_MathError_MathError_ReservedTrap5_ReservedTrap5_ReservedTrap6_ReservedTrap6_ReservedTrap7_ReservedTrap7_INT0Interrupt_INT0Interrupt_IC1Interrupt_IC1Interrupt_OC1Interrupt_OC1Interrupt_T1Interrupt_T1Interrupt

_AltReservedTrap0_AltReservedTrap0_AltOscillatorFail_AltOscillatorFail_AltAddressError_AltAddressError_AltStackError_AltStackError_AltMathError_AltMathError_AltReservedTrap5_AltReservedTrap5_AltReservedTrap6_AltReservedTrap6_AltReservedTrap7_AltReservedTrap7_AltINT0Interrupt_AltINT0Interrupt_AltIC1Interrupt_AltIC1Interrupt_AltOC1Interrupt_AltOC1Interrupt_AltT1Interrupt_AltT1Interrupt

Page 105: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 105

445566778899101011111212131314141515

_IC2Interrupt_IC2Interrupt_OC2Interrupt_OC2Interrupt_T2Interrupt_T2Interrupt_T3Interrupt_T3Interrupt_SPI1Interrupt_SPI1Interrupt_U1RXInterrupt_U1RXInterrupt_U1TXInterrupt_U1TXInterrupt_ADCInterrupt_ADCInterrupt_NVMInterrupt_NVMInterrupt_SI2CInterrupt_SI2CInterrupt_MI2CInterrupt_MI2CInterrupt_CNInterrupt_CNInterrupt

_AltIC2Interrupt_AltIC2Interrupt_Alt OC2Interrupt_Alt OC2Interrupt_AltT2Interrupt_AltT2Interrupt_AltT3Interrupt_AltT3Interrupt_AltSPI1Interrupt_AltSPI1Interrupt_AltU1RXInterrupt_AltU1RXInterrupt_AltU1TXInterrupt_AltU1TXInterrupt_AltADCInterrupt_AltADCInterrupt_AltNVMInterrupt_AltNVMInterrupt_AltSI2CInterrupt_AltSI2CInterrupt_AltMI2CInterrupt_AltMI2CInterrupt_AltCNInterrupt_AltCNInterrupt

Funções de interrupção(Lista parcial)

IRQ # Nome secundárioNome primário

Page 106: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 106

Exemplo:

Acessando registradores

● Podemos acessar os registradores diretamente no MPLAB C30

● Nomes definidos no datasheet do componente

Sintaxe:

REGNAME

PORTA = 0xFE31; // Escreve 0xFE31 em PORTAAtoD_Result = ADC1BUF0; // Lê o resultado do A/DTX1REG = 'a'; // Envia 'a' para UARTif (RX1REG == 'x') { … } // Se caractere for 'x‘...while (RX1REG) { … } // ...

Page 107: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 107

Exemplo:

● Use o nome do registrador com a palavra 'bits' minúsculo

● O nome do bit é o mesmo especificado no datasheet

Sintexe:

REGNAMEbits.BITNAME

LATA.LATA5 = 1; // Seta bit 5 do PORTAFlag = PORTA.RA5; // Lê bit 5 do PORTAwhile (!AD1CONbits.DONE) { … } // Aguarda conversãoAD1CON.SSRC = 5; // Configura SSRC = 5//SSRC -> SSRC2 = 1, SSRC1 = 0, SSRC0 = 1

Acessando registradores

Page 108: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 108

Declaração do registrador AD1CON no arquivo header p24fj128ga010.h

__extension__ typedef struct tagAD1CON1BITS { union { struct { unsigned DONE:1; unsigned SAMP:1; unsigned ASAM:1; unsigned :2; unsigned SSRC:3; unsigned FORM0:1; unsigned FORM1:1; unsigned :3; unsigned ADSIDL:1; unsigned :1; unsigned ADON:1; }; struct { unsigned :5; unsigned SSRC0:1; unsigned SSRC1:1; unsigned SSRC2:1; unsigned FORM:2; }; };} AD1CON1BITS;extern volatile AD1CON1BITS AD1CON1bits __attribute__((__sfr__));

Bits SSRC0, SSRC1 e SSRC0 Nomes primários de bits

Nomes secundário de bits

Declaração

Definição de estrutura

Acessando registradores

Page 109: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 109

Acessando registradores

Definição de macro com o nome do bit (no arquivo header no microcontrolador):

#define _BITNAME REGNAMEbits.BITNAME;

Exemplo:

_LATA5 = 1; // Seta bit 5 do PORTAFlag = _RA5; // Lê bit 5 do PORTAwhile (!_DONE) { … } // Aguarda conversão_SSRC = 5; // Configura SSRC = 5//SSRC -> SSRC2 = 1, SSRC1 = 0, SSRC0 = 1

Page 110: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 110

Trabalhando com Libraries

adc.h A/D Convertercomparator.h Analog Comparatorcrc.h Cyclic Redundancy CheckGeneric.h Generally useful stuffi2c.h I2C™ Interfaceincap.h Input Captureoutcompare.h Output ComparePIC24_periph_features.h Peripheral Pin Selectpmp.h Parallel Master Portports.h I/O PortsPwrMgnt.h Power Managementrtcc.h Real-Time Clock Calendarspi.h SPI Interfacetimer.h Timersuart.h UARTwdt.h Watchdog Timer

Page 111: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 111

Explorando os 16 bits

Microcontroladores PIC de 16 bits Aplicações Recursos de hardware MPLAB IDE Simulação, depuração e gravação Apresentação do kit Explorer 16BR

Exemplos de aplicação

PIC24F PIC24H dsPIC33F dsPIC30F

Page 112: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 112

Explorer 16BR

● Placa licenciada pela Microchip

● Compatível com as bibliotecas Microchip

● Trabalha com PIC de 16 bits e 32 bits

Page 113: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 113

ICD2BR

Gravador e depurador:

– ICD2Br – Depura e grava PICs Flash– Comunicação USB;– Soquete para PICs e dsPIc (opcional);– 1 a 2 breakpoints (depende do modelo);– Gravação rápida– Download automático do tipo de família PIC pelo

MPLAB– 3% da venda deste produto é destinado ao Projeto Passe de Mágica;– Licenciado Microchip.

Page 114: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 114

Explorando os 16 bits

Microcontroladores PIC de 16 bits Aplicações Recursos de hardware MPLAB IDE Simulação, depuração e gravação Apresentação do kit Explorer 16BR

Exemplos de aplicação

PIC24F PIC24H dsPIC33F dsPIC30F

Page 115: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 115

Exemplo de aplicação 1 - QVGA

PM

P

RD/ WRCS

RST

Micro Interface

PIXEL drive RGB

LCD

driv

er

PIC24FJ128GA010

Frame Buffer

128K byte Flash

8Kbyte RAM

XYADC

LED Back light+9V

Libraries:Line, Circle,

Rectangle, Fill background,

Text 3D Objects etc

2 I/O

320 X 240 TFT Glass65536 Colors

ENA0

DB0 – DB7

Page 116: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 116

● Conecta no conector de expansão da Explorer 16BR

● Biblioteca Microchip

Graphics PICtailTM Plus

Page 117: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 117

Exemplo de aplicação 2 - Ethernet

Page 118: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 118

Controlador Ethernet ENC28J60

INT

MCU

8Kbytes IEEE 802.3

DIP, SOIC, SSOP, QFN

Page 119: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 119

Perguntas

?

Page 120: Explorando os 16 bits da Microchip e as ferramentas de

Explorando os 16 bits da Microchip Slide 120

Obrigado!!!

[email protected]