Fórum témák
» Több friss téma |
Hello!
Ez Idézet: szigoruan betartandó? Még nem használtam ennyi tápfeszes PICet, de most egy olyannal kell dolgoznom aminek van 3-4 táplába, és szeretném a NYÁKot minél kevésbé bonyolítani. „- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!”
Szó szerint kell érteni. Az adatlapban olvashatók a részletek: Minden táp - föld párhoz szűrőkondenzátor is kell.
A hozzászólás módosítva: Okt 18, 2013
Én a dugdosós próbapanelen sosem szoktam bekötni, csak egyet. S még kondit se teszek rá, Pickit2-ről kapja a tápot. Még nem volt vele gondom. Ezt csak azért írom, hogy így is működik, nem azért hogy nem kell bekötni. De amúgy kíváncsi lennék a miértjére, hogy miért kell bekötni mindet.
Ground bounce: A kapcsolási áramok által okozott referencia pont eltolódás. Egy kontrollerben többször tíz, többször száz lábon változhat a jel egyszerre, közel egyidőben. Vannak olyanok is, ahol jelentős áram kapcsolható ki vagy be (port lábak), egyszerre 8, 16, 32 (64). A egyidőben váltó meghajtók tranziens árama a táp ill a föld lábon keresztül folyik. Ha a föld / táp láb impedanciája nem elég alacsony, akkor a kontroller belső referencia pontja és a külső referencia pont feszültsége között akkora eltérés keletkezhet, ami hibás működéshez vezethet.
1uH -s hozzávezetés 1mA áram 10 ns alatti kikapcsolása 1V feszültséget indukál. Egy TTL LS kapu zajtartaléka 0.3V (ULin max = 0.8V, komparálás kb. 1.1V -nál). Egy 120 MHz -vel menő 16 bites dsPIC mind a 16 portbitjén 1..1 mA -t kapcsol ki egyszerre 1ns alatt: 18.75 nH föld vezeték induktivitás már hibás működéshez vezet (ha csak a port áramokat számoltuk). A hozzászólás módosítva: Okt 18, 2013
húú, köszönöm a kimerítő választ!
![]() ![]() A hozzászólás módosítva: Okt 18, 2013
Újabb kérdésem lenne, általam eddig szintén nem használt funkcióval kapcsolatban, mégpedig a PPS.Ha én digitális I/O portokat akarok használni egy tetszőlegesen társított lábon a PPs által, és szeretném az inputokat IOC generálásra is használni, akkor el tudok-e követni olyan hibát, hogy egy portot olyan lábra programozok ami nem tudja az IOC-t?
Nem igazán tudtam még kibogarászni ezt a részt, mert az IOC CN- csatornákkhoz van rendelve, a PPS meg RP csatornákhoz. Kérdés, hogy ezek össze vannak-e kapcsolva. Nem tudom érthető voltam-e. pl. Vegyünk egyetlen bitet az egyszerűség kedvéért. Legyen mondjuk PortA bit0. Ezen bitem egy input. A PPS-ben ezt mondjuk a 10-es kivezetésre programozom.Ha a 10-es kivezetés alapból nem tudja az IOC-t akkor átprogramozás után fogja e tudni, vagy sem, ha a PortA bit0 az eredeti helyén tudta.
Nos esetemben (PIC24FJ256GB206) csak az RF7-en nincs IOC a digitális portokon, az viszont nincs rajta a remap táblán szóval ide gondolom nem tudom áthelyezni egyik funkciót sem, vagy csak ez nem helyezhető át? És elképzelhető, hogy van PIC amelynél előfordulhat?
Amennyire én tudom, a CN funkció nem helyezhető át.
Értem. Akkor valamilyen szinten jól sejtettem, hogy a "fizikai" kialakítástól függ és éppen ezért nem multiplexelhető.
Üdv! Megépítettem a Watt-féle égetőt, de valamiért nem működik. Viszont van más megoldás is. Ilyen égetőt szeretnék venni: http://www.ebay.com/itm/400552000101?ssPageName=STRK:MEWAX:IT&_....l2649
Légyszi mondjátok el a véleményeteket róla.
Olyat szeressél inkább, amit az MPLAB vagy az MPLAB X támogat!
Legfeljebb annyival, hogy az új típusú PIC-eket jó eséllyel implementálják rá, nem áll meg a 18-as sorozatnál, nem csak kb. 54 féle 18-ast ismer, lehet vele debuggolni, soros portot nézegetni és HP41 kolléga révén majd még sok mindent ... ! --> PK2 !
A hozzászólás módosítva: Okt 19, 2013
Sziasztok!
Csináltam PIC16F505-el egy led villogtató áramkört. Az RB1 lábán adja a lednek a jelet. Elvileg 2-3 másodpercenként kéne váltania a led állapotát. Ennek ellenére kb. 55 másodpercenként változik a led állapota. Belső oszcillátort használok, ami elvileg 4MHz-en jár, így az utasítás végrehajtás 1MHz-el megy (kivétel elágazó utasítások). END
Ez a kódom. A var rutinnak kb 2-3 millió ciklus alatt kéne lefutnia nem? Akkor nekem miért vár kb. 55 másodpercet? Köszi előre is! ![]()
A beírt számot ( 100 ) Te 10-es számrendszerben gondoltad, a fordítód meg 16-osnak veszi ! Írd át vagy az alapértelmezett számrendszert vagy a számot
![]() A hozzászólás módosítva: Okt 20, 2013
Amint tudom, kipróbálom.
![]() De akkor minek van a 0x... formájú leírás? Azt hittem, csak azt veszi hexa számnak. Köszi a segítséget! ![]() Idézet: Azt biztosan annak veszi. A 0x... nélküli számokat pedig az alapértelmezett számrendszer szerint értelmezi az assembler. „Azt hittem, csak azt veszi hexa számnak.” Idézet: Így van és az MPLAB alapértelmezett számrendszere a beépített asm programozásnál 16-os ! „Azt biztosan annak veszi. A 0x... nélküli számokat pedig az alapértelmezett számrendszer szerint értelmezi az assembler.”
Valóban, még warningot is dobott.
![]() És ezt hol lehet átállítani? Mert az Edit/properties/tooltips fülön a Default type format résznél a Use watch preferences helyett átállítottam decimal-ra, de még mindig ugyanazt a warningot dobja. Én meg nem akarok programozás közben állandóan hexában számolni, ha nem muszáj. Köszi.
Célszerűen a program elején elhelyezett direktívával:
(A fórummotor nem engedi, de "bekezdéssel" kell írni, szóval nem a sor legelejére...) A hozzászólás módosítva: Okt 20, 2013
Igen, ez segített. Köszi.
Újabb kérdésem lenne:
Ezt a kódot írtam. 100 db nop parancs van egymás alatt. Ennek elvileg kicsit több, mint 1'000'000 ciklusig kéne tartania nem? Az adatlap szerint a kalibrálás után a belső órajel elég pontos. Viszont most jól láthatóan gyorsabban villog, mint ahogy az órámon a másodpercek változnak. Az órám meg elég pontos. ![]() Ha kiszedem az elején a kalibrálás parancsot, akkor meg egy kicsit lassabb az órámnál. Ezek szerint mégis ennyire megbízhatatlan a belső oszcillátor (természetesen tudom, hogy nagy pontosságot nem lehet elvárni tőle, de ennél azért jobbra számítottam), vagy én számoltam el valamit és nem kéne több, mint egymillió ciklusig tartania?
Szimuláld le, én is úgy vettem észre a hibádat! 100 NOP-ot nem szokás írni, használd a ciklust, mint a késleltetésnél!
Az asm alapértelmezett számrendszerét átállíthatod a projekt ablak forrásfájlára (*.asm ![]() A hozzászólás módosítva: Okt 20, 2013
Szerintem az óra ennyire pontatlan.
![]() Természetesen nem használnék 100 NOP-ot normálesetben, csak a pontosítás végett tettem. A jelenlegi alkalmazásban volt rá elég hely a memóriában. ![]() Köszi a segítséget. ![]()
Pontosításra csak annyi NOP kell, amit nem tudsz megvalósítani a ciklussal, azaz 2-3 db
![]()
Tudom, ki lehetett volna számolni pontosan is, hogy mekkora legyen a ciklusváltozó száz ciklushoz, de lusta voltam.
![]()
Nem igazán szoktam számolni, lehet szimulálni is!
Annyira nem tudom használni a szimulátort. Lehet ilyet, hogy valami hány ciklus?
Most kezdtem bele a PIC assemblybe (c-ben sem sokat PIC-eztem), és nem igazán ismerem még a szimulátort. De próbálok ismerkedni vele. Van róla valami jó leírás? (Lehetőleg magyarul, de az angollal is elboldogulok.)
Pl. nézd meg ezt :Bővebben: Link
|
Bejelentkezés
Hirdetés |