Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   419 / 1210
(#) Doky586 válasza pajti2 hozzászólására (») Jún 4, 2013 /
 
Talán egyszer rájösz miről beszéltem. Remélem nem túl későn..
(eddig nem úgy néz ki mintha megértetted volna amit mondok)
(#) pajti2 válasza Doky586 hozzászólására (») Jún 5, 2013 /
 
Tartalmilag arra céloztál, hogy ha egy RS232 kimenetéről akarom meghajtani a bemenetét, akkor amellett nem túl sok áram / feszültség fog jutni még egy pic-nek is. Ami igaz is. Viszont nem is fog neki túl sok kelleni.

Egy low freqis pic12f a célpont. Az adatlapja szerint fél mA. Egy buta állapotgép + uart kimeneti periféria, többi kikapocs (nem mintha túl sok minden lenne még benne). Elé egy fesz regulátor, adatlapon másik fél mA. A kimeneten a level shifter tranzisztor hálózat egy harmadik fél mA. Nem rakok oda másik max232-t áramot zabálni, csak egy sima tranzisztor hálózatot uA-es működéssel. Legrosszabb esetben összesen 3 mA a teljes cumóm. A pic azon a frekin az adatlapja szerint 3V-ról már beton stabilan működik. Ha a max232 a kimenetén leadja az 5 V-ot, a fesz stabnak már bőven elég. Ha mellette a 7 mA-t is meglesz (márpedig az alatt az adatlapja szerint nem fog zárni az áramkorlát), már nyert ügyem van. Megeszik a saját ketyerém 3 mA-t, a max232 bemenete azon a feszültség szinten durván 2 mA-t, plussz a kábel parazita értékeit kell még ellensúlyoznom, amihez lesznek feltöltött kondik, és a sebességet sem viszem túl magasra.

A karikázott számok test condition + legrosszabb eset adatok, amik nem túl gyakoriak, de még abban az esetben sem tűnik nekem egészen esélytelennek az elképzelésem. Vagy legalábbis a saját tapasztalataim alapján valóban nem tudom megítélni, mit is kellene észrevennem. Ha mégis bebukom, a hobby időm ment el rá, 2khuf ára anyag, meg a beképzeltségem. Egyikért sem túl nagy kár
(#) proba válasza pajti2 hozzászólására (») Jún 5, 2013 /
 
Egy próbát lehet megér.Amit úgy láttam nem vettél figyelembe, tápot csak a soros adat magas szintjén kap.Ebből kifolyólag jobban jársz nagyobb adatátiteli sebességgel ,és sok sok pihenővel (ekkor ha jól tudom a jelszint magas) Vagy lehető legtöbb magas állapotot tartalmazó byte küldésével.
(#) pajti2 válasza proba hozzászólására (») Jún 5, 2013 /
 
Gyenge meghajtásnál egy hosszabb kábel nagyobb sebességnél már gond lehet. Ilyen rigolyák - meg ezernyi másik - persze benne vannak a pakliban. De hát semmi sem tökéletes. Viszont nem is az örökkévalóságnak készülne.
(#) Doky586 válasza pajti2 hozzászólására (») Jún 5, 2013 /
 
Alapesetben tápot a 3-4-7 lábról tudsz szerezni. Ezek mindegyike alapesetben -6V körüli értéken van (terheletlenül), azaz még el se indul a PIC, mert nincs honnan tápot beszereznie. Persze megoldás lehet valami PC progi/drv ami átállítja a 4/7 lábakat +6V -ra. De szerintem valami gombelem/aksi/nagyobb kondi-val jól járnál, ami ha előtte rá volt dugva a portra feltöltődik és percekig biztosítja a tápot akkor is ha a lábak a "-" tartományban vannak.

Szóval nem reménytelen, de nagyon kicentizett..
(#) pajti2 hozzászólása Jún 5, 2013 /
 
Köszönöm a tippeket, majd centizek. Az mplabx-el van inkább problémám, amiben jól jönne valami olvasható tutorial, vagy pár tipp is.

MC libből leválogattam pár file-t, amikből utólag szeretnék projectet gyúrni. Main.c, további .c-k, és halom .h (meg amik még forrásból includeolva vannak). Viszont nem találok olyan opciót, hogy már létező file hozzáadása projecthez. Ha létező file nevet beírok kézileg, akkor pedig jön a sipák, hogy already exists, és szürke next gomb.

Most komolyan muszáj azt játszanom, hogy a normál helyükről kimozgatom a fileokat, létrehozom a projecttel őket, és aztán file tartalom szintjén egyesével copy/paste?
(#) roozsa hozzászólása Jún 5, 2013 /
 
16F877 PORTA 0-1-2-3 kimenetet nem tudom rávenni,ledek villogtatására.
Az összes többi korrektül müxik (B-C-D).
Valahogyan tiltanom kellene az analóg I/O-kat?
(#) kissi válasza roozsa hozzászólására (») Jún 5, 2013 /
 
Persze, az analóg lábak mindig analóg módban indulnak !
szerk.: az adott PORT leírása után mindig megtalálható a Microchipnél az adott portnál érintett regiszterek táblázata --> nézd meg !
A hozzászólás módosítva: Jún 5, 2013
(#) gaspar_zsolt hozzászólása Jún 6, 2013 /
 
Sziasztok,

feltettem egy kérdést a PIC PWM témakörében a saját topicjában, de az nem egy forgalmas hely ezért gondoltam megkérdezlek titetek itt is.

Itt a probléma leírása!

A lényeg: egy szervot szeretnék majd mozgatni 12F683-mal, potméterekről veszem a kezdeti-vég-sebesség adatokat.
Ami gondot okoz, hogy a PWM modul "látszólag" nem indul el.

Minden segítségért hálám nektek.
(#) pajti2 válasza roozsa hozzászólására (») Jún 6, 2013 /
 
Jellemzően az összes pic (8 bitestől 32-esig) analóg lábai reset után analóg inputok. 16f877 adatlapot itt: http://ww1.microchip.com/downloads/en/DeviceDoc/30292D.pdf találsz. Page 112:
  1. ADCON1= 0x06;
a konfig tábla szerint az összes jelet visszakapcsolja digitálisra, vrefeket pedig tápfeszre.
(#) univerzum válasza pajti2 hozzászólására (») Jún 6, 2013 /
 
Oké hogy 32 bites de elméleti síkon lehetne-e rá operációs rendszert dobni?
(#) roozsa válasza pajti2 hozzászólására (») Jún 6, 2013 /
 
Köszönöm,idő közben megtaláltam az adatlapját és kihámoztam belőle a szükséges beállításokat.
Most már az A0-1-2-3 is műxik digitálisan.
(#) pajti2 válasza univerzum hozzászólására (») Jún 7, 2013 /
 
Ezt nem teljesen értem. Kicsike magyarázatra szorul.

Ha arra gondolsz, amiket egyesek "pic-linux"-nak csúfolnak, és hogy egy olyasmit rádobni egy 16f pic-re, na azt alaposan felejtsd el. Meg azt is, hogy annak a "linux"-nak - amit pic32-re rádobnak - bármi köze lenne az asztali gépes linuxokhoz, vagy akár csak operációs rendszerekhez úgy egyáltalán. Ugyanis egy egészen szégyentelen marketing-vicc az egész.
(#) icserny válasza univerzum hozzászólására (») Jún 7, 2013 /
 
Lehetni lehet, de az köszönő viszonyban sincs a PC-n megszokott operációs rendszerekkel. A beágyazott rendszerekben az "operációs rendszer"-nek nem feladat az, hogy alkalmazást töltsön be, és futtasson. Inkább az a cél, hogy egy hardver absztrakciós felületet biztosítson, a feladatokat (taskok) futtassa, s kommunikációs illetve szinkronizációs lehetőségeket biztosítson számukra. Beleérthető az "operációs rendszer" fogalmába az ún. middleware programcsomagok (USB, TCP/IP, fájlrendszer kezelése, stb.).

PIC és minden más mikrovezérlőre készülnek RTOS rendszerek. Van köztük ingyenes, és nyílt forrású is. A Rowebots PIC24/dsPIC-hez való DSPnano és a PIC32-höz való Unison RTOS rendszere annyiban hasonlít a Linuxra, hogy POSIX-szerű szálakat lehet benne létrehozni, de az az igazság, hogy túl sokat nem értettem meg a működéséből az alatt a rövid idő alatt, amíg nézegettem. Nem egyszerű ezen rendszerek használatba vétele.
(#) pajti2 válasza icserny hozzászólására (») Jún 7, 2013 /
 
Még ha egyszerűbbé is válna, valószínűleg feleslegesen. Több szálazni, meg taszkonként bontani a feladatot egy olyan design része, ami egyáltalán képes teljesítményt is produkálni, ahhoz pedig főleg memória kell. Nagyon sok memória. Egy pic-nek versenybe szállnia az arm procik ellen - 128K az 1G ellen - kissé komikus.
(#) Doky586 válasza pajti2 hozzászólására (») Jún 7, 2013 /
 
Tehát WindowsRT, Android4, Symbian, Maemo vagy hasonló soha nem lesz PIC vagy AVR-en?
A 32bit az nem ad lehetőséget több GB ram és több GB programmemória címzésre?
(#) icserny válasza pajti2 hozzászólására (») Jún 7, 2013 /
 
Ez nem egészen úgy van, ahogy gondolod, mert a feladat taszkokra bontása nem igényel olyan sok memóriát. Egy fejlesztő meg el tudja dönteni, hogy mikor érdemes használnia, mikor nem. Kis méretnél is lehet olyan összetett a feladat, ahol az absztrakció segíti az átláthatóságot és a karbantarthatóságot. Illetve az is lehet szempont, hogy egy már kipróbált, letesztelt, hozzáértők által tervezett rendszerre bízzuk a feladatok ütemezését és szinkronizálását, nem pedig amatőr módon, hozzáértés nélkül állunk neki összegányolni valamit, ami utána vagy működik, vagy nem.
Idézet:
„Egy pic-nek versenybe szállnia az arm procik ellen”
Épp ellenkezőleg: az ARM mikrovezérlők szálnak szembe a PIC és a többi 8 bites mikrovezérlőkkel. A gigahertzek és gigabájtok után most divat lett 48 MHz-es, 32-128 kbájtos programmemóriájú Cortex-M0-át gyártani, amelynek áramfogyasztását és árát a 8-bites mikrovezérlők szintjére próbálják leszorítani.
(#) icserny válasza Doky586 hozzászólására (») Jún 7, 2013 / 1
 
Ha öreganyámra gumikerekeket szerelünk, attól még nem lesz autóbusz.
(#) pajti2 hozzászólása Jún 7, 2013 /
 
Kicsit elkanyarodnék a témától egy kezdő kérdéssel:

Pk3 command line tools-t nézegetem, és nem teljesen világos, hogy ez
Idézet:
„Batch Mode Operation -B”
és ez
Idézet:
„Reprogram -R<file>”
a paraméter mégis milyen funkciót takar? Programozásra ugyanis van -P -F, minek az a "reprogram"? A batch-et illetően pedig gondolni sem tudok semmire. Google pajtás nem tudta megválaszolni a kérdést.
(#) icserny válasza pajti2 hozzászólására (») Jún 7, 2013 /
 
Ezt is láttad már?
(#) pajti2 válasza icserny hozzászólására (») Jún 7, 2013 /
 
Enné meg a fene, találtam egy kb ugyan olyan szöveg file-t, de abban nem volt benne az important notes rész Így már tiszta, köszönöm.
(#) Doky586 válasza (Felhasználó 15355) hozzászólására (») Jún 7, 2013 /
 
Itt poénkodás megy csak válaszolás helyett..
hiányzik a válasz: miért? öreganyád.
(#) zenetom válasza Doky586 hozzászólására (») Jún 7, 2013 /
 
Szia!
Más céllal gyártják az ARM, és PIC/AVR MCU-kat. Egy ARM MCU hardveresen tud kezelni olyan időkritikus dolgokat, amiket a PIC/AVR nem, mert eleve úgy lett tervezve.
Tehát hiába tud ugyanannyi műveletet végrehajtani, meg ugyanakkora memória.. stb, ha nincs meg a megfelelő belső perifériája.
A hozzászólás módosítva: Jún 7, 2013
(#) pajti2 válasza Doky586 hozzászólására (») Jún 7, 2013 /
 
A pic/avr hiába 32 bites, és hiába _tudna_ megcímezni annyi memóriát, ahhoz kell is annyi memória, amit címezhet. És nem tudja kezelni elektronikailag. Egy halom dolgot nem tud elektronikailag. A pic nem számítógép, hanem elektronika. A szoftver nem önálló teljesítmény, hanem elektronikai teljesítmény célirányos felhasználásának eszköze. Amit az elektronika nem tud, azt egy absztrakt valami (a szoftver) sem fogja tudni kihozni belőle. Egyszerűen csak erőteljes tévedés a picek alaptermészetét illetően csak annyit látni belőlük, hogy 32 bitesek, tehát meg tudnak címezni 4 gigát. Az csak elmélet.

Persze lehet olyannal vakítani a népet, hogy hozzá raksz egy spi microSDHC-t, meg soros spi ramokat, és "nesztek memória", épp csak elérési ideje is van annak a memóriának, ami köszönő viszonyban sem lesz az elvárásokkal. Bármit is lehet emulálni vele, az mind csak kirakat. Hozzá lehet rakni SD-t, LCD-t, lehet rajta valamilyen webszervernek csúfolt alkalmazást futtatni, de ezek mind csak illúziók. Marketing. Valójában sem igazi real time reflexeik nincsenek (mert az az fpga-nál kezdődik), sem logisztikai teljesítményük (mert az meg asztali számítógép fürtnél kezdődik). Egy köztes dolog, ami pár helyen költséghatékonyan megállja a helyét - a saját korlátai között. Valójában egy buta bináris állapotgép kategóriája, ami sem nem igazán intelligens, sem nem igazán gyors, cserébe olcsó. Nem kevesebb, de nem is több. Tessék beletörődni.

Zöld?
A hozzászólás módosítva: Jún 7, 2013
(#) matheattila válasza zenetom hozzászólására (») Jún 7, 2013 /
 
Minden mikrovezérlőnek és processzornak megvan a maga tulajdonsága, erőforrása, így az adott feladat határozza meg, hogy mit kell hozzá felhasználni. Egy LED villogtatáshoz természetes, hogy nem egy ARM procit használunk és fordítva, egy bonyolult rendszerben (ahol op. rendszer is szükséges) nem egy 16F628-ast használunk
(#) Doky586 válasza zenetom hozzászólására (») Jún 7, 2013 /
 
Én csak mint érdeklődő figyelem a témát, a beszélgetés így kezdődött:
Idézet:
„- Oké hogy 32 bites de elméleti síkon lehetne-e rá operációs rendszert dobni?
- A beágyazott rendszerekben az "operációs rendszer"-nek nem feladata az, hogy alkalmazást töltsön be, és futtasson.”


innen jutott eszembe hogy apró eszközökre miért nem lehet elméletileg programot utólag feltölteni úgy mint egy okostelefonra vagy pda-ra? (esetleg Ti vagy HP zsebszámológép) Vajon a Harvard arhitektúra ennek az oka, vagy valami más.
A hozzászólás módosítva: Jún 7, 2013
(#) icserny válasza Doky586 hozzászólására (») Jún 7, 2013 /
 
Idézet:
„miért nem lehet elméletileg programot utólag feltölteni úgy mint egy okostelefonra vagy pda-ra?”
Lehetni lehet, hiszen a bootloaderek is ezt csinálják. PIC32 Ethernet Starter Kiten futtattam már a StickOS BASIC értelmezőjét, amelyik a RAM-ba bepötyögött és kipróbált programot engedte elmenteni a flash memóriába. De a mikrovezérlők nem erre lettek kitalálva, nem intaraktív felhasználsra tervezték (kevés a RAM. a flash memória pedig korlátozott számú újraírást tesz lehetővé). Az általad kívánt funkciókra ott vannak a mikroprocesszorok, amelyek jellemzően külső RAM-ot (és flash-t) használnak.
(#) icserny válasza Doky586 hozzászólására (») Jún 7, 2013 /
 
Idézet:
„hiányzik a válasz: miért?”
Azt hittem, kitalálod: "motor" is kellene hozzá.
(#) pajti2 hozzászólása Jún 7, 2013 /
 
Szégyellem magam erőteljesen, de nem jövök rá, hol a hiba. Íme egy program részlet:

  1. if (msec_systime_temp1 >5) mLED_2_On()
  2.  
  3.   msec_systime_temp1= msec_systime_temp1 & 0x00000000ffffffff;
  4.  
  5. if (msec_systime_temp1 >5) mLED_3_On()


A változó definíciója:
  1. unsigned long long msec_systime_temp1; //ketto munkavaltozo
  2. unsigned int msec_systime_temp2;


A led2 kigyullad, a led3 nem. A led makrok tesztelve vannak, ott nincs hiba, muxik mind a 3, mint a kicsike angyalka. Abban a logikai muvelet sorban nem gondoltam csinalni semmi mast, csak biztositani, hogy a 64 bites valtozo felso 32 bitje tuti nulla legyen. Fogalmam sincs, miert nyirja ki a teljes valtozomat. C32-vel fordul a kod.

Mit rontottam el?
(#) Hilo hozzászólása Jún 7, 2013 /
 
Sziasztok, mostanság állnék neki PIC-ekkel foglalkozni és a következő kérdésem lenne. C fordítót mit ajánlotok? 12f illetve 18f et is szeretnék majd használni. Van e valami olyan program amivel virtuálisan tudnám tesztelni a megírt programomat? Ha sikerül működő dolgot alkotnom, akkor van aki kiírja nekem a hex file-t, illetve később majd vennék vagy építenék saját égetőt is. Előre is köszönök minden segítséget.
Következő: »»   419 / 1210
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