ARM prvi koraki

programski jeziki in programiranje

Moderator: tilz0R

Re: ARM prvi koraki

OdgovorNapisal/-a s54mtb » 30 Jan 2017, 00:56

Registri za hitrejši dostop do gpio se začnejo s črko "F"... FIOPIN, FIOSET, FIOCLR, .... itd. Poglavje 8
> http://www.nxp.com/documents/user_manual/UM10120.pdf
s54mtb
 
Prispevkov: 7887
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1012 krat
Prejel zahvalo: 2521 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 46

Re: ARM prvi koraki

OdgovorNapisal/-a zanka » 30 Jan 2017, 01:06

In kakšna je utemeljitev, da ima počasne in hitre?
Uporabniški avatar
zanka
 
Prispevkov: 1793
Pridružen: 17 Mar 2016, 01:16
Kraj: Krško
Zahvalil se je: 93 krat
Prejel zahvalo: 153 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 29

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 30 Jan 2017, 10:21

Upoštevaj tudi tole navedbo na strani 81 UM120:
Table 66. GPIO register map (local bus accessible registers - enhanced GPIO features on LPC213x/01 only)


Torej, Fast GPIO ima samo različica LPC2138/01. Razlika v hitrosti je 3,5x!
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 30 Jan 2017, 10:58

S53DZ je napisal/-a:Torej, Fast GPIO ima samo različica LPC2138/01. Razlika v hitrosti je 3,5x!
Imam ta procesor. Bom testiral dalje.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 00:31

Ko le utegnem se spravim nad tole zadevo. Naredil sem tole:

Koda: Izberi vse
int main (void) {
  unsigned int n;

  IO1DIR  = 0x00FF0000;                     /* P1.16..23 defined as Outputs  */
  AD0CR   = 0x00200402;                     /* Setup A/D: 10-bit AIN0 @ 3MHz */
  PINSEL1 = 0x01080000;                     /* enable DAC */

//  init_serial();                            /* Initialize Serial Interface   *///
//  init_timer ();

   while (1) {
//      IOSET1 = 0x00FF0000;      
//      IOCLR1 = 0x00FF0000;         
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
   }
}

Impulze dobim - Program dela, Žal je frekvenca povsem enaka kot z načinom, ki je zakomentiran. Zda jpa res ne vem več, kako bi zadevo pohitril.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a s54mtb » 31 Jan 2017, 00:48

Preveri VPBDIV. Ali je PCLK=CCLK ?
Si v SCS postavil bit GPIO1M na 1 (High speed GPIO enable) ?
s54mtb
 
Prispevkov: 7887
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1012 krat
Prejel zahvalo: 2521 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 46

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 00:56

s54mtb je napisal/-a:Preveri VPBDIV. Ali je PCLK=CCLK ?
Si v SCS postavil bit GPIO1M na 1 (High speed GPIO enable) ?
Ojoj, se opravičujem za zavajanje,... sem imel target na simulator in sem zato napolnil staro kodo - jasno, da ni bilo spremembe.

s54mtb, bom pregledal tudi to.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 01:05

s54mtb je napisal/-a:Preveri VPBDIV. Ali je PCLK=CCLK ?
Si v SCS postavil bit GPIO1M na 1 (High speed GPIO enable) ?

PCLK= CCLK/4

Pri čemer je CCLK 60MHz. žal tega ne morem izmeriti, ampak moram zaupati, da je prav nastavljeno v setup.s datoteki.
scs sem postavil kot je v priloženem programu.
Koda: Izberi vse
int main (void) {
  unsigned int n;

  IO1DIR  = 0x00FF0000;                     /* P1.16..23 defined as Outputs  */
  AD0CR   = 0x00200402;                     /* Setup A/D: 10-bit AIN0 @ 3MHz */
  PINSEL1 = 0x01080000;                     /* enable DAC */
   SCS =     0x00000002;                     // enable fast gpio

//  init_serial();                            /* Initialize Serial Interface   *///
//  init_timer ();

   while (1) {
//      IOSET1 = 0x00FF0000;      
//      IOCLR1 = 0x00FF0000;         
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
   }
}

Rezultat mi je pa res čuden. Na izhodu ni impulzov, dobim pa visok nivo.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a luftek » 31 Jan 2017, 01:23

Kakšno frekvenco si dobil v prejšnjih primerih?
Če daš
FIO1PIN = 0x00FF0000;
FIO1PIN = 0x00000000;
...
večkrat zaporedno boš dobil bolj realne rezultate.
While zanka vzame nekaj ciklov
Zadnjič spremenil luftek, dne 31 Jan 2017, 01:35, skupaj popravljeno 1 krat.
luftek
 
Prispevkov: 81
Pridružen: 22 Avg 2015, 15:31
Kraj: Velenje / Sl.Konjice
Zahvalil se je: 16 krat
Prejel zahvalo: 5 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 1

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 01:32

To vem, sem z običajnimi GPIO to že preizkušal. Je nekaj razlike, a če jih dam recimo 3 pare se naspram 8 parom ne spremeni več prav veliko.

Trenuten problem, ki ga imam, je to, da mi Fast način ne deluje. Ker preklopov na pinu sploh ne dobim (glej zadnji program).

Kaj moram, razen SCS še nastaviti ?
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 01:34

Glede na razlike, ki so ravno pri fast GPIO sem pri projektu preveril in na novo nastavil LPC2138/01. Prevedel projekt ponovno in .... mi še vedno ne dela. Na izhodu dobim le visok nivo.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a s54mtb » 31 Jan 2017, 01:55

Pa še nekaj je... iz RAMa se hitreje izvaja kot iz flash-a
s54mtb
 
Prispevkov: 7887
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1012 krat
Prejel zahvalo: 2521 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 46

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 03:20

s54mtb je napisal/-a:Pa še nekaj je... iz RAMa se hitreje izvaja kot iz flash-a

Vzel na znanje, čeprav ne poznam mehanizma kako naterati čudo, da dela z rama. No moj osnovni problem v tem trenutku je, da sploh ne dela s Fast GPIO.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 31 Jan 2017, 08:20

Postavi še FIODIR za port 1, da bodo pini izhodi.
Po resetu so namreč to GPIO vhodi.
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 10:29

S53DZ je napisal/-a:Postavi še FIODIR za port 1, da bodo pini izhodi.
Po resetu so namreč to GPIO vhodi.
Ah ja, sedaj dela.
Torej ima zadeva kompletno dvojen nabor registrov za I/O pine. Mislil sem da je samo način dostopa do istega registra dvojen.
Zdaj to razumem. Trenutno dobim na pinih 3,333333MHz, kar je še vedno malo. Glede na to, da nekaj časa vzame zase tudi zanka sama, bom ukaze za toglanje pinov razmnožil, pa napišem nov rezultat.

Mi je pa popolnoma nerazumljivo zakaj ima HW dva nabora registrov ? Je to mogoče zgodovina razvoja tega čipa ?
Bi se iz datasheeta dalo tudi tako razumeti.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 10:33

Koda: Izberi vse
int main (void) {
//  unsigned int n;

// IO1DIR  = 0x00FF0000;                     /* P1.16..23 defined as Outputs  */
  FIO1DIR  = 0x00FF0000;                     /* P1.16..23 defined as Outputs  */
  AD0CR   = 0x00200402;                     /* Setup A/D: 10-bit AIN0 @ 3MHz */
  PINSEL1 = 0x01080000;                     /* enable DAC */
   SCS =     0x00000002;                     // enable fast gpio

//  init_serial();                            /* Initialize Serial Interface   *///
//  init_timer ();

   while (1) {
//      IOSET1 = 0x00FF0000;      
//      IOCLR1 = 0x00FF0000;         
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
         FIO1PIN = 0x00FF0000;
         FIO1PIN = 0x00000000;
   }
}   

Tole pa na izhodih da 10MHz. To pa je že v razredu pričakovanega.

Imajo tudi ostali LPC-ji tale hec z dvema naboroma IO dostopa, ali je to posebnost LPC213x serije ?
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 10:44

Zanimivo, da pri tej frekvenci zelene LED nekaj malega celo svetijo. Moram it po kakšno fotodiodo, da vidim, če je tudi svetloba dejansko modulirana.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 31 Jan 2017, 10:58

Legacy GPIO je zaradi kompatibilnosti za nazaj.

Na voljo imaš tudi opcijo FIOSET in FIOCLR. Nikoli nisem poizkusil, če je v hitrosti kaj razlike. Ne bi smelo biti.
Način uporabe je tak, da konstanta za določitev pinov ostane enaka.

FIOSET = 0x00FF0000; // ali 0xff<<16
FIOCLR = 0x00FF0000;

Poleg tega lahko predhodno maskiraš bite s FIOMASK = 0xff00ffff.
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a Kroko » 31 Jan 2017, 11:06

VolkD je napisal/-a:Vzel na znanje, čeprav ne poznam mehanizma kako naterati čudo, da dela z rama.


Če imaš Keil potem na datoteki main.c klikni "Options" in izberi, kje naj bo koda te datoteke.
ram.png
(zgornja slika je za drug MCU zato so naslovi drugi)

Ali je kaj hitreje?
http://www.planet-cnc.comKroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 3901
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 614 krat
Prejel zahvalo: 1252 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 230

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 12:02

Najprej sem nastavil na RAM1(<range unscpecified>) ..... (če nekaj ne veš kako mora biti, potem raje ne specificiraš in prepustiš to drugim)

Pa ni šlo tako. Compiler pravi, da zaradi tega ne bo zgeneriral kode :(

Pa sem nastavil na IRAM[0x40000000-0x40007FFF], ker je to edina ponujena možnost, ki definira naslove RAM-a.

Glede na rezultate, frekvenca na pinih je ponovno 10MHz, bi lahko dekel, da je ta nastavitev enaka nastavitvi <default>.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a Kroko » 31 Jan 2017, 13:18

Po <default> sigurno ni RAM. Mogoče poskusiš kaj v temu smislu in primerjaš hitrosti.

Koda: Izberi vse
volatile int counter;

while(1)
{
  FIOSET ...
  for (counter=0; counter<100000; counter++);
  FIOCLR ..
  for (counter=0; counter<100000; counter++);
}
http://www.planet-cnc.comKroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 3901
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 614 krat
Prejel zahvalo: 1252 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 230

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 13:46

Aha, misliš, da se sam set in clr ne bosta dovolj poznala v razliki.
Ok bom tudi to preizkusil.

So pa tole eni lepših prikazov zakaj se časovnih zakasnitev ne sme delat s pomočjo ciklov v kodi ampak s timerjem.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a gumby » 31 Jan 2017, 16:31

To smo ugotovili že pred 100 leti pri tetrisu in turbo tipki :mrgreen:
my brain hurts
Uporabniški avatar
gumby
 
Prispevkov: 2010
Pridružen: 14 Jan 2015, 19:49
Kraj: Lendava
Zahvalil se je: 90 krat
Prejel zahvalo: 434 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 49

Re: ARM prvi koraki

OdgovorNapisal/-a Kroko » 31 Jan 2017, 17:23

Ko že govorimo o delayu.

1. Da se tega ne dela s pomočjo ciklov je že v splošnem res, ni pa to absolutna resnica. Velikokrat se za zakasnitve uporablja cikle. Predvsem za kakšne zelo kratke čase, ki jih zahteva hardrware ob inicializaciji ali pa tudi tako. Tipičen primer je zakasnitev potrebna po pisanju v flash.

2. Veliko ljudi si pod timer predstavlja tudi prekinitve (interrupt). Zakasnitve se dela s timerjem brez prekinitev. Na splošno se prekinitve uporablja zelo po pameti (samo kjer je res potrebno).

3. State pattern je preprosto a zelo učinkovito pomagalo.
http://www.adamtornhill.com/Patterns%20 ... 0STATE.pdf
http://www.planet-cnc.comKroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 3901
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 614 krat
Prejel zahvalo: 1252 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 230

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 31 Jan 2017, 17:41

OT:

Hm, včasih pogrešam čase izpred 100 let, ko se je zakasnitve še dalo predvideti in enostavno izračunati,
zdaj pa multi-core, multi-tasking, multi-threading, multi-pipe-lining, ... (Haha.) Aja, pa ARM Cortex(R).

Lp, Bojan
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a s54mtb » 31 Jan 2017, 18:09

Kroko je napisal/-a:3. State pattern je preprosto a zelo učinkovito pomagalo.
http://www.adamtornhill.com/Patterns%20 ... 0STATE.pdf


Aha, ker sem samouk, niti nisem vedel, da se temu tako reče. Se pa poskušam držat take strukture v čimveč primerih.
s54mtb
 
Prispevkov: 7887
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1012 krat
Prejel zahvalo: 2521 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 46

Re: ARM prvi koraki

OdgovorNapisal/-a s54mtb » 31 Jan 2017, 18:20

VolkD je napisal/-a:
S53DZ je napisal/-a:Postavi še FIODIR za port 1, da bodo pini izhodi.
Po resetu so namreč to GPIO vhodi.
Ah ja, sedaj dela.
Torej ima zadeva kompletno dvojen nabor registrov za I/O pine. Mislil sem da je samo način dostopa do istega registra dvojen.
Zdaj to razumem. Trenutno dobim na pinih 3,333333MHz, kar je še vedno malo. Glede na to, da nekaj časa vzame zase tudi zanka sama, bom ukaze za toglanje pinov razmnožil, pa napišem nov rezultat.

Mi je pa popolnoma nerazumljivo zakaj ima HW dva nabora registrov ? Je to mogoče zgodovina razvoja tega čipa ?
Bi se iz datasheeta dalo tudi tako razumeti.



Če ti je dovolj en pin, lahko uporabiš SPI CLK, ki tiktaka na VPB / SPCCR
s54mtb
 
Prispevkov: 7887
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1012 krat
Prejel zahvalo: 2521 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 46

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 18:24

s54mtb je napisal/-a:Če ti je dovolj en pin, lahko uporabiš SPI CLK, ki tiktaka na VPB / SPCCR
:o Kako ? Tega še nisem vzel.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 31 Jan 2017, 19:12

Ja, ampak, če hočeš stalni CLK na master SPI-ju, moraš neprestano ponavljati oddajo.
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 19:33

S53DZ je napisal/-a:Ja, ampak, če hočeš stalni CLK na master SPI-ju, moraš neprestano ponavljati oddajo.
Aha, ne meni to ni uporabno. Vsaj ne za namene kakršne imam.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 31 Jan 2017, 20:45

Kroko je napisal/-a:Po <default> sigurno ni RAM. Mogoče poskusiš kaj v temu smislu in primerjaš hitrosti.


Nerodna reč. V obeh primerih je meni odziv enak. Torej, ko nastavim, da dela iz rama in ko nastavim, da dela defailt dobim frekvenco na pinih 119Hz. No pa eno nulo sem stran vzel in je program tak:
Koda: Izberi vse
   while (1) {
         
         FIO1SET = 0x00FF0000;
         for (counter=0; counter<10000; counter++);
         FIO1CLR = 0x00FF0000;
         for (counter=0; counter<10000; counter++);
   }
}   


Mogoče nastavljam na napačnem mestu ?
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 01 Feb 2017, 01:41

VolkD,

preberi prosim UM10139, ki je v prilogi, na strani 94.

Tam piše sicer za LPC2148, ki pa je glede tega enak, kot LPC2138/01.
Govori o razliki hitrosti GPIO in FGPIO in še, kaj je treba nastaviti za največjo hitrost na pinih:
- MAM na maksimum in
- PCLK = CCLK.

73 Bojan
Priponke
user_manual_lpc214x.pdf
(7.69 MiB) Prenešeno 12 krat
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 01 Feb 2017, 23:05

Čeprav tega ne uporabljam nikjer, me je vseeno zanimalo, zato sem hitrost ARM Fast GPIO poskusil še jaz.

ARM = LPC2138
zbirnik = gccarm
Xtal = 16MHz
CCLK = 16x4=64MHz
F-GPIO PORT1 = enable
izhodni pin = P1.18
PCLK = CCLK/2 (ni pomembno)
MAM = max za to frekvenco CCLK

zanka:

Koda: Izberi vse
   LDR R0, =0x00040000 @ pin P1.18 = maska
ZANKAF:
   LDR R1, =0x3FFFC038   @ FIO1SET
   STR R0, [R1]
   LDR R1, =0x3FFFC03C   @ FIO1CLR
   STR R0, [R1]
   B ZANKAF

Ta koda da signal frekvence 4,925MHz.

Koda: Izberi vse
   LDR R0, =0x00040000 @ pin P1.18 = maska
   LDR R1, =0x3FFFC038   @ FIO1SET
   LDR R2, =0x3FFFC03C   @ FIO1CLR
ZANKAF:
   STR R0, [R1]
   STR R0, [R2]
   STR R0, [R1]
   STR R0, [R2]
   STR R0, [R1]
   STR R0, [R2]
   STR R0, [R1]
   STR R0, [R2]
   STR R0, [R1]
   STR R0, [R2]
   STR R0, [R1]
   STR R0, [R2]
   B ZANKAF

Ta zanka s šestimi preklopi pina da rekvenco signala na P1.18 = 10,3265 MHz
20 preklopov pina v zanki pa da frekvenco 13,9823MHz.

73 Bojan S53DZ
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 01 Feb 2017, 23:09

S53DZ je napisal/-a:Čeprav tega ne uporabljam nikjer, me je vseeno zanimalo, zato sem hitrost ARM Fast GPIO poskusil še jaz.
Malo si navil jedro :)
Me zanima, če se zaradi tega kaj bolj greje, če ga dlje časa pustiš.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 01 Feb 2017, 23:19

Stare izvedbe ne bi preveč navijal, sicer ga lahko ne zbudiš več v komunikacijo. LPC2148 ali LPC2387 pa že.
V EATNC na primer lepo tečejo na 73.728MHz (5 x XTAL).
Poraba pa seveda pridno narašča s hitrostjo.

73 Bojan S53DZ
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 01 Feb 2017, 23:29

S53DZ je napisal/-a:Poraba pa seveda pridno narašča s hitrostjo.
Razumem, torej se temu primerno tudi greje.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Re: ARM prvi koraki

OdgovorNapisal/-a S53DZ » 02 Feb 2017, 19:29

Zgleda, da se novinec v ARM svetu VolkD ne ukvarja več z njimi, sicer bi porabo do sedaj že sam izmeril. Morda je "skuril" mA-meter? Hi.
Skratka, dokler ne uporabim te ARM platice za drugo rabo, sem izmeril še porabo glede na takt in Slow/Fast port.

LPC2138, LCD2x16, FT232RL, +5V
100 preklopov pina P1.18 v zanki

CCLK = 3x16MHz=48MHz
Fast: 11,651462MHz, 73mA
Slow: 2,391342MHz, 61mA

CCLK = 4x16MHz=64MHz
Fast: 15,535286MHz, 84mA
Slow: 3,188456MHz, 69mA

73 Bojan
Uporabniški avatar
S53DZ
 
Prispevkov: 1103
Pridružen: 18 Jan 2015, 10:58
Kraj: Ljubljana
Zahvalil se je: 185 krat
Prejel zahvalo: 376 krat
Uporabnika povabil: S52O
Število neizkoriščenih povabil: 40

Re: ARM prvi koraki

OdgovorNapisal/-a VolkD » 02 Feb 2017, 19:38

S53DZ je napisal/-a:Zgleda, da se novinec v ARM svetu VolkD ne ukvarja več z njimi, sicer bi porabo do sedaj že sam izmeril. Morda je "skuril" mA-meter? Hi.
Še še, a je na pavzi. Glede na to koliko časa nam je ZRS namenila za pripravo predavanja za RIS, mi sedaj za to ne ostane več časa. Takoj v nedeljo bom pa spet aktiven na tem področju.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 26454
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 4873 krat
Prejel zahvalo: 3498 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 254

Prejšnja

Vrni se na Software

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost