 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Carko Član


Pridružen-a: Pet 15 Apr 2011 1:40 Prispevkov: 451 Aktiv.: 2.61 Kraj: KP
|
Objavljeno: Pet Mar 23, 2012 12:48 pm Naslov sporočila: uLPC1000 in LPC1768 - kako usposobit zadevo? |
|
|
Takole,
nabavil sem platico uLPC1000 in LPC1768, ga prilotal gor in prilotal še 24MHz kristal.
Na mikrokontrolerček se prek Flash Magica lahko lepo povežem (prek COM0) in nanj naložim (in pobrišem, preverim) program.
Do tukaj je vse OK, mi pa nikakor ne uspe prižgati LEDic, ki so na plati.
V Keil uVision 4 sem odprl priloženi projekt Blinky in kodo v glavnem modulu zamenjal s tole:
Koda: |
#include <stdio.h>
#include "LPC17xx.H" /* LPC17xx definitions */
volatile uint32_t temp;
void _delay(uint32_t del);
/*----------------------------------------------------------------------------
Main Program
*----------------------------------------------------------------------------*/
int main (void) {
LPC_SC->PCONP |= ( 1 << 15 ); // power up GPIO
LPC_GPIO1->FIODIR |= 1 << 17; // puts P1.17 into output mode.
while(1)
{
LPC_GPIO1->FIOPIN |= 1 << 17; // make P1.17 high
_delay( 1 << 24 );
LPC_GPIO1->FIOPIN &= ~( 1 << 17 ); // make P1.17 low
_delay( 1 << 24 );
}
return 0;
}
void _delay(uint32_t del)
{
uint32_t i;
for(i=0;i<del;i++)
temp = i;
}
|
V nastavitvah Target sem izbral LPC1768, nastavil Xtal na 24 in omogočil generiranje .hex datoteke. Nato sem ustvarjeno hex datoteko prek Flash Magica naložil na mcu in ga resetiral, vendar je ledica (oz ledice, probal sem na več pinih) mrtva.
Kakšna ideja, kje sem zamočil? |
|
Nazaj na vrh |
|
 |
S53DZ Član



Pridružen-a: Čet 28 Apr 2011 9:27 Prispevkov: 951 Aktiv.: 5.51 Kraj: Ljubljana
|
Objavljeno: Pet Mar 23, 2012 1:28 pm Naslov sporočila: |
|
|
Seveda pri tem nisi pozabil na jumper LED na plati. |
|
Nazaj na vrh |
|
 |
Carko Član


Pridružen-a: Pet 15 Apr 2011 1:40 Prispevkov: 451 Aktiv.: 2.61 Kraj: KP
|
Objavljeno: Pet Mar 23, 2012 1:30 pm Naslov sporočila: |
|
|
Nisem pozabil, seveda. |
|
Nazaj na vrh |
|
 |
S53DZ Član



Pridružen-a: Čet 28 Apr 2011 9:27 Prispevkov: 951 Aktiv.: 5.51 Kraj: Ljubljana
|
Objavljeno: Pet Mar 23, 2012 1:36 pm Naslov sporočila: |
|
|
In še, po restartu je za boot loader uporabljen notranji clk 4MHz in ne zunanji xtal.
EDIT: Šele s programom nato uporabiš PLL nastavitev za višje clk frekvence. |
|
Nazaj na vrh |
|
 |
tozir Član

Pridružen-a: Pon 17 Mar 2008 19:10 Prispevkov: 187 Aktiv.: 0.89 Kraj: Celje
|
|
Nazaj na vrh |
|
 |
Carko Član


Pridružen-a: Pet 15 Apr 2011 1:40 Prispevkov: 451 Aktiv.: 2.61 Kraj: KP
|
Objavljeno: Pet Mar 23, 2012 8:25 pm Naslov sporočila: |
|
|
Glede clocka sem sumil da je tako... Ampak to, da teče na internem oscilatorju, na laufanje programa verjetno ne bi smelo vplivati?
S FIOSET in FIOCLR sem tudi poizkušal, vendar je enako. |
|
Nazaj na vrh |
|
 |
S53DZ Član



Pridružen-a: Čet 28 Apr 2011 9:27 Prispevkov: 951 Aktiv.: 5.51 Kraj: Ljubljana
|
Objavljeno: Sob Mar 24, 2012 12:19 am Naslov sporočila: |
|
|
Carko je napisal/a: |
Glede clocka sem sumil da je tako... Ampak to, da teče na internem oscilatorju, na laufanje programa verjetno ne bi smelo vplivati?
|
To ne, ampak pred loadanjem moraš 4MHz nastaviti tudi v Flash Magicu. V programu pa vpliva samo na delay zanko.
Na začetku flasha mora biti tabela interruptov in prvi ukaz je reset vektor. Ta mora kazati na začetek tvoje assem. kode. Ponavadi je prvi ukaz za postavitev stack pointerja na RAM. Poleg tega je tam tudi nastavitev PLL za CLK. Ker tega ne vidim v C kodi. Upam, da je to ostalo v assemblerskem delu programa Blinky. |
|
Nazaj na vrh |
|
 |
Carko Član


Pridružen-a: Pet 15 Apr 2011 1:40 Prispevkov: 451 Aktiv.: 2.61 Kraj: KP
|
Objavljeno: Sob Mar 24, 2012 1:41 am Naslov sporočila: |
|
|
Rešil (s pomočjo jvolka).
Težava je bila (kar sem tudi pričakoval) v clocku - sem zmotno mislil, da se datoteka system_LPC17xx.c (je v sample projektu) uporabi samo, če ročno kličeš metodi SystemCoreClockUpdate in SystemInit (tukaj se ure nastavljajo), pa se očitno uporabi v vsakem primeru in zadeva ni laufala z internim 4MHz oscilatorjem.
Sample je bil narjen za 12MHz xtal, jaz pa uporabljam 24MHz - PLL je potem hotel na 800MHz...
Ledica sedaj utripa veselo ko radio  |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 5 dni
Powered by phpBB © 2001, 2005 phpBB Group
|