Fórum témák

» Több friss téma
Fórum » Freescale mikrokontroller
 
Témaindító: Gál Norbert, idő: Nov 20, 2011
Témakörök:
Lapozás: OK   1 / 1
(#) Gál Norbert hozzászólása Nov 20, 2011 /
 
Hello

Egyilyen mikrokontrollerrel ismerkedem de elakadtam az adc konverziónál, a mellékelt sampleban elég sok példa van, le is írom, melyik sor nem világos:

  1. void initPads (void) {
  2. SIU.PCR[2].R = 0x0503;           /* MPC56xxB: Initialize PA[2] as eMIOS[2] input */
  3. SIU.PCR[3].R = 0x0600;           /* MPC56xxB: Initialize PA[3] as eMIOS[3] output */
  4. SIU.PCR[20].R = 0x2000;          /* MPC56xxB: Initialize PB[4] as ANP0 */
  5. SIU.PCR[21].R = 0x2000;          /* MPC56xxB: Initialize PB[5] as ANP1 */
  6. SIU.PCR[22].R = 0x2000;          /* MPC56xxB: Initialize PB[6] as ANP2 */
  7. }

a SIU.PCR[22].R utasítással a chip lábaira lehet hivatkozni,attól függően milyen szám van beirva, adatlap 45.oldal, ha ebbe berakjuk a 0x2000et akkor úgygondolom analóg bemenetté válik, viszont nem értem hogy mitől lesz az egyik ANP0, ANP1 ANP2 ezt csak a pogramkód sorrendje határozza meg? Mert az adatlaban csak annyi van írva a PB[4] PB[5] PB[6] lábakhoz és a többiehz is hogy adc.

Aztán ADC.NCMR[0].R = 0x00000007; ez a sor azt csinálja(adatlap 623. oldal), hogy a 0,1,2 chanel-ről lesz normál konverzió? 0,1,2 es csatorna megfelel az előbb beálított ANP0,ANP1,ANP2nek?

Utánna
  1. ADC.MCR.B.NSTART=1;     /* Trigger normal conversions for ADC0 */
  2. while (ADC.MCR.B.NSTART == 1) {};
  3. adcdata = ADC.CDR[0].B.CDATA;

Az első sor bekapcsolja az átváltást, a ciklussal megvárjuk míg bekapcsol, vagy befejeződik az átalakítás??? Az eredmény berakjuk az adcdata változóba. A CDR[0] alatt értjük a 0. csatornát ami az ANP0 ami a PB[4] láb?

Jóll gondolom ezeket? Ha valakinek lenne erre sok ideje szivesebben elolvasnék egy bővebb leírást ezekről. adatlapsample
(#) idlob válasza Gál Norbert hozzászólására (») Nov 23, 2011 / 2
 
Hali!
1. Biztos nem a kód sorrendje határozza meg, az förtelmes kavarodást okozna. Szerintem valahol a SIUL környékén kell keresni a választ.
2. Igen.
3. A while addig vár amíg be nem fejeződik a konverzió. (NSTART bitet te billented be, és a hardver törli amikor végez.)
4. Igen.
(#) kyrk válasza Gál Norbert hozzászólására (») Nov 26, 2011 / 1
 
Szerintem a labkiosztas hatarozza meg melyik mi lesz. Ha tudod a PCR szamat abbol vissza lehet keresni, hogy az melyik bemeneti lab. Onnan meg kiderul hogy mi van rajta.

Talaltam ilyet:
http://cache.freescale.com/files/32bit/doc/app_note/AN2865.pdf

Ott a ADC mintakod vegen van pszeudokod, es a vegen inicializalja a SIU-t. 175.old.

Van meg egy ilyen:
http://cache.freescale.com/files/32bit/doc/ref_manual/MPC5604BCRM.pdf
Itt talalsz egy tablazatot ami megmondja melyik lab mire lehet jo. 45.oldal
(#) Gál Norbert hozzászólása Feb 9, 2012 /
 
Hello

Megint én vagyok, köszönöm a válaszokat nagyon sokat segítettek.

Most is ugyanezzel a mikrokontrolerrel szenvedek, megszakítást szeretnék generálni, de sehogy se sikerül.
A PE[10] lábon próbálkozok de semmi, van egy csomó példaprogramom azokat próbálom átírni mellékelem ezeket is. Az INTC-SWvector-VLE nevű példaprogramot próbáltam átírni, amelyik sorokat hozzáírtam oda írtam a kommentárba oldalszámot, hogy az adatlap hányadik oldaljáról szedtem a dolgot. Továbbá átírtam valamit a IntcIsrVectors.c nevű fájlban is. Már kezdem kapisgálni a dolgot de még működésbe nem sikerült hoznom.

Adatlap

Tudja valaki hogy mi a különbség a Software vector mode és a Hardware vector mode közt?

Kitudná javítani valaki a programot és elmondani, hogy hol hibáztam vagy legalább valami támpontot adni? Mert sehogy se tudok tovább jutni...

Köszönöm!
(#) Gál Norbert válasza Gál Norbert hozzászólására (») Feb 9, 2012 /
 
Egyszerűbben megfogalmazva: Valaki tudja, hogy lehet ennek a mikrokontrollernek(freescale 5604B) valamelyik lábára 5Vot kapcsolva megszakítást generálni? Megírni ennek a megszakítás rutinját?
(#) Gál Norbert válasza Gál Norbert hozzászólására (») Feb 19, 2012 /
 
Helló

Akkor megválaszolom magamnak a kérdést, hátha a jövőben valaki hasonló problémákkal fog szenvedni. Írtam a freescale supportnak, nagyon jó terméktámogatásuk van korrekten gyorsan válaszoltak, direkt van egy részlegük ami ilyen problémákkal foglalkozik. Csütörtökön este írtam nekik és hétfőre már itt is volt a válasz, kijavították és elküldték a működő példaprogamot. Ideollózom, angolul van reméllem nem baj:
Idézet:

Im sending you updated and working application in the attachment. There was a problem with SIUL configuration setting in your application. SIUL unit was set into peripheral mode 0. There was SIUL canceled in this peripheral mode. You have to use SIUL unit in peripheral mode 1. There is necessary to add the following command lines into the application.

ME.PCTL[68].R = 0x01; /* SIUL: select ME_RUN_PC[1] */
SIU.PCR[74].R = 0x0102; //input buffer enable and pull down enable */


Viszont felmerült egy következő probléma.A megszakítással én egy kerék fordulatszámát szeretném mérni amit visszavezetek a mikrokontrollerbe és lassulás vagy gyorsulás esetén szabályozódik a motorokra adott teljesítmény. A megszakítást egy http://pdf1.alldatasheet.com/datasheet-pdf/view/116007/ETC1/OHN3013U.html szenzor méri a kerékre van erősítve 4darab mágnes, 90fokonként, így minden negyed fordulatnál generálódik egy megszakítás.

Viszont ha beállítok egy konstans motorsebességet és figyelem hogy milyen gyakran szakad meg a program vagyis a kerék 90fokos elfordulásához szükséges időt mérem(ezt belerakom egy tömbe) akkor van egy pár olyan eredmény aminek lennie kell, de van hogy töredéknyi idő alatt(mint kéne) megint megszakad a program vagy fele annyi idő alatt. Szoftverből ezt úgy oldottam meg, hogy csak az azokat veszi figyelembe amik nem térnek el 25%al jobban az előző értéktől, de jó lenne ha nem kéne ilyen trükkhöz folyamodnom.

Az adatlapban levő hall szenzor kapcsolási rajzától annyiban tértem el, hogy a820ohmos ellenállás helyett 1Kohm tettem és nem raktam be a 20pF kondenzátort. Ezek okozhatják ezt?

Rakok fel pár oszcilloszkóp képet ezeket a számítógép hangkártyája segítségével mértem.
(#) valaki2 hozzászólása Júl 30, 2012 /
 
Van valakinek valami tapasztalata a freescale Kinetis k70 -s Lemezvezérlővel kapcsolatban? Letöltöttem rá a FlaxCan mintapéldát, de nem működik rendesen. A CAN-L és CAN-H kimeneteken nincs semmi aktivitás.

Találkozott már valaki ezzel a problémával?

K70
(#) valaki2 hozzászólása Jan 24, 2013 /
 
Sziasztok!

Adott egy Kinetis MK70FN1M0VMJ12 mikrovezérlő MQX operációs rendszerrel. Van egy webserver -s demo az mqx -től. Ez annyit tesz, hogy két nyomógomb állapotát feltölti egy szerverre, ami a demoboard -n fút és ehhez lehet Etherneten keresztül webböngészővel csatlakozni.
A szerver IP címe: 169.254.3.3
A példa leírás azt mondja, hogy az esetek többségében nem kell statikus IP cím a PC részére, de ha dinamikusan nem megy, ezt ajánlja: 169.254.3.4.
Problémám:
Nem érem el a szervert. Céges gépről van szó, kikapcsoltam már a proxy beállítást, tűzfalat is, próbáltam már statikus és dinamikus IP címmel is. Dinamikus esetén kap címet a PC, ami hasonló tartományban van mint a szerveré. Próbáltam a szerver IP címét pingelni, de az se érhető el.

Tud valaki segíteni merre induljak tovább?
A hozzászólás módosítva: Jan 24, 2013
(#) xNorbi hozzászólása Aug 5, 2014 /
 
Helló

Adott egy ilyen processzor: FRDM-KL25Z, adatlap 553.oldal, Az egyik számláló regisztere segítségével (TMP2_CNT - 32bites csak az alsó 16bit használva) szeretném megmérni egy programkód futási idejét, így képzelem el:

  1. int temp,ido;
  2. temp=TMP2_CNT;
  3.  
  4. .
  5. .
  6. .
  7. mérendő programkód;
  8. .
  9. .
  10. .
  11.  
  12. ido=TMP2_CNT-temp;


Viszont amikor az itt levő kód második sorához ér reseteli magát a mikrovezérlő. Gondolom nem így kell elmenteni az értékét tudja esetleg valaki, hogy lehet? köszi
(#) Peti.Janka hozzászólása Aug 31, 2022 /
 
Sziasztok,

Át kellene raknom egy MPC5607B processzorról a programot egy másik ugyan olyan processzorra.
Van egy Freescale NXP OSJTAG programozóm. Van itt valaki aki tudna segíteni program használatában?

Előr is köszönöm.

Peti
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem