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:
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:
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
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
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.
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
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!
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?
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.
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
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
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:
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
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 |
Bejelentkezés
Hirdetés |