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


Pridružen-a: Ned 10 Jan 2010 10:55 Prispevkov: 35 Aktiv.: 0.19 Kraj: Novo mesto
|
Objavljeno: Ned Nov 04, 2012 12:07 pm Naslov sporočila: LPC2144 problem |
|
|
Lotil sem se projekta v katerem sem uporabil ARM LPC2144. Do sedaj sem se ukvarjal z AVR-i (Atmel) in je to moj prvi projekt z ARM mikroprocesorjem.
Na internetu sem našel en PP v katerem je razložen najbol osnovni program ki naj bi čip pognal (sicer je uporabljen tam čip LPC2131, vendar to nebi smel bit problem, saj sem preveril registre in je ok). (http://www.google.si/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CCgQFjAB&url=http%3A%2F%2Fwww.cse.cuhk.edu.hk%2F~khwong%2Fwww2%2Fceng2400%2F2400_08_peri1.ppt&ei=YjiWUIjoB-fV4gTe74CQCQ&usg=AFQjCNECgV0UeZjhLLmsVztBcduH4fWqZw&sig2=aEgPDBiAYxE8tUTy0J52gQ)
Programiram v programu CodeBlocks preko RS232 (lpc21isp.exe) vmesnika in program se zapiše brez problemov v čip, vendar se potem nikakor ne odziva, na vseh pinih izmerim 2,14V, napajanje je dobro sfiltrirano in je 3,3V.
Kristal je uporabljen 11.0592Mhz, ker je z tem kristalom RS232 komunikacija najbolša. V programu ne zasledim nikjer nastavitve kristala in mi je čudno, namreč pri AVR se to nastavi tako programsko kot fuse biti...
LEDica je vezana tako:
uC -> 470E -> LED -> Masa.
Napisal sem tudi program ki ne upošteva tipke .. vendar se kljub temu ne premakne nikamor ..
Program:
Koda: |
#include <lpc214x.h>
#define LED 0x00010000 //1.16 led
#define SW1 0x00004000 //0.14 tipka
int main(void){
long tmp;
IODIR1 |= LED;
while(1){
tmp = IOPIN0 & SW1;
if(tmp == 0){
IOSET1 = LED;
}else{
IOSET1 = LED;
}
}
} |
Zahvaljujem se za pomoč!
Lep pozdrav, Klemen
_________________ Lp, Klemen
http://www.klemenbercko.net/ |
|
Nazaj na vrh |
|
 |
jvolk Član



Pridružen-a: Ned 05 Mar 2006 1:14 Prispevkov: 737 Aktiv.: 3.13 Kraj: okolica Divače
|
Objavljeno: Ned Nov 04, 2012 12:23 pm Naslov sporočila: |
|
|
Imaš na P0.14 pull-up upor 22k na 3.3V?
|
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.03 Kraj: Novo mesto
|
Objavljeno: Ned Nov 04, 2012 12:26 pm Naslov sporočila: |
|
|
Prvič, če bi vzel kristal 12MHz, ne bi bilo nič narobe, razen če misliš preko UARTa gonit podatke z neko blazno brzino. UART se da preko množilnikov in delilnikov prav lepo nastavit na poljubno hitrost (a z določeno napako v frekvenci, ki pa je običajno še znotraj toleranc).
Naslednja reč, pri kateri je pomemben kristal je PLL. Spet, z 12MHz kristalom, bi ti bilo lažje preračunati delovno frekvenco (čeprav, s tem ki ga imaš ni nobene ovire, le račun je lažji).
Naslednja reč, ki jo vidim iz tvoje kode je ta, da dvakrat setiraš pin, namesto set/clr kombinacije. Pa še, da bi sploh lahko videl blinkanje led, bi moral naredit: set, delay, clr, delay, saj procesor dela mnogo prehitro, da bi brez delayev videl karkoli.
Naslednja reč je tvoja vezava LEDice na mikrokrmilnik. Sedaj govorim na pamet, vendar običajno pini na LPCjih niso sposobni krmilit LED (izhodni tok iz pina je premajhen). To preveri in prilagodi vezavo, če je to potrebno.
Potem pa še to, kar je omenil jvolk: vzami datasheet od mikrokrmilnika in za vsak pin preveri, če je ob resetu na njem potrebno kakšno določeno stanje (velja za VSE mikrokrmilnike). To je običajno napisano pri opisih pinov.
Priporočam uporabo Keil uVision Skupaj z njim pridejo delujoči primeri (npr. Blinky), s katerimi mimogrede dojameš, kako in kaj s katerim ARM mikrokrmilnikom. Poleg tega imaš na razpolago tudi simulator.
|
|
Nazaj na vrh |
|
 |
xklemen Član


Pridružen-a: Ned 10 Jan 2010 10:55 Prispevkov: 35 Aktiv.: 0.19 Kraj: Novo mesto
|
Objavljeno: Ned Nov 04, 2012 12:33 pm Naslov sporočila: |
|
|
Tipka deluje brezhibno, ker je uporabljena tudi za programiranje za prehod v programski način.
Prilagam sliko iz sheme, odstranil sem samo kondenzator.
Opis: |
|
Velikost datoteke: |
21.87 KB |
Pogledana: |
0 krat |

|
Opis: |
|
Velikost datoteke: |
28.88 KB |
Pogledana: |
0 krat |

|
_________________ Lp, Klemen
http://www.klemenbercko.net/ |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Ned 19 Sep 2004 22:04 Prispevkov: 16777193 Aktiv.: 70655.12
|
Objavljeno: Ned Nov 04, 2012 1:09 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
 |
xklemen Član


Pridružen-a: Ned 10 Jan 2010 10:55 Prispevkov: 35 Aktiv.: 0.19 Kraj: Novo mesto
|
Objavljeno: Ned Nov 04, 2012 2:25 pm Naslov sporočila: |
|
|
Umnik je napisal/a: |
Prvič, če bi vzel kristal 12MHz, ne bi bilo nič narobe, razen če misliš preko UARTa gonit podatke z neko blazno brzino. UART se da preko množilnikov in delilnikov prav lepo nastavit na poljubno hitrost (a z določeno napako v frekvenci, ki pa je običajno še znotraj toleranc).
Naslednja reč, pri kateri je pomemben kristal je PLL. Spet, z 12MHz kristalom, bi ti bilo lažje preračunati delovno frekvenco (čeprav, s tem ki ga imaš ni nobene ovire, le račun je lažji).
Naslednja reč, ki jo vidim iz tvoje kode je ta, da dvakrat setiraš pin, namesto set/clr kombinacije. Pa še, da bi sploh lahko videl blinkanje led, bi moral naredit: set, delay, clr, delay, saj procesor dela mnogo prehitro, da bi brez delayev videl karkoli.
Naslednja reč je tvoja vezava LEDice na mikrokrmilnik. Sedaj govorim na pamet, vendar običajno pini na LPCjih niso sposobni krmilit LED (izhodni tok iz pina je premajhen). To preveri in prilagodi vezavo, če je to potrebno.
Potem pa še to, kar je omenil jvolk: vzami datasheet od mikrokrmilnika in za vsak pin preveri, če je ob resetu na njem potrebno kakšno določeno stanje (velja za VSE mikrokrmilnike). To je običajno napisano pri opisih pinov.
Priporočam uporabo Keil uVision Skupaj z njim pridejo delujoči primeri (npr. Blinky), s katerimi mimogrede dojameš, kako in kaj s katerim ARM mikrokrmilnikom. Poleg tega imaš na razpolago tudi simulator. |
To vezje sem izdelal po shemi od druge ploščice z istim čipom in zadeva njim deluje .. razlika je ravno v kristalu, ker se pri njihovi plošči programera z IAP preko USB pri meni pa preko ISP z RS232, in so mi rekli da naj uporabim ta kristal, ker se pri njih z 12Mhz skor vedno ustavi..
Prosil bi za minimalni program, ki bo na čipu postavil kateri koli pin na logično 1. .. lahko je tudi drug in ne ta z ledico..
Pobrisal sem ta način z tipko, in samo postavil bit na logično 1 .. vendar ni blo odziva.. dvakrat SET je zato ker sem preizkušal program in sem pol pozabil nazaj popravit.
Prilagam sliko PDFja, če zdaj prav gledam je sposoben pin 4mA dati?
Keil uVision imam nasnet, poizkušal sem z blinky vendar je program spisan za drugi ARM .. bom probal spremenit za LPC2144.
Opis: |
|
Velikost datoteke: |
209.69 KB |
Pogledana: |
5 krat |

|
_________________ Lp, Klemen
http://www.klemenbercko.net/ |
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.03 Kraj: Novo mesto
|
Objavljeno: Ned Nov 04, 2012 2:56 pm Naslov sporočila: |
|
|
Pustimo kristal, karkoli vzameš je ok. Poglejmo pin P1.16, kjer imaš LED - ta je lahko po resetu skonfiguriran kot Trace pin (za debug).
Če imaš ob resetu na P1.20 napetost 0V, potem ta pin ne bo deloval. To piše v datasheetu.
Imaš na P0.14 pull-up?
Imaš na P1.31 pull-up? (Če ne uporabljaš JTAGa za debug, potem ga ne rabiš)
Imaš na P1.20 pull-up?
V programu poišči nastavitve za stack (v startup datoteki). User stack nastavi na vsaj 512 bajtov (0x200).
|
|
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: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|