Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:k430wqa

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2015:k430wqa [2016/01/17 13:30]
Rostislav Stehno
2015:k430wqa [2016/01/17 21:40] (aktuální)
Rostislav Stehno
Řádek 7: Řádek 7:
 Tento projekt je součást diplomové práce. K řízení je použit MCU ATSAM4E16E který je osazen na vlastní DPS. Zařízení je napájeno z baterie. Toto napětí je impulsními zdroji regulováno na 3.3V  a další potřebné napájení (+5V,-5V a +17V pro podsvícení displeje). Tento projekt je součást diplomové práce. K řízení je použit MCU ATSAM4E16E který je osazen na vlastní DPS. Zařízení je napájeno z baterie. Toto napětí je impulsními zdroji regulováno na 3.3V  a další potřebné napájení (+5V,-5V a +17V pro podsvícení displeje).
  
-{{:​2015:​hwfoto.jpg?​200|}}+{{:​2015:​hwfoto.jpg?​300|}}
  
 Display je je připojen na PORTC. Spodních 24 bitů je určeno pro přenos dat (RGB-888) a zbylé bity jsou použity pro signály HSYNC, VSYNC, DE a DCLK. Display je je připojen na PORTC. Spodních 24 bitů je určeno pro přenos dat (RGB-888) a zbylé bity jsou použity pro signály HSYNC, VSYNC, DE a DCLK.
Řádek 23: Řádek 23:
  
  #define __SAM4E16E__  #define __SAM4E16E__
- #include "​stdbool.h"​ 
  #include "​sam4e16e.h"​  #include "​sam4e16e.h"​
  uint8_t DISPLAY_POLE[420][238];​  uint8_t DISPLAY_POLE[420][238];​
Řádek 63: Řádek 62:
  
  void ZobrazitDISP(void){  void ZobrazitDISP(void){
 + while(REG_TC1_CV2!=0);​
  uint16_t Cykl=0;  uint16_t Cykl=0;
 + Radek=0;
  while(Cykl<​290)  while(Cykl<​290)
  {  {
Řádek 70: Řádek 71:
  PIOC->​PIO_SODR = ((0x1u) << 28);  PIOC->​PIO_SODR = ((0x1u) << 28);
  }  }
- if(Cykl==0x2)+ else if(Cykl==0x2)
  {  {
  PIOC->​PIO_CODR = ((0x1u) << 28);  PIOC->​PIO_CODR = ((0x1u) << 28);
  }  }
- if(Cykl>​=0xB&&​Cykl<​0x11B)+ else  ​if(Cykl>​=11&&​Cykl<​=283)
  {  {
- Radek=0;​ 
  uint16_t t=0;  uint16_t t=0;
- while(t<​0xEF){t++;}+ while(t<​0x30){t++;}
  PIOC->​PIO_SODR = ((0x1u) << 31);   PIOC->​PIO_SODR = ((0x1u) << 31);
- Sloupek=0;​ + if (Radek>​=17&&​Radek<​=255) 
- while(Sloupek<​420) +
- + uint16_t y=0; 
- PIOC->PIO_CODR ​~ENCODE_DISP[DISPLAY_POLE[Sloupek][Radek]];​ + while(y<​0x75){y++;​} 
- PIOC->​PIO_SODR ​ENCODE_DISP[DISPLAY_POLE[Sloupek][Radek]]+ Sloupek=0;​ 
- Sloupek++; + while(Sloupek<​420){ 
 + PIOC->PIO_ODSR ​= ENCODE_DISP[DISPLAY_POLE[Sloupek][Radek-15]]; 
 + asm("​nop"​);​ 
 + asm("​nop"​);​ 
 + asm("​nop"​);​ 
 + asm("​nop"​);​ 
 + Sloupek++;​ 
 + } 
 + y=0
 + while(y<​0x75){y++;
 + }else{ 
 + uint16_t y=0; 
 + while(y<​0x770){y++;​}
  }  }
  Radek++;​  Radek++;​
  PIOC->​PIO_CODR = ((0x1u) << 31);  PIOC->​PIO_CODR = ((0x1u) << 31);
  }  }
- while(REG_TC1_CV2<​=0xC0); + while(REG_TC1_CV2<​=0x168); 
- Cykl++;+ Cykl++;
  }  }
  return;  return;
Řádek 102: Řádek 114:
  PinInit();​  PinInit();​
  TimerInit();​  TimerInit();​
 + REG_WDT_MR |= ((0x1)<<​13);​ //​watchdog disabled !!!!
 + PIOC->​PIO_SODR = ((0x1u) << 30);
  REG_TC1_CCR0 = 0x5;  REG_TC1_CCR0 = 0x5;
  REG_TC1_CCR2 = 0x5;   REG_TC1_CCR2 = 0x5;
Řádek 110: Řádek 124:
  }  }
  
 +**====== Průběhy ======**
  
 +Na těchto obrázcích můžeme vidět reálné naměřené průběhy pomocí logického analyzátoru. Sestupně to jsou: DCLK (6MHz), HSYNC, VSYNC, DE a DATA..
 +
 +{{:​2015:​gr1.png?​300|}}
 +
 +Na prvním obrázku je zobrazen průběh zobrazení celé obrazovky viz VSYNC
 +
 +{{:​2015:​gr2.png?​300|}}
 +
 +Na tomto obrázku vidíme detail průběhu zobrazení jednoho řádku HSYNC 
 +
 +**====== Závěr ======**
 +
 +{{:​2015:​mcu_disp.jpg?​200|}} {{:​2015:​20160117_210903.jpg?​200|}}
 +
 +Na pravém obrázku je zobrazena bílá barva, je zde patrný černý rámeček způsobený omezením RAM kapacity.
 +
 +Jedná se o první zkušenosti s touto architekturou MCU a jejich aplikací na vlastní desce.
 +Z toho vyplívají nedostatky, chyby a problémy které způsobily zpoždění práce a její neuplnost. Během tvorby byly pravděpodobně zničeny 2 mikrokontroléry a jedna DPS. Neuplnost také způsobilo nedostatečné zkušenosti s aplikací ARMů do vlastní desky.
  
2015/k430wqa.1453033814.txt.gz · Poslední úprava: 2016/01/17 13:30 autor: Rostislav Stehno