www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

LPC2144 problem

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
xklemen
Član
Član



Pridružen-a: Ned 10 Jan 2010 10:55
Prispevkov: 35
Aktiv.: 0.19
Kraj: Novo mesto

PrispevekObjavljeno: Ned Nov 04, 2012 12:07 pm    Naslov sporočila:  LPC2144 problem Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
jvolk
Član
Član



Pridružen-a: Ned 05 Mar 2006 1:14
Prispevkov: 737
Aktiv.: 3.13
Kraj: okolica Divače

PrispevekObjavljeno: Ned Nov 04, 2012 12:23 pm    Naslov sporočila:   Odgovori s citatom

Imaš na P0.14 pull-up upor 22k na 3.3V?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Umnik
Član
Član



Pridružen-a: Čet 16 Sep 2004 17:52
Prispevkov: 958
Aktiv.: 4.03
Kraj: Novo mesto

PrispevekObjavljeno: Ned Nov 04, 2012 12:26 pm    Naslov sporočila:   Odgovori s citatom

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 Wink 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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
xklemen
Član
Član



Pridružen-a: Ned 10 Jan 2010 10:55
Prispevkov: 35
Aktiv.: 0.19
Kraj: Novo mesto

PrispevekObjavljeno: Ned Nov 04, 2012 12:33 pm    Naslov sporočila:   Odgovori s citatom

Tipka deluje brezhibno, ker je uporabljena tudi za programiranje za prehod v programski način.

Prilagam sliko iz sheme, odstranil sem samo kondenzator.



tipka.JPG
 Opis:
 Velikost datoteke:  21.87 KB
 Pogledana:  0 krat

tipka.JPG



ledice.JPG
 Opis:
 Velikost datoteke:  28.88 KB
 Pogledana:  0 krat

ledice.JPG



_________________
Lp, Klemen
http://www.klemenbercko.net/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
.
Član
Član



Pridružen-a: Ned 19 Sep 2004 22:04
Prispevkov: 16777193
Aktiv.: 70655.18

PrispevekObjavljeno: Ned Nov 04, 2012 1:09 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
xklemen
Član
Član



Pridružen-a: Ned 10 Jan 2010 10:55
Prispevkov: 35
Aktiv.: 0.19
Kraj: Novo mesto

PrispevekObjavljeno: Ned Nov 04, 2012 2:25 pm    Naslov sporočila:   Odgovori s citatom

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 Wink 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.



tok.JPG
 Opis:
 Velikost datoteke:  209.69 KB
 Pogledana:  5 krat

tok.JPG



_________________
Lp, Klemen
http://www.klemenbercko.net/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Umnik
Član
Član



Pridružen-a: Čet 16 Sep 2004 17:52
Prispevkov: 958
Aktiv.: 4.03
Kraj: Novo mesto

PrispevekObjavljeno: Ned Nov 04, 2012 2:56 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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