SlideShare ist ein Scribd-Unternehmen logo
1 von 107
Downloaden Sie, um offline zu lesen
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 1
Desenvolvendo
aplicações gráficas com a
família PIC32MZ (DA) e
MPLAB® Harmony
Daniel Rodrigues de Sousa
professor.daniel.rsousa@gmail.com
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 2
Aplicações gráficas
 LCD vs LED e displays LCD segmentado
 Esteticamente agradável, melhor
experiência de interface do usuário, a
baixo custo e baixa potência
 Dispositivos gráficos são encontrados
em todos os lugares
 telefones, wearables, tablets, medidores elétricos digitais, controles
remotos inteligentes, equipamento industrial e eletrodomésticos.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 3
MCU Gráficos
 Aceleradores gráficos em MCUs - não há
necessidade de complexo sistema baseado em
Linux
 Abertura estreita entre SoCs e
microcontroladores tradicionais
 Ambiente de desenvolvimento de software
sofisticado
 Microchip oferece PIC32MZ DA e um ambiente
de desenvolvimento robusto e gratuito
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 4
Objetivos desta palestra
 Após a conclusão desta palestra, você
será capaz de:
 Conhecer os fundamentos da arquitetura de
tratamento gráfico do PIC32MZ
 Conhecer os benefícios da aceleração gráfica,
interface de programação de aplicativos (API),
MPLAB® Harmony Composer Suite
 Aplicar técnicas de acelaração com controlador
gráfico (GLCD) e unidade de processamento
gráfico (GPU) do PIC32MZ em uma aplicação
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 5
Agenda
 Visão geral da arquitetura de hardware de
aceleração gráfica do PIC32MZ
 MPLAB ® Harmony Composer Suite
 Lab 1: Criar uma aplicação gráfica não
acelerada com CPU
 Lab 2: Criar uma aplicação gráfica acelerada
com GLCD
 Lab 3: Criar uma aplicação gráfica acelerada
com GLCD e GPU
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 6
Visão geral da arquitetura
de hardware de aceleração
gráfica do PIC32MZ
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 7
Comparação PIC32MZ EF
 PIC32MZ EF
 MIPS microAptive Core
 Até 2 MB Flash
 Até 512 KB RAM
 HS USB-OTG+PHY
 Ethernet
 CAN
 Crypto Engine
 SQI
 PIC32MZ DA
 MIPS microAptive Core
 Até 2 MB Flash
 Até 640KB RAM
 HS USB-OTG+PHY
 Ethernet
 CAN
 Crypto Engine
 SQI
 LCD Controller (GLCD)
 Graphics Processor
(2DGPU)
 Opcional
 Até 32MB DDR “empilhado”
ou 128MB DDR externo
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 8
PIC32MZ [DA] recursos de hardware
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 9
PIC32MZ [DA] recursos de
hardware (grafico)
 Controlador de gráficos de 3
camadas capaz de controlar
uma paleta de cores de 24 bits
com Alpha-Channel*
 Unidade de processamento de
gráficos 2D de alto
desempenho (GPU)*
 32MB de DRAM (DDR2)
integrada ou 128MB
externamente endereçável*
*novo para PIC32
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 10
O PIC32MZ DA é o unico MCU no mercado com
memória integrada para lidar com aplicações e
requisitos de Interface Gráfica rica
Esticar a imagem ~ 12MB Máquina de café (GUI)~ 3MB
MCU típica = ~ 500kB
Aplicação gráfica típica = entre 3MB a 15MB (ou mais)
PIC32MZ DA = 32MB (DDR externa = Maior custo na PCB)
A importância da memória em
aplicativos gráficos
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 11
Por que DDR2?
 Otimizado para alta e baixa
largura de banda
 Double data rate two (DDR2)
 Memória gráfica baseada em
DDR
 Baixo custo, alta densidade de
armazenamento de dados para
aplicações gráficas
 Memória framebuffer
 Suporte a camadas GLCD,
decodificação de imagens
 Suprimento de longo prazo
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 12
Controlador SDRAM
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 13
DDR2 para telas maiores
mais cores
 Definição das cores e aumento na resolução do display
 PIC32MX com até 128 KB interno
 PIC32MZ EF com até 512 KB interno/2 MB endereçável externo
 PIC32MZ DA com até 32 MB interno/128 MB endereçável externo
SRAM interna no PIC32MX
Inclui MX
Externa, MZ EF,
e MZ DA
PIC32MZ EF SRAM interna
PIC32MZ EF SRAM externa,Interna para PIC32MZ DA
PIC32MZ DA DRAM externa
Resolução do display
Tamanhos típicos
Definição de cores/
Requisitos de memória em (Bytes) para um simples quadro
8 bpp
(256 cores)
16 bpp
(65K cores)
32 bpp
(16.8M cores)
SVGA 800x600 10” 480.000 960.000 1.920.000
WVGA 800x480 5”/7” 384.000 768.000 1.536.000
VGA 640x480 5,7” 307.200 614.400 1.228.800
WQVGA 480x272 4,3” 130.560 261.120 522.240
QVGA 320x240 3,2” 76.800 153.600 307.200
OLED
128x64 1”-2,7” 8.192 16.384 32.768
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 14
DDR2 para telas maiores
Mais cores e mais camadas
 Aumento da definição e tamanho do display
 PIC32MZ DA opções para 32 MB (empilhados) – 128 MB (externo)
 Buffer duplo para atualização de tela lisa
 Segunda camadacomo um fundo que é Alpha blended
 Requer 3 vezes mais memória
Resolução do display
Tamanhos típicos
Definição de cores/
Requisitos de memória em (Bytes) para um simples quadro
8 bpp
(256 cores)
16 bpp
(65K cores)
32 bpp
(16.8M cores)
SVGA 800x600 10” 1,4M 2,8M 5,7M
WVGA 800x480 5”/7” 1,1M 2,3M 4,6M
VGA 640x480 5,7” 921.600 1,8M 3,6M
WQVGA 480x272 4,3” 391.680 783.360 1.566.720
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 15
PIC32MZ “DA” External Solomon External Epson
PIC32MZ Controller- Integrated Graphics Systech Graphics Graphics
less Graphics Controller Controller Controller
SSD1926/1963* S1D13517
Display
WQVGA 480x272
WVGA 800x480*
SVGA
800x600
WQVGA 480x272
WVGA 800x480*
WVGA 800x480
Controlador
DMA on PIC32 + <5
MIPS
Integrated Graphics
Controller (GLCD) and
Graphics Accelerator
(GPU)
HW Acceleration: SD
Card, I/F, JPEG
Engine
SDRAM, I/F, Alpha-
blending, Picture-in-
picture
Frame Buffer
512 KB on MCU + *Ext
SRAM
*Optional 8-bit Palette
(double buffer)
640 KB on MCU + 32MB
up to 128MB ext. DDR2
256 KB 1926
*1215KB 1963
on Solomon
Controller
Ext SDRAM
MHz/DMIPS 200/330 200/330 80-200Mhz 80-200Mhz
Performance Bom Melhor Bom Bom
Custo $ (*Ext SRAM) $$$$ $$ $$ $$$
Soluções típicas
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 16
Por que GLCD?
 Acelerador
 Composição da
temporização do display
 Compensação de
desempenho e utilização de
recursos
 Criação dinâmica de
conteúdo sem intervenção
da CPU
 Composição de camadas
 Montagem em tempo real
 Ampla gama de displays
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 17
Controlador de display
integrado (GLCD)
 Interface paralela de 32 bits suporta uma ampla
gama de monitores
 Composição de várias camadas para
renderização de imagem simplificada
 Suporta vários formatos de espaço de imagem
e cor
 Configuração de temporização flexível
 Requer dois sinais de clock
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 18
Principais características GLCD
Característica Suporte Informação adicional
Resolução da tela
• 480x272
• 480x800
• 800x600
50 MHz Pixel Clock
Display Manager
Capacidade de configuração
global
• Interrupções Vsync e Hsync
• Cor de fundo
• Resolução,Polaridade do
Sinal
• Sinal de Enable
Dynamic configurability
Display Manager
MHGC
Application
Três camadas.
Capacidade de
configuração individual
• BaseAddress
• Stride, Resolution
• Per Pixel and GlobalAlpha
• Src and Dest Blend
• Colormode,Palette
• Enable
Dynamic configurability
Display Manager
MHGC
Application
Vários formatos de cor
• RGBA8888
• RGB888
• RGB565
• LUT8
32 bits
24 bits
16 bits
8 bits
MHGC
Temporização programável Resolution,frontporch,
blanking, and backporch
Display Manager
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 19
GLCD Diagrama em Blocos
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 20
Composição multi camadas
(exemplo)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 21
Por que 2-D GPU?
 Acelerar operações de pixel (linha,
preenchimento, blit, operações)
 Renderização mais rápida de conteúdo em uma
superfície de buffer com ou sem conteúdo existente
 As operações de pixels são executadas de uma
das duas maneiras:
 Software
 CPU executa todo o trabalho
 Sequencial, lento, prejudica demais recursos
 Hardware
 O hardware executa o trabalho intensivo de tempo
 Renderização paralela, mais rápida/mais suave
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 22
Unidade de processamento
gráfico intergrado (2-D GPU)
 Acelera a renderização gráfica 2-D
 Acelera as operações de blit e varredura
 Vários modos de mesclagem Alpha
 Transferência de blocos (pixel blitting)
 Filtragem e suporte a transparência
 Redimensionamento, dimensionamento
 Operações de varredura – ROP2
 Orientação ortogonal – 0, 90, 180, 270
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 23
Características GPU
Características Suporte a GPU Info. adicionais
Opc. programáveis ROP2 alpha blending e
transparência
Função fixa  Line Draw, Rectangle Fill,
 Bit Blit,
Formatos de fonte
RGB Swizzle
 RGBA8888
 RGB888
 RGB565
 LUT8
Formatos de destino
RGB Swizzle
 RGBA8888
 RGB888
 RGB565
 LUT8
Modos Alpha Blending  Source Over, Destination Over
 Source In, Destination In
 Additive, Subtract
Transparência  Transparent Source
 Transparent Destination
Escalonamento de imagem  Esticar, encolher
Rotação, recorte  90, 180, 270 graus,
 clipping for blit primitives
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 24
Diagrama de blocos - GPU
 Host Interface
 Memory Controller
 Pipeline
 Drawing/Scaling
 Pixel Engine
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 25
Métodos para acelerar
uma aplicação gráfica
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 26
Métodos de aceleração
 Aceleração baseada em CPU
 Métodos de desenvolvimento
 Recursos de software
 Aceleração baseada em hardware
 Controlador de Display (GLCD)
 Processador Cráfico (2-D GPU)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 27
Aceleração baseada em CPU
“otimização”
 Criar temas de interface do
usuário simples
 Evite sobreposição de
widgets e imagens
 Reduzir a decodificação de
imagem
 Evitar alfa-blending
 Usar buffer off-screen
(buffer de imagem)
 Sofisticação de software
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 28
 Ambiente de desenvolvimento gráfico gratuito
 Adaptável a uma variedade de tamanho de
displays
 Ambiente de desenvolvimento de gráficos
visuais
 WYSIWYG
(what you see is what you get - o que se vê é o que se
obtém)
 Completamente integrado com PIC32MZ DA
 Suporte ao espaço de memória DDR2
 Suporta Controlador de Display (GLCD)
 Suporta Processador Gráfico (2-D GPU)
MPLAB® Harmony Graphics
Suite
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 29
WYSIWYG - what you see is what you get
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 30
Graphics 2.0 Stack
Hardware
Abstraction Layer
GLCD
Software Algorithms
GPU
Utilities
User Interface Library
User Application
Resource
Converter
Code
Generator
Graphics Composer Suite
MHC
Camada deinteraçãodo usuário
Decodificaçãode imagens e fontes
Gerenciamento doestadodo
desenhoe FrameBuffer
Lógica de desenhode software ou
hardware
Interface paraGLCD ou GPU
Camada da aplicação gráfica
Configuração de interfacee biblioteca de
design paraa Harmony Graphicsstack.
Código gráficoe geração de
recursos
Geraçãode aplicativos
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 31
Gerenciamento de Display
 Configurar e
inspecionar todos os
atributos de exibição
 Necessária para
todos os nova
conectividade de
exibição e
modificação
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 32
Labs:
Apresentação das
ferramentas
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 33
Ferramentas utilizadas
 DM320005-5
 Multimedia Expansion Board MEB II
 DM320008
 PIC32MZ Embedded Graphics with
External DRAM (DA) Starter Kit
 Software
 MPLAB® Harmony v2.03b
 MPLAB® X IDE (v3.61)
 MPLAB® XC32 (v1.43)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 34
PIC32MZ DA Starter Kit
(DM320008)
 Micro-B USB port: para depuração
(debugging)
 Micro-B USB port: para comunicação
USB para UART / I2CTM
 Standard-AUSB port: para embedded
host
 Micro-AB USB port: para porta
Host/Device/OTG
 RJ-45 Ethernet port: para conectividade
com a rede
 Conector header 2x20 (compatível com
Raspberry Pi)
 Conectores microSD e Hirose 168 pinos
 PIC32MZ2064DAB288
 Preço: US$140,00
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 35
 4.3” WQVGAPCAP touch display
board com resolução de 480x272
 Codec de audio (24 bits)
 Camera VGA
 Módulo wireless 802.11 b/g wireless
 Transceiver Bluetooth HCI
 Sensor de temperatura analógico
 Conector microSD
 Acelerômetro analógico
 Controlador touch maXTouch 336
 Conector PICtail
 Preço: US$299,00
Multimedia Expansion Board II
(DM320005-5)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 36
Setup inicial
 Configurar o jumper J9 da MEB-II
board:
 O Frame buffer pode ser localizado
na memória interna ou na memória
externa. O jumper J9 permite
selecionar se a tela será atualizada
com as informações da memória
interna ou memória DDR externa.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 37
Setup inicial
 Plugar o PIC32MZ DAStarter kit
no conector Hirose 168 pinos
 Conectar uma fonte de 9V a 15V
no conector 9V-15V DC
 Conectar o Real ICE ou um ICD3
no conector RJ-12
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 38
Setup inicial
 MPLAB X IDE versão 3.61 ou
superior
 Plug-in MPLAB Harmony
Configurator (MHC)
 MPLAB Harmony versão 2.03b ou
superior
 MPLAB XC32 versão 1.43 ou
superior
 Disponível em:
http://www.microchip.com/mplab
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 39
Lab 1:
Aplicação gráfica não
acelerada (somente CPU)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 40
Lab 1 Objetivos
 Mostrar o desempenho panorâmico
usando API gráfica baseada em CPU
 Deslizar uma imagem sobre a área de
exibição com sobreposição de objetos
de controle
 Mostrar os efeitos da renderização
ligada à CPU
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 41
Lab 1 - passo 1
 No MPLABX IDE, abrir projeto (Open Project):
 C:MASTERs2104921049_GFX2_LAB1firmware21049_GFX2_LAB1.
X
 Uma vez o projeto aberto, marque como projeto principal em Run > Set
Main Project > 21049_GFX2_LAB1
 Abrir o MPLAB® Harmony Configurator em Tools > Embedded >
MPLAB® Harmony Configurator.
Selecione abrir (Open) depois da caixa Open Configuration estiver aberta
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 42
Lab 1 - passo 2
 Abrir o MPLAB Harmony Graphics Composer: pressione o botão
Submenu para mostrar o submenu do configurador
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 43
Lab 1 - passo 3
 Uma vez que o MPLAB Harmony Graphics Composer estiver aberto,
selecione Graphics Composer Widget Tree abaixo da subjanela do
MPLAB Harmony Configurator para mostrar todas as camadas de
aplicação. A árvore do widget está localizada no canto inferior esquerdo
do MPLABX.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 44
Lab 1
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 45
Lab 1 - passo 4
 Selecione SliderWidget1 e PanArea em Layer2. Arraste-os para Layer0.
Esta ação vai inserir os widgets em Layer0 em vez de Layer1
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 46
Lab 1 - passo 5
 Desabilite Layer1. Desmarque o
checkbox Enable do Layer1.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 47
Lab 1 - passo 6
 Gerar código. Selecione o botão Code para gerar projeto.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 48
Lab 1 - passo 7
 Quando aparecer a janela Configuração Modificada, selecione Save.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 49
Lab 1 - passo 8
 Quando aparecer a janela Generate Project, selecione Generate. Se
houver diferenças de mesclagem na janela selecione Close
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 50
Lab 1 - passo 9
 Insira o código de alongamento da imagem. Abra o código-fonte do
app.c. Clique duas vezes em app.c na guia Projects. Inserir, na linha
465 o código abaixo:
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 51
Lab 1 - passo 9
 Insira o código de alongamento da imagem. Abra o código-fonte do
app.c. Clique duas vezes em app.c na guia Projects. Inserir, na linha
465 o código abaixo:
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 52
Lab 1 - passo 10
 Programação do dispositivo. Depois de gerar o código no MHGC,
efetuar a gravação.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 53
Lab 1 – passo 11
 Resultado esperado:
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 54
Métodos de aceleração
 Aceleração baseada em CPU
 Metodologias de Design
 Recursos de software
 Aceleração baseada em hardware
 Controlador de Display (GLCD)
 Processador gráfico (2D GPU)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 55
Aplicação gráfica PIC32MZ DA
 Opção de aceleração de hardware
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 56
Aceleração baseada em GLCD
 Permitir que o GLCD execute
todo o tempo e atualize
 Habilita duas ou mais camadas
 Criar temas complexos de
interface do usuário
 Manter a sobreposição de
widgets e imagens
 Programar a decodificação da
imagem
 Alpha-blending automático
 Usar buffer off-screen
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 57
O que é Alpha-Blending
 Uma maneira de misturar as
cores de duas superfícies
(camadas)
 Cria translucidez
 Forma uma imagem final
baseada em um fator de
mistura - Alpha
 Fórmulas são usadas para
calcular a cor final do pixel
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 58
GLCD Propriedades
As camadas GLCD padronizadas paraAlpha
global para versão v 2.03 b. Use
drv_gfx_glcd_static.h paraAPIs para
personalizar a camada de mesclagem.
GLCD Layer Propriedades
• Ativação
• Posição
• Tamanho
• Habilitação
• Alpha Blending
• Alpha Amount
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 59
Layers (camadas)
 Três camadas
provenientes de
diferentes regiões de
memória
 Camadas começa com
uma cor de fundo
 Cada camada é
totalmente configurável
 Os formatos de mistura
e cor são permitidos em
cada camada
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 60
Lab #2:
Aplicação acelerada com
GLCD
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 61
Lab 2 Objetivos
 Mostrar o desempenho de renderização usando GLCD
 Colocar uma imagem sobre o visor com objetos de
controle
 Mostrar os benefícios da aceleração GLCD
 Redução da renderização da CPU
 Modificar Lab 1 para usar GLCD (duas camandas)
 Imagem interativa na camada 1 capaz de ampliar e
redução baseada em CPU
 Controles de usuário na camada 2 e outras
informações textuais
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 62
Lab 2 – passo 1
 No MPLABX IDE, abrir projeto (Open Project):
 C:MASTERs2104921049_GFX2_LAB2firmware21049_GFX2_LAB2.
X
 Uma vez o projeto aberto, marque como projeto principal em Run > Set
Main Project > 21049_GFX2_LAB2
 Abrir o MPLAB® Harmony Configurator em Tools > Embedded >
MPLAB® Harmony Configurator.
Selecione abrir (Open) depois da caixa Open Configuration estiver aberta
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 63
Lab 2 – passo 2
 Abrir o MPLAB Harmony Graphics Composer : pressione o botão
Submenu para mostrar o submenu do configurador
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 64
Lab 2 – passo 3
 Uma vez que o MPLAB Harmony Graphics Composer aberto, selecione
Graphics Composer Widget Tree abaixo da subjanela do MPLAB
Harmony Configurator para mostrar todas as camadas de aplicação. A
árvore do widget está localizada no canto inferior esquerdo do
MPLABX.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 65
Lab 1
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 66
Lab 2 – passo 4
 Selecione SliderWidget1 e PanArea em Layer0. Arraste-os para Layer1.
Esta ação vai inserir os widgets em Layer1 em vez de Layer0
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 67
Lab 2 – passo 5
 Selecione Layer1 em Graphics Composer Widget Tree
 Habilite Layer1. Marque o checkbox Enable do Layer1
 Desabilite Layer2. Desmarque o checkbox Enable do Layer2
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 68
Lab 2 – passo 6
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 69
Lab 2 – passo 7
 Gerar código. Selecione o botão Code para gerar projeto.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 70
Lab 2 – passo 8
 Quando aparecer a janela Configuração Modificada, selecione Save.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 71
Lab 2 – passo 9
 Quando aparecer a janela Generate Project, selecione Generate. Se
houver diferenças de mesclagem na janela selecione Close
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 72
Lab 2 – passo 10
 Programação do dispositivo. Depois de gerar o código no MHGC,
efetuar a gravação.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 73
Lab 2 – passo 11
 Resultado esperado:
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 74
Métodos de aceleração
 Aceleração baseada em CPU
 Metodologias de Design
 Recursos de software
 Aceleração baseada em hardware
 Controlador de Display (GLCD)
 Processador gráfico (2D GPU)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 75
Aplicação gráfica PIC32MZ DA
 Processador gráfico
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 76
Aplicação gráfica PIC32MZ DA
 Opções de aceleração por hardware
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 77
BLTs
(Pixel Block Transfers)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 78
Aceleração baseada em GPU
(Porter-Duff Blending)
 Uso alpha-blending
hardware
 Source Over
 Destination Over
 Source In
 Destination In
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 79
Aceleração baseada em GPU
(Porter-Duff Blending)
 Uso alpha-blending hardware
 Na verdade, manipula dados na RAM. Só precisa
executar uma vez
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 80
Aceleração baseada em GPU
(Transparência – ROP2)
 Definir transparência para
funções blit
 Modo de transparência
aplicado a cada pixel
 Cor corresponde a um pixel
ou operação de plano de
fundo ou primeiro plano ocorre
no pixel
 ROP2 operação é executada
 Copiar destino se o pixel
branco
 Copiar origem se o pixel
branco
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 81
O que é máscara de filtro
 Mascarar uma ou mais cores é chamada de máscara de filtro
 As imagens são formas retangulares, o conteúdo desejado não é
 As imagens abaixo ilustram nenhuma mistura renderização e filtrado
renderizado. A cor branca é mascarada para fora a uma cor
transparente
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 82
Quem é a mulher do JPEG?
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 83
Lena Söderberg
 Lena Söderberg (Playboy,
novembro 1972)
 Escaneada originalmente por
Alexander Sawchuk em 1973
para pesquisas do padrão
JPEG (512x512 pixels)
 A imagem é usada até hoje
para testes de algoritmosde
compressão de imagens
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 84
Lena Söderberg
Linderhed, A. Adaptive Image Compression
with Wavelet Packets and Empirical Mode
Decomposition. Dissertations, ISSN 0345-
7524. Department of Electrical
Engineering, Linköping University, 2004
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 85
GPU Operações
Operação Descrição
n2d_init_hardware() Inicializa o driver n2d e o hardware periférico.
n2d_open() Ativar hardware e estabelecer o contexto da
aplicação.
n2d_line() Desenhe uma linha com uma cor específica. O
último pixel da linha não será desenhado.
n2d_fill() Preenche um buffer (parcial) com uma cor
especificada.
n2d_blit() Copia um buffer de origem para o buffer de
destino.
n2d_draw_state() Define o estado do desenho para as
seguintes chamadas de desenho da API
Nano2D
Nano2D Library API
• Comandos Nano2D são síncronos
• Nano2D comandos não são thread-
safe, não manipula dados
compartilhados
• Comandos não são reentrantes
• O uso da GPU é transparente
• Habilitado automaticamente ao usar
o GFX Graphics Suite
• Desenvolvedor pode optar por
desativar a aceleração em todo o
aplicativo
• Capaz de operações por pixel
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 86
GPU Propriedades
• Habilita aceleração primitiva
 Linhas, Preenchimentos, Blits
• Movimentação de pixels
n2d_error_t n2d_blit( n2d_buffer_t
*destination,
n2d_rectangle_t *destination_rectangle,
n2d_buffer_t *source,
n2d_rectangle_t *source_rectangle,
n2d_blend_t blend);
• Transparências, ROPs, Filtros
n2d_error_t n2d_draw_state(
n2d_transparency_t transparency,
n2d_color_t color,
n2d_uint8_t foreground_rop, n2d_uint8_t
background_rop);
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 87
Lab #3:
Aplicação acelerada com
GLCD e GPU
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 88
Lab 3 Objetivos
 Mostrar desempenho de renderização usando
GPU
 Uma imagem com objetos de controle visível
 Mostrar benefícios da aceleração GPU
 Use a camada 1 para recursos de imagem
interativa
 Use a camada 2 para manter os controles e
informações do usuário
 Substitua StretchBlit()por n2d_blit()
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 89
Lab 3 – passo 1
 No MPLABX IDE, abrir projeto (Open Project):
 C:MASTERs2104921049_GFX2_LAB3firmware21049_GFX2_LAB3.
X
 Uma vez o projeto aberto, marque como projeto principal em Run > Set
Main Project > 21049_GFX2_LAB3
 Abrir o MPLAB® Harmony Configurator em Tools > Embedded >
MPLAB® Harmony Configurator.
Selecione abrir (Open) depois da caixa Open Configuration estiver aberta
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 90
Lab 3 – passo 2
 Abrir o Microchip Harmony Graphics Configuration (MHGC): pressione o
botão Submenu para mostrar o submenu do configurador
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 91
Lab 3 – passo 3
 Uma vez que o MPLAB Harmony Graphics Composer, selecione
Graphics Composer Widget Tree abaixo da subjanela do MPLAB
Harmony Configurator para mostrar todas as camadas de aplicação. A
árvore do widget está localizada no canto inferior esquerdo do
MPLABX.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 92
Lab 1
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 93
Lab 3 – passo 4
 Selecione SliderWidget1 e PanArea em Layer0. Arraste-os para Layer1.
Esta ação vai inserir os widgets em Layer1 em vez de Layer0
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 94
Lab 3 – passo 5
 Selecione Layer1 em Graphics Composer Widget Tree
 Habilite Layer1. Marque o checkbox Enable do Layer1
 Habilite Layer2. Marque o checkbox Enable do Layer2
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 95
Lab 3 – passo 5
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 96
Lab 3 – passo 6
 Gerar código. Selecione o botão Code para gerar projeto.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 97
Lab 3 – passo 7
 Quando aparecer a janela Generate Project, selecione Generate. Se
houver diferenças de mesclagem na janela selecione Close
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 98
Lab 3 – passo 8
 Insira o código de alongamento da imagem. Abra o código-fonte do
app.c. Clique duas vezes em app.c na guia Projects. Remova a linha
467 até a linha 477 do código abaixo:
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 99
Lab 3 – passo 9
 Inserir na linha 467 o código abaixo:
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 100
Lab 3 – passo 10
 Programação do dispositivo. Depois de gerar o código no MHGC,
efetuar a gravação.
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 101
Lab 3 – passo 11
 Resultado esperado:
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 102
Sumário
 Hoje cobrimos
 PIC32MZ DA Graphics Device
 MPLAB® Harmony Graphics Suite
 Memória DDR2
 Controlador de Display (GLCD)
 Acelerador Gráfico (2D GPU)
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 103
Recursos adicionais
 “Ask The Expert” graphics booth
 www.microchip.com/mplab-harmony
 Vídeos
 MPLAB® Harmony Graphics Composer - CreateAwesome GUIs
Without Writing Code
https://www.youtube.com/watch?v=ScwnnY_krkY
 MPLAB Harmony Graphics Composer (MHGC)
https://www.youtube.com/watch?v=Nxb8S8xCJaI&i
ndex=22&list=PL4C1702E4442B7630
 Microchip XC32 Compiler Documentation:
 MPLAB XC32 C/C++ Compiler User’s Guide (DS50001686)
 MPLAB Assembler/Linker for PIC32 MCUs User's Guide
(DS50001833)
 Imagination Technologies Limited :
 MD00939-2B-microAptivUP-DTS-01.00
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 104
Opções de desenvolvimento
 DM320005-5
 Multimedia Expansion Board MEB II
 4.3” 480x272 Display
 maXTouch® 336 PCAP touch controller
 Optional 5” 800x480
 DM320008
 PIC32MZ Embedded Graphics with
External DRAM (DA) Starter Kit
 DM320010
 PIC32MZ Embedded Graphics with
Stacked DRAM (DA) Starter Kit
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 105
Perguntas?
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 106
Obrigado!
© 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 107
LEGAL NOTICE
SOFTWARE:
You may use Microchip software exclusively with Microchip products. Further, use of Microchip software is subject to the copyright notices, disclaimers, and
any license terms accompanying such software,whether set forth at the install of eachprogram or posted in a header or textfile.
Notwithstanding the above, certain components of software offered by Microchip and 3rd parties may be covered by “open source” software licenses –
which include licenses that require that the distributor make the software available in source code format. To the extent required by such open source
software licenses, the terms of such license will govern.
NOTICE & DISCLAIMER:
These materials and accompanying information (including, for example, any software, and references to 3rd party companies and 3rd party websites) are for
informational purposes only and provided “AS IS.” Microchip assumes no responsibility for statements made by 3rd party companies, or materials or
information that such 3rd parties may provide.
MICROCHIP DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING ANY IMPLIED WARRANTIES OF
NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY DIRECT OR
INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE, COST, OR EXPENSE OF ANY KIND RELATED TO THESE MATERIALS OR
ACCOMPANYING INFORMATION PROVIDED TO YOU BY MICROCHIP OR OTHER THIRD PARTIES, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
POSSIBLITY OF SUCH DAMAGES OR THE DAMAGES ARE FORESEEABLE. PLEASE BE AWARE THAT IMPLEMENTATION OF INTELLECTUAL PROPERTY
PRESENTED HERE MAY REQUIRE A LICENSE FROM THIRD PARTIES.
TRADEMARKS:
The Microchip name and logo, the Microchip logo, AnyRate, AVR, AVR logo, AVR Freaks, BeaconThings, BitCloud, CryptoMemory, CryptoRF, dsPIC, FlashFlex,
flexPWR, Heldo, JukeBlox, KEELOQ, KEELOQ logo, Kleer, LANCheck, LINK MD, maXStylus, maXTouch, MediaLB, megaAVR, MOST, MOST logo, MPLAB,
OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, Prochip Designer, QTouch, RightTouch, SAM-BA, SpyNIC, SST, SST Logo, SuperFlash, tinyAVR, UNI/O, and
XMEGA are registered trademarks of Microchip Technology Incorporatedin the U.S.A. and other countries.
ClockWorks, The Embedded Control Solutions Company, EtherSynch, Hyper Speed Control, HyperLight Load, IntelliMOS, mTouch, Precision Edge, and
Quiet-Wire are registeredtrademarks of Microchip Technology Incorporated in theU.S.A.
Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BodyCom, chipKIT, chipKIT logo, CodeGuard, CryptoAuthentication,
CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, EtherGREEN, In-Circuit Serial Programming, ICSP,
Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, Mindi, MiWi, motorBench, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK,
NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PureSilicon, QMatrix, RightTouch logo, REAL ICE, Ripple Blocker, SAM-ICE,
Serial Quad I/O, SMART-I.S., SQI, SuperSwitcher, SuperSwitcher II, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, and
ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.
Silicon Storage Technology is a registeredtrademark of Microchip Technology Inc. in othercountries.
GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other
countries. All other trademarks mentionedhereinare property of their respectivecompanies.
© 2017,Microchip Technology Incorporated, All Rights Reserved.

Weitere ähnliche Inhalte

Ähnlich wie Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony

Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
Monitores e Sistema de Vídeos
Monitores e Sistema de VídeosMonitores e Sistema de Vídeos
Monitores e Sistema de VídeosPaulo Brito
 
Construção de um computador
Construção de um computadorConstrução de um computador
Construção de um computadorvitec
 
Aula 11 – placas controladoras de vídeo (ii)
Aula 11 – placas controladoras de vídeo (ii)Aula 11 – placas controladoras de vídeo (ii)
Aula 11 – placas controladoras de vídeo (ii)Marcos Basilio
 
Graficas e monitores
Graficas e monitoresGraficas e monitores
Graficas e monitoresdsde
 
AtualizaçãO Desktops Mobile Para Consumer
AtualizaçãO Desktops Mobile Para ConsumerAtualizaçãO Desktops Mobile Para Consumer
AtualizaçãO Desktops Mobile Para ConsumerRoberto Brandao
 
Produto com foco automotivo com capacidade MSI ODM.pptx
Produto com foco automotivo com capacidade MSI ODM.pptxProduto com foco automotivo com capacidade MSI ODM.pptx
Produto com foco automotivo com capacidade MSI ODM.pptxMicro-Star International
 
ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.
ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.
ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.Fabrício Pinheiro
 
Quest hardware lj
Quest hardware ljQuest hardware lj
Quest hardware ljCarol Luz
 
Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1
Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1
Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1GBanin
 
Aula de Montagem e Manutenção - Placas Controladoras - 07/12
Aula de Montagem e Manutenção - Placas Controladoras - 07/12Aula de Montagem e Manutenção - Placas Controladoras - 07/12
Aula de Montagem e Manutenção - Placas Controladoras - 07/12Alexandre Da Silva Azevedo
 
"AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos"
"AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos""AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos"
"AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos"Fabrício Pinheiro
 
Visão Geral do windows Server 2008 R2 e Windows 7 SP1
Visão Geral do windows Server 2008 R2 e Windows 7 SP1Visão Geral do windows Server 2008 R2 e Windows 7 SP1
Visão Geral do windows Server 2008 R2 e Windows 7 SP1Fabio Hara
 

Ähnlich wie Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony (20)

Roadshow Canal AMD
Roadshow Canal AMDRoadshow Canal AMD
Roadshow Canal AMD
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Monitores e Sistema de Vídeos
Monitores e Sistema de VídeosMonitores e Sistema de Vídeos
Monitores e Sistema de Vídeos
 
Chipset 780
Chipset 780Chipset 780
Chipset 780
 
Blackfin
BlackfinBlackfin
Blackfin
 
Construção de um computador
Construção de um computadorConstrução de um computador
Construção de um computador
 
Aula 11 – placas controladoras de vídeo (ii)
Aula 11 – placas controladoras de vídeo (ii)Aula 11 – placas controladoras de vídeo (ii)
Aula 11 – placas controladoras de vídeo (ii)
 
Trabalho de informatica
Trabalho de informaticaTrabalho de informatica
Trabalho de informatica
 
Graficas e monitores
Graficas e monitoresGraficas e monitores
Graficas e monitores
 
Graficas e monitores
Graficas e monitoresGraficas e monitores
Graficas e monitores
 
AtualizaçãO Desktops Mobile Para Consumer
AtualizaçãO Desktops Mobile Para ConsumerAtualizaçãO Desktops Mobile Para Consumer
AtualizaçãO Desktops Mobile Para Consumer
 
Produto com foco automotivo com capacidade MSI ODM.pptx
Produto com foco automotivo com capacidade MSI ODM.pptxProduto com foco automotivo com capacidade MSI ODM.pptx
Produto com foco automotivo com capacidade MSI ODM.pptx
 
ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.
ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.
ATi Radeon - O poder da computação visual para tirar o máximo do seu computador.
 
Quest hardware lj
Quest hardware ljQuest hardware lj
Quest hardware lj
 
Treinamento Fhitronics
Treinamento FhitronicsTreinamento Fhitronics
Treinamento Fhitronics
 
Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1
Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1
Palestra Teched Brasil 2010 - Sessão SRV301 - Visão Geral do WS2008 R2 e W7 SP1
 
Aula de Montagem e Manutenção - Placas Controladoras - 07/12
Aula de Montagem e Manutenção - Placas Controladoras - 07/12Aula de Montagem e Manutenção - Placas Controladoras - 07/12
Aula de Montagem e Manutenção - Placas Controladoras - 07/12
 
Zxp1
Zxp1Zxp1
Zxp1
 
"AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos"
"AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos""AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos"
"AMD - Phenom - O Verdadeiro Processamento Com 4 Núcleos"
 
Visão Geral do windows Server 2008 R2 e Windows 7 SP1
Visão Geral do windows Server 2008 R2 e Windows 7 SP1Visão Geral do windows Server 2008 R2 e Windows 7 SP1
Visão Geral do windows Server 2008 R2 e Windows 7 SP1
 

Mehr von Daniel Rodrigues de Sousa

Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Daniel Rodrigues de Sousa
 
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Daniel Rodrigues de Sousa
 
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Daniel Rodrigues de Sousa
 
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Daniel Rodrigues de Sousa
 
Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Daniel Rodrigues de Sousa
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaDaniel Rodrigues de Sousa
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICDaniel Rodrigues de Sousa
 

Mehr von Daniel Rodrigues de Sousa (13)

IoT arduino
IoT arduinoIoT arduino
IoT arduino
 
Criando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry PiCriando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry Pi
 
Existe vida após o arduino?
Existe vida após o arduino? Existe vida após o arduino?
Existe vida após o arduino?
 
Existe vida após o Arduino?
Existe vida após o Arduino?Existe vida após o Arduino?
Existe vida após o Arduino?
 
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
 
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
 
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
 
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
 
Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...
 
CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?
 
Aplicações do microcontrolador PIC
Aplicações do microcontrolador PICAplicações do microcontrolador PIC
Aplicações do microcontrolador PIC
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a dia
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PIC
 

Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony

  • 1. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 1 Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e MPLAB® Harmony Daniel Rodrigues de Sousa professor.daniel.rsousa@gmail.com
  • 2. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 2 Aplicações gráficas  LCD vs LED e displays LCD segmentado  Esteticamente agradável, melhor experiência de interface do usuário, a baixo custo e baixa potência  Dispositivos gráficos são encontrados em todos os lugares  telefones, wearables, tablets, medidores elétricos digitais, controles remotos inteligentes, equipamento industrial e eletrodomésticos.
  • 3. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 3 MCU Gráficos  Aceleradores gráficos em MCUs - não há necessidade de complexo sistema baseado em Linux  Abertura estreita entre SoCs e microcontroladores tradicionais  Ambiente de desenvolvimento de software sofisticado  Microchip oferece PIC32MZ DA e um ambiente de desenvolvimento robusto e gratuito
  • 4. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 4 Objetivos desta palestra  Após a conclusão desta palestra, você será capaz de:  Conhecer os fundamentos da arquitetura de tratamento gráfico do PIC32MZ  Conhecer os benefícios da aceleração gráfica, interface de programação de aplicativos (API), MPLAB® Harmony Composer Suite  Aplicar técnicas de acelaração com controlador gráfico (GLCD) e unidade de processamento gráfico (GPU) do PIC32MZ em uma aplicação
  • 5. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 5 Agenda  Visão geral da arquitetura de hardware de aceleração gráfica do PIC32MZ  MPLAB ® Harmony Composer Suite  Lab 1: Criar uma aplicação gráfica não acelerada com CPU  Lab 2: Criar uma aplicação gráfica acelerada com GLCD  Lab 3: Criar uma aplicação gráfica acelerada com GLCD e GPU
  • 6. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 6 Visão geral da arquitetura de hardware de aceleração gráfica do PIC32MZ
  • 7. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 7 Comparação PIC32MZ EF  PIC32MZ EF  MIPS microAptive Core  Até 2 MB Flash  Até 512 KB RAM  HS USB-OTG+PHY  Ethernet  CAN  Crypto Engine  SQI  PIC32MZ DA  MIPS microAptive Core  Até 2 MB Flash  Até 640KB RAM  HS USB-OTG+PHY  Ethernet  CAN  Crypto Engine  SQI  LCD Controller (GLCD)  Graphics Processor (2DGPU)  Opcional  Até 32MB DDR “empilhado” ou 128MB DDR externo
  • 8. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 8 PIC32MZ [DA] recursos de hardware
  • 9. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 9 PIC32MZ [DA] recursos de hardware (grafico)  Controlador de gráficos de 3 camadas capaz de controlar uma paleta de cores de 24 bits com Alpha-Channel*  Unidade de processamento de gráficos 2D de alto desempenho (GPU)*  32MB de DRAM (DDR2) integrada ou 128MB externamente endereçável* *novo para PIC32
  • 10. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 10 O PIC32MZ DA é o unico MCU no mercado com memória integrada para lidar com aplicações e requisitos de Interface Gráfica rica Esticar a imagem ~ 12MB Máquina de café (GUI)~ 3MB MCU típica = ~ 500kB Aplicação gráfica típica = entre 3MB a 15MB (ou mais) PIC32MZ DA = 32MB (DDR externa = Maior custo na PCB) A importância da memória em aplicativos gráficos
  • 11. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 11 Por que DDR2?  Otimizado para alta e baixa largura de banda  Double data rate two (DDR2)  Memória gráfica baseada em DDR  Baixo custo, alta densidade de armazenamento de dados para aplicações gráficas  Memória framebuffer  Suporte a camadas GLCD, decodificação de imagens  Suprimento de longo prazo
  • 12. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 12 Controlador SDRAM
  • 13. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 13 DDR2 para telas maiores mais cores  Definição das cores e aumento na resolução do display  PIC32MX com até 128 KB interno  PIC32MZ EF com até 512 KB interno/2 MB endereçável externo  PIC32MZ DA com até 32 MB interno/128 MB endereçável externo SRAM interna no PIC32MX Inclui MX Externa, MZ EF, e MZ DA PIC32MZ EF SRAM interna PIC32MZ EF SRAM externa,Interna para PIC32MZ DA PIC32MZ DA DRAM externa Resolução do display Tamanhos típicos Definição de cores/ Requisitos de memória em (Bytes) para um simples quadro 8 bpp (256 cores) 16 bpp (65K cores) 32 bpp (16.8M cores) SVGA 800x600 10” 480.000 960.000 1.920.000 WVGA 800x480 5”/7” 384.000 768.000 1.536.000 VGA 640x480 5,7” 307.200 614.400 1.228.800 WQVGA 480x272 4,3” 130.560 261.120 522.240 QVGA 320x240 3,2” 76.800 153.600 307.200 OLED 128x64 1”-2,7” 8.192 16.384 32.768
  • 14. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 14 DDR2 para telas maiores Mais cores e mais camadas  Aumento da definição e tamanho do display  PIC32MZ DA opções para 32 MB (empilhados) – 128 MB (externo)  Buffer duplo para atualização de tela lisa  Segunda camadacomo um fundo que é Alpha blended  Requer 3 vezes mais memória Resolução do display Tamanhos típicos Definição de cores/ Requisitos de memória em (Bytes) para um simples quadro 8 bpp (256 cores) 16 bpp (65K cores) 32 bpp (16.8M cores) SVGA 800x600 10” 1,4M 2,8M 5,7M WVGA 800x480 5”/7” 1,1M 2,3M 4,6M VGA 640x480 5,7” 921.600 1,8M 3,6M WQVGA 480x272 4,3” 391.680 783.360 1.566.720
  • 15. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 15 PIC32MZ “DA” External Solomon External Epson PIC32MZ Controller- Integrated Graphics Systech Graphics Graphics less Graphics Controller Controller Controller SSD1926/1963* S1D13517 Display WQVGA 480x272 WVGA 800x480* SVGA 800x600 WQVGA 480x272 WVGA 800x480* WVGA 800x480 Controlador DMA on PIC32 + <5 MIPS Integrated Graphics Controller (GLCD) and Graphics Accelerator (GPU) HW Acceleration: SD Card, I/F, JPEG Engine SDRAM, I/F, Alpha- blending, Picture-in- picture Frame Buffer 512 KB on MCU + *Ext SRAM *Optional 8-bit Palette (double buffer) 640 KB on MCU + 32MB up to 128MB ext. DDR2 256 KB 1926 *1215KB 1963 on Solomon Controller Ext SDRAM MHz/DMIPS 200/330 200/330 80-200Mhz 80-200Mhz Performance Bom Melhor Bom Bom Custo $ (*Ext SRAM) $$$$ $$ $$ $$$ Soluções típicas
  • 16. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 16 Por que GLCD?  Acelerador  Composição da temporização do display  Compensação de desempenho e utilização de recursos  Criação dinâmica de conteúdo sem intervenção da CPU  Composição de camadas  Montagem em tempo real  Ampla gama de displays
  • 17. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 17 Controlador de display integrado (GLCD)  Interface paralela de 32 bits suporta uma ampla gama de monitores  Composição de várias camadas para renderização de imagem simplificada  Suporta vários formatos de espaço de imagem e cor  Configuração de temporização flexível  Requer dois sinais de clock
  • 18. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 18 Principais características GLCD Característica Suporte Informação adicional Resolução da tela • 480x272 • 480x800 • 800x600 50 MHz Pixel Clock Display Manager Capacidade de configuração global • Interrupções Vsync e Hsync • Cor de fundo • Resolução,Polaridade do Sinal • Sinal de Enable Dynamic configurability Display Manager MHGC Application Três camadas. Capacidade de configuração individual • BaseAddress • Stride, Resolution • Per Pixel and GlobalAlpha • Src and Dest Blend • Colormode,Palette • Enable Dynamic configurability Display Manager MHGC Application Vários formatos de cor • RGBA8888 • RGB888 • RGB565 • LUT8 32 bits 24 bits 16 bits 8 bits MHGC Temporização programável Resolution,frontporch, blanking, and backporch Display Manager
  • 19. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 19 GLCD Diagrama em Blocos
  • 20. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 20 Composição multi camadas (exemplo)
  • 21. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 21 Por que 2-D GPU?  Acelerar operações de pixel (linha, preenchimento, blit, operações)  Renderização mais rápida de conteúdo em uma superfície de buffer com ou sem conteúdo existente  As operações de pixels são executadas de uma das duas maneiras:  Software  CPU executa todo o trabalho  Sequencial, lento, prejudica demais recursos  Hardware  O hardware executa o trabalho intensivo de tempo  Renderização paralela, mais rápida/mais suave
  • 22. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 22 Unidade de processamento gráfico intergrado (2-D GPU)  Acelera a renderização gráfica 2-D  Acelera as operações de blit e varredura  Vários modos de mesclagem Alpha  Transferência de blocos (pixel blitting)  Filtragem e suporte a transparência  Redimensionamento, dimensionamento  Operações de varredura – ROP2  Orientação ortogonal – 0, 90, 180, 270
  • 23. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 23 Características GPU Características Suporte a GPU Info. adicionais Opc. programáveis ROP2 alpha blending e transparência Função fixa  Line Draw, Rectangle Fill,  Bit Blit, Formatos de fonte RGB Swizzle  RGBA8888  RGB888  RGB565  LUT8 Formatos de destino RGB Swizzle  RGBA8888  RGB888  RGB565  LUT8 Modos Alpha Blending  Source Over, Destination Over  Source In, Destination In  Additive, Subtract Transparência  Transparent Source  Transparent Destination Escalonamento de imagem  Esticar, encolher Rotação, recorte  90, 180, 270 graus,  clipping for blit primitives
  • 24. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 24 Diagrama de blocos - GPU  Host Interface  Memory Controller  Pipeline  Drawing/Scaling  Pixel Engine
  • 25. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 25 Métodos para acelerar uma aplicação gráfica
  • 26. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 26 Métodos de aceleração  Aceleração baseada em CPU  Métodos de desenvolvimento  Recursos de software  Aceleração baseada em hardware  Controlador de Display (GLCD)  Processador Cráfico (2-D GPU)
  • 27. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 27 Aceleração baseada em CPU “otimização”  Criar temas de interface do usuário simples  Evite sobreposição de widgets e imagens  Reduzir a decodificação de imagem  Evitar alfa-blending  Usar buffer off-screen (buffer de imagem)  Sofisticação de software
  • 28. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 28  Ambiente de desenvolvimento gráfico gratuito  Adaptável a uma variedade de tamanho de displays  Ambiente de desenvolvimento de gráficos visuais  WYSIWYG (what you see is what you get - o que se vê é o que se obtém)  Completamente integrado com PIC32MZ DA  Suporte ao espaço de memória DDR2  Suporta Controlador de Display (GLCD)  Suporta Processador Gráfico (2-D GPU) MPLAB® Harmony Graphics Suite
  • 29. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 29 WYSIWYG - what you see is what you get
  • 30. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 30 Graphics 2.0 Stack Hardware Abstraction Layer GLCD Software Algorithms GPU Utilities User Interface Library User Application Resource Converter Code Generator Graphics Composer Suite MHC Camada deinteraçãodo usuário Decodificaçãode imagens e fontes Gerenciamento doestadodo desenhoe FrameBuffer Lógica de desenhode software ou hardware Interface paraGLCD ou GPU Camada da aplicação gráfica Configuração de interfacee biblioteca de design paraa Harmony Graphicsstack. Código gráficoe geração de recursos Geraçãode aplicativos
  • 31. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 31 Gerenciamento de Display  Configurar e inspecionar todos os atributos de exibição  Necessária para todos os nova conectividade de exibição e modificação
  • 32. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 32 Labs: Apresentação das ferramentas
  • 33. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 33 Ferramentas utilizadas  DM320005-5  Multimedia Expansion Board MEB II  DM320008  PIC32MZ Embedded Graphics with External DRAM (DA) Starter Kit  Software  MPLAB® Harmony v2.03b  MPLAB® X IDE (v3.61)  MPLAB® XC32 (v1.43)
  • 34. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 34 PIC32MZ DA Starter Kit (DM320008)  Micro-B USB port: para depuração (debugging)  Micro-B USB port: para comunicação USB para UART / I2CTM  Standard-AUSB port: para embedded host  Micro-AB USB port: para porta Host/Device/OTG  RJ-45 Ethernet port: para conectividade com a rede  Conector header 2x20 (compatível com Raspberry Pi)  Conectores microSD e Hirose 168 pinos  PIC32MZ2064DAB288  Preço: US$140,00
  • 35. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 35  4.3” WQVGAPCAP touch display board com resolução de 480x272  Codec de audio (24 bits)  Camera VGA  Módulo wireless 802.11 b/g wireless  Transceiver Bluetooth HCI  Sensor de temperatura analógico  Conector microSD  Acelerômetro analógico  Controlador touch maXTouch 336  Conector PICtail  Preço: US$299,00 Multimedia Expansion Board II (DM320005-5)
  • 36. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 36 Setup inicial  Configurar o jumper J9 da MEB-II board:  O Frame buffer pode ser localizado na memória interna ou na memória externa. O jumper J9 permite selecionar se a tela será atualizada com as informações da memória interna ou memória DDR externa.
  • 37. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 37 Setup inicial  Plugar o PIC32MZ DAStarter kit no conector Hirose 168 pinos  Conectar uma fonte de 9V a 15V no conector 9V-15V DC  Conectar o Real ICE ou um ICD3 no conector RJ-12
  • 38. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 38 Setup inicial  MPLAB X IDE versão 3.61 ou superior  Plug-in MPLAB Harmony Configurator (MHC)  MPLAB Harmony versão 2.03b ou superior  MPLAB XC32 versão 1.43 ou superior  Disponível em: http://www.microchip.com/mplab
  • 39. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 39 Lab 1: Aplicação gráfica não acelerada (somente CPU)
  • 40. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 40 Lab 1 Objetivos  Mostrar o desempenho panorâmico usando API gráfica baseada em CPU  Deslizar uma imagem sobre a área de exibição com sobreposição de objetos de controle  Mostrar os efeitos da renderização ligada à CPU
  • 41. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 41 Lab 1 - passo 1  No MPLABX IDE, abrir projeto (Open Project):  C:MASTERs2104921049_GFX2_LAB1firmware21049_GFX2_LAB1. X  Uma vez o projeto aberto, marque como projeto principal em Run > Set Main Project > 21049_GFX2_LAB1  Abrir o MPLAB® Harmony Configurator em Tools > Embedded > MPLAB® Harmony Configurator. Selecione abrir (Open) depois da caixa Open Configuration estiver aberta
  • 42. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 42 Lab 1 - passo 2  Abrir o MPLAB Harmony Graphics Composer: pressione o botão Submenu para mostrar o submenu do configurador
  • 43. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 43 Lab 1 - passo 3  Uma vez que o MPLAB Harmony Graphics Composer estiver aberto, selecione Graphics Composer Widget Tree abaixo da subjanela do MPLAB Harmony Configurator para mostrar todas as camadas de aplicação. A árvore do widget está localizada no canto inferior esquerdo do MPLABX.
  • 44. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 44 Lab 1
  • 45. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 45 Lab 1 - passo 4  Selecione SliderWidget1 e PanArea em Layer2. Arraste-os para Layer0. Esta ação vai inserir os widgets em Layer0 em vez de Layer1
  • 46. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 46 Lab 1 - passo 5  Desabilite Layer1. Desmarque o checkbox Enable do Layer1.
  • 47. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 47 Lab 1 - passo 6  Gerar código. Selecione o botão Code para gerar projeto.
  • 48. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 48 Lab 1 - passo 7  Quando aparecer a janela Configuração Modificada, selecione Save.
  • 49. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 49 Lab 1 - passo 8  Quando aparecer a janela Generate Project, selecione Generate. Se houver diferenças de mesclagem na janela selecione Close
  • 50. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 50 Lab 1 - passo 9  Insira o código de alongamento da imagem. Abra o código-fonte do app.c. Clique duas vezes em app.c na guia Projects. Inserir, na linha 465 o código abaixo:
  • 51. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 51 Lab 1 - passo 9  Insira o código de alongamento da imagem. Abra o código-fonte do app.c. Clique duas vezes em app.c na guia Projects. Inserir, na linha 465 o código abaixo:
  • 52. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 52 Lab 1 - passo 10  Programação do dispositivo. Depois de gerar o código no MHGC, efetuar a gravação.
  • 53. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 53 Lab 1 – passo 11  Resultado esperado:
  • 54. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 54 Métodos de aceleração  Aceleração baseada em CPU  Metodologias de Design  Recursos de software  Aceleração baseada em hardware  Controlador de Display (GLCD)  Processador gráfico (2D GPU)
  • 55. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 55 Aplicação gráfica PIC32MZ DA  Opção de aceleração de hardware
  • 56. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 56 Aceleração baseada em GLCD  Permitir que o GLCD execute todo o tempo e atualize  Habilita duas ou mais camadas  Criar temas complexos de interface do usuário  Manter a sobreposição de widgets e imagens  Programar a decodificação da imagem  Alpha-blending automático  Usar buffer off-screen
  • 57. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 57 O que é Alpha-Blending  Uma maneira de misturar as cores de duas superfícies (camadas)  Cria translucidez  Forma uma imagem final baseada em um fator de mistura - Alpha  Fórmulas são usadas para calcular a cor final do pixel
  • 58. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 58 GLCD Propriedades As camadas GLCD padronizadas paraAlpha global para versão v 2.03 b. Use drv_gfx_glcd_static.h paraAPIs para personalizar a camada de mesclagem. GLCD Layer Propriedades • Ativação • Posição • Tamanho • Habilitação • Alpha Blending • Alpha Amount
  • 59. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 59 Layers (camadas)  Três camadas provenientes de diferentes regiões de memória  Camadas começa com uma cor de fundo  Cada camada é totalmente configurável  Os formatos de mistura e cor são permitidos em cada camada
  • 60. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 60 Lab #2: Aplicação acelerada com GLCD
  • 61. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 61 Lab 2 Objetivos  Mostrar o desempenho de renderização usando GLCD  Colocar uma imagem sobre o visor com objetos de controle  Mostrar os benefícios da aceleração GLCD  Redução da renderização da CPU  Modificar Lab 1 para usar GLCD (duas camandas)  Imagem interativa na camada 1 capaz de ampliar e redução baseada em CPU  Controles de usuário na camada 2 e outras informações textuais
  • 62. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 62 Lab 2 – passo 1  No MPLABX IDE, abrir projeto (Open Project):  C:MASTERs2104921049_GFX2_LAB2firmware21049_GFX2_LAB2. X  Uma vez o projeto aberto, marque como projeto principal em Run > Set Main Project > 21049_GFX2_LAB2  Abrir o MPLAB® Harmony Configurator em Tools > Embedded > MPLAB® Harmony Configurator. Selecione abrir (Open) depois da caixa Open Configuration estiver aberta
  • 63. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 63 Lab 2 – passo 2  Abrir o MPLAB Harmony Graphics Composer : pressione o botão Submenu para mostrar o submenu do configurador
  • 64. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 64 Lab 2 – passo 3  Uma vez que o MPLAB Harmony Graphics Composer aberto, selecione Graphics Composer Widget Tree abaixo da subjanela do MPLAB Harmony Configurator para mostrar todas as camadas de aplicação. A árvore do widget está localizada no canto inferior esquerdo do MPLABX.
  • 65. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 65 Lab 1
  • 66. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 66 Lab 2 – passo 4  Selecione SliderWidget1 e PanArea em Layer0. Arraste-os para Layer1. Esta ação vai inserir os widgets em Layer1 em vez de Layer0
  • 67. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 67 Lab 2 – passo 5  Selecione Layer1 em Graphics Composer Widget Tree  Habilite Layer1. Marque o checkbox Enable do Layer1  Desabilite Layer2. Desmarque o checkbox Enable do Layer2
  • 68. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 68 Lab 2 – passo 6
  • 69. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 69 Lab 2 – passo 7  Gerar código. Selecione o botão Code para gerar projeto.
  • 70. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 70 Lab 2 – passo 8  Quando aparecer a janela Configuração Modificada, selecione Save.
  • 71. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 71 Lab 2 – passo 9  Quando aparecer a janela Generate Project, selecione Generate. Se houver diferenças de mesclagem na janela selecione Close
  • 72. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 72 Lab 2 – passo 10  Programação do dispositivo. Depois de gerar o código no MHGC, efetuar a gravação.
  • 73. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 73 Lab 2 – passo 11  Resultado esperado:
  • 74. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 74 Métodos de aceleração  Aceleração baseada em CPU  Metodologias de Design  Recursos de software  Aceleração baseada em hardware  Controlador de Display (GLCD)  Processador gráfico (2D GPU)
  • 75. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 75 Aplicação gráfica PIC32MZ DA  Processador gráfico
  • 76. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 76 Aplicação gráfica PIC32MZ DA  Opções de aceleração por hardware
  • 77. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 77 BLTs (Pixel Block Transfers)
  • 78. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 78 Aceleração baseada em GPU (Porter-Duff Blending)  Uso alpha-blending hardware  Source Over  Destination Over  Source In  Destination In
  • 79. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 79 Aceleração baseada em GPU (Porter-Duff Blending)  Uso alpha-blending hardware  Na verdade, manipula dados na RAM. Só precisa executar uma vez
  • 80. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 80 Aceleração baseada em GPU (Transparência – ROP2)  Definir transparência para funções blit  Modo de transparência aplicado a cada pixel  Cor corresponde a um pixel ou operação de plano de fundo ou primeiro plano ocorre no pixel  ROP2 operação é executada  Copiar destino se o pixel branco  Copiar origem se o pixel branco
  • 81. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 81 O que é máscara de filtro  Mascarar uma ou mais cores é chamada de máscara de filtro  As imagens são formas retangulares, o conteúdo desejado não é  As imagens abaixo ilustram nenhuma mistura renderização e filtrado renderizado. A cor branca é mascarada para fora a uma cor transparente
  • 82. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 82 Quem é a mulher do JPEG?
  • 83. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 83 Lena Söderberg  Lena Söderberg (Playboy, novembro 1972)  Escaneada originalmente por Alexander Sawchuk em 1973 para pesquisas do padrão JPEG (512x512 pixels)  A imagem é usada até hoje para testes de algoritmosde compressão de imagens
  • 84. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 84 Lena Söderberg Linderhed, A. Adaptive Image Compression with Wavelet Packets and Empirical Mode Decomposition. Dissertations, ISSN 0345- 7524. Department of Electrical Engineering, Linköping University, 2004
  • 85. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 85 GPU Operações Operação Descrição n2d_init_hardware() Inicializa o driver n2d e o hardware periférico. n2d_open() Ativar hardware e estabelecer o contexto da aplicação. n2d_line() Desenhe uma linha com uma cor específica. O último pixel da linha não será desenhado. n2d_fill() Preenche um buffer (parcial) com uma cor especificada. n2d_blit() Copia um buffer de origem para o buffer de destino. n2d_draw_state() Define o estado do desenho para as seguintes chamadas de desenho da API Nano2D Nano2D Library API • Comandos Nano2D são síncronos • Nano2D comandos não são thread- safe, não manipula dados compartilhados • Comandos não são reentrantes • O uso da GPU é transparente • Habilitado automaticamente ao usar o GFX Graphics Suite • Desenvolvedor pode optar por desativar a aceleração em todo o aplicativo • Capaz de operações por pixel
  • 86. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 86 GPU Propriedades • Habilita aceleração primitiva  Linhas, Preenchimentos, Blits • Movimentação de pixels n2d_error_t n2d_blit( n2d_buffer_t *destination, n2d_rectangle_t *destination_rectangle, n2d_buffer_t *source, n2d_rectangle_t *source_rectangle, n2d_blend_t blend); • Transparências, ROPs, Filtros n2d_error_t n2d_draw_state( n2d_transparency_t transparency, n2d_color_t color, n2d_uint8_t foreground_rop, n2d_uint8_t background_rop);
  • 87. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 87 Lab #3: Aplicação acelerada com GLCD e GPU
  • 88. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 88 Lab 3 Objetivos  Mostrar desempenho de renderização usando GPU  Uma imagem com objetos de controle visível  Mostrar benefícios da aceleração GPU  Use a camada 1 para recursos de imagem interativa  Use a camada 2 para manter os controles e informações do usuário  Substitua StretchBlit()por n2d_blit()
  • 89. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 89 Lab 3 – passo 1  No MPLABX IDE, abrir projeto (Open Project):  C:MASTERs2104921049_GFX2_LAB3firmware21049_GFX2_LAB3. X  Uma vez o projeto aberto, marque como projeto principal em Run > Set Main Project > 21049_GFX2_LAB3  Abrir o MPLAB® Harmony Configurator em Tools > Embedded > MPLAB® Harmony Configurator. Selecione abrir (Open) depois da caixa Open Configuration estiver aberta
  • 90. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 90 Lab 3 – passo 2  Abrir o Microchip Harmony Graphics Configuration (MHGC): pressione o botão Submenu para mostrar o submenu do configurador
  • 91. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 91 Lab 3 – passo 3  Uma vez que o MPLAB Harmony Graphics Composer, selecione Graphics Composer Widget Tree abaixo da subjanela do MPLAB Harmony Configurator para mostrar todas as camadas de aplicação. A árvore do widget está localizada no canto inferior esquerdo do MPLABX.
  • 92. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 92 Lab 1
  • 93. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 93 Lab 3 – passo 4  Selecione SliderWidget1 e PanArea em Layer0. Arraste-os para Layer1. Esta ação vai inserir os widgets em Layer1 em vez de Layer0
  • 94. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 94 Lab 3 – passo 5  Selecione Layer1 em Graphics Composer Widget Tree  Habilite Layer1. Marque o checkbox Enable do Layer1  Habilite Layer2. Marque o checkbox Enable do Layer2
  • 95. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 95 Lab 3 – passo 5
  • 96. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 96 Lab 3 – passo 6  Gerar código. Selecione o botão Code para gerar projeto.
  • 97. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 97 Lab 3 – passo 7  Quando aparecer a janela Generate Project, selecione Generate. Se houver diferenças de mesclagem na janela selecione Close
  • 98. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 98 Lab 3 – passo 8  Insira o código de alongamento da imagem. Abra o código-fonte do app.c. Clique duas vezes em app.c na guia Projects. Remova a linha 467 até a linha 477 do código abaixo:
  • 99. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 99 Lab 3 – passo 9  Inserir na linha 467 o código abaixo:
  • 100. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 100 Lab 3 – passo 10  Programação do dispositivo. Depois de gerar o código no MHGC, efetuar a gravação.
  • 101. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 101 Lab 3 – passo 11  Resultado esperado:
  • 102. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 102 Sumário  Hoje cobrimos  PIC32MZ DA Graphics Device  MPLAB® Harmony Graphics Suite  Memória DDR2  Controlador de Display (GLCD)  Acelerador Gráfico (2D GPU)
  • 103. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 103 Recursos adicionais  “Ask The Expert” graphics booth  www.microchip.com/mplab-harmony  Vídeos  MPLAB® Harmony Graphics Composer - CreateAwesome GUIs Without Writing Code https://www.youtube.com/watch?v=ScwnnY_krkY  MPLAB Harmony Graphics Composer (MHGC) https://www.youtube.com/watch?v=Nxb8S8xCJaI&i ndex=22&list=PL4C1702E4442B7630  Microchip XC32 Compiler Documentation:  MPLAB XC32 C/C++ Compiler User’s Guide (DS50001686)  MPLAB Assembler/Linker for PIC32 MCUs User's Guide (DS50001833)  Imagination Technologies Limited :  MD00939-2B-microAptivUP-DTS-01.00
  • 104. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 104 Opções de desenvolvimento  DM320005-5  Multimedia Expansion Board MEB II  4.3” 480x272 Display  maXTouch® 336 PCAP touch controller  Optional 5” 800x480  DM320008  PIC32MZ Embedded Graphics with External DRAM (DA) Starter Kit  DM320010  PIC32MZ Embedded Graphics with Stacked DRAM (DA) Starter Kit
  • 105. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 105 Perguntas?
  • 106. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 106 Obrigado!
  • 107. © 2017 Microchip Technology Incorporated. All Rights Reserved. Class Number + Prefix Slide 107 LEGAL NOTICE SOFTWARE: You may use Microchip software exclusively with Microchip products. Further, use of Microchip software is subject to the copyright notices, disclaimers, and any license terms accompanying such software,whether set forth at the install of eachprogram or posted in a header or textfile. Notwithstanding the above, certain components of software offered by Microchip and 3rd parties may be covered by “open source” software licenses – which include licenses that require that the distributor make the software available in source code format. To the extent required by such open source software licenses, the terms of such license will govern. NOTICE & DISCLAIMER: These materials and accompanying information (including, for example, any software, and references to 3rd party companies and 3rd party websites) are for informational purposes only and provided “AS IS.” Microchip assumes no responsibility for statements made by 3rd party companies, or materials or information that such 3rd parties may provide. MICROCHIP DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING ANY IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY DIRECT OR INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL LOSS, DAMAGE, COST, OR EXPENSE OF ANY KIND RELATED TO THESE MATERIALS OR ACCOMPANYING INFORMATION PROVIDED TO YOU BY MICROCHIP OR OTHER THIRD PARTIES, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE POSSIBLITY OF SUCH DAMAGES OR THE DAMAGES ARE FORESEEABLE. PLEASE BE AWARE THAT IMPLEMENTATION OF INTELLECTUAL PROPERTY PRESENTED HERE MAY REQUIRE A LICENSE FROM THIRD PARTIES. TRADEMARKS: The Microchip name and logo, the Microchip logo, AnyRate, AVR, AVR logo, AVR Freaks, BeaconThings, BitCloud, CryptoMemory, CryptoRF, dsPIC, FlashFlex, flexPWR, Heldo, JukeBlox, KEELOQ, KEELOQ logo, Kleer, LANCheck, LINK MD, maXStylus, maXTouch, MediaLB, megaAVR, MOST, MOST logo, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, PIC32 logo, Prochip Designer, QTouch, RightTouch, SAM-BA, SpyNIC, SST, SST Logo, SuperFlash, tinyAVR, UNI/O, and XMEGA are registered trademarks of Microchip Technology Incorporatedin the U.S.A. and other countries. ClockWorks, The Embedded Control Solutions Company, EtherSynch, Hyper Speed Control, HyperLight Load, IntelliMOS, mTouch, Precision Edge, and Quiet-Wire are registeredtrademarks of Microchip Technology Incorporated in theU.S.A. Adjacent Key Suppression, AKS, Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut, BodyCom, chipKIT, chipKIT logo, CodeGuard, CryptoAuthentication, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, Dynamic Average Matching, DAM, ECAN, EtherGREEN, In-Circuit Serial Programming, ICSP, Inter-Chip Connectivity, JitterBlocker, KleerNet, KleerNet logo, Mindi, MiWi, motorBench, MPASM, MPF, MPLAB Certified logo, MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code Generation, PICDEM, PICDEM.net, PICkit, PICtail, PureSilicon, QMatrix, RightTouch logo, REAL ICE, Ripple Blocker, SAM-ICE, Serial Quad I/O, SMART-I.S., SQI, SuperSwitcher, SuperSwitcher II, Total Endurance, TSHARC, USBCheck, VariSense, ViewSpan, WiperLock, Wireless DNA, and ZENA are trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. Silicon Storage Technology is a registeredtrademark of Microchip Technology Inc. in othercountries. GestIC is a registered trademark of Microchip Technology Germany II GmbH & Co. KG, a subsidiary of Microchip Technology Inc., in other countries. All other trademarks mentionedhereinare property of their respectivecompanies. © 2017,Microchip Technology Incorporated, All Rights Reserved.