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   828 / 1210
(#) pajti2 válasza don_peter hozzászólására (») Júl 21, 2016 /
 
Illene megtanulni az union használatát. Alapvető C ismeret.

És még valami. Ha 32 bites cpu-n vagy, jó sok gondot lehet azzal áthidalni, hogy nem 8 meg 16 bitezel, ha csak nem helyszűke miatt kényszer az adatok szoros csomagolása. Van azon az mx795-ön bőven erőforrás 32 biten kezelni a 8 bites értéket is. Persze szívathatod magadat, ha az a szórakozásod, de azon túl nem kell félni a 32 bit egyikétől sem, nem harapnak
A hozzászólás módosítva: Júl 21, 2016
(#) don_peter válasza pajti2 hozzászólására (») Júl 22, 2016 /
 
Használok Union-okat, de jelenleg csak a címzéshez van rá szükség.
Változókba mindig olyat próbálok használni ami feltétlen szükséges.
Szívatni mindig tudom magam, nem szükséges, hozzá még PIC-sem.
(#) pajti2 válasza don_peter hozzászólására (») Júl 22, 2016 /
 
Most sem a pic-el szivattad magad, hanem az adat konvertálással. Csak be kellett volna tölteni az adatot byte-onként (unsigned char, semmi előjelezés), és kivenni integerként, vagy ahogy akarod.

A 12f / 16f szériákon elég kevés ram van, ott tényleg vigyázni kell minden byte-ra alkalmasint, de a 32-esek tömve vannak erőforrással. A 32-eseken nem kell vigyázni a változók számával. Ha csak nem az idegeidet akarod roncsolni cél és értelem nélkül, szerintem válaszd a kényelmet ott, ahol nyugodtan megteheted. Aztán ahogy érzed
(#) cross51 válasza don_peter hozzászólására (») Júl 22, 2016 /
 
Szerintem 32-biten nyugodtan használhatsz 32-bites változókat (X32-ben az int alapé. 32 bit), nem hinném, hogy az elején mikor még a program prototípusánál tartasz azzal kéne foglalkozni, hogy mekkora.
Meg szerintem az XC32, ha 2 db 16 bites változót használsz csak nem rakja egy memória terület felső és alsó felére vagy ebben én tévedek?
(#) Hp41C válasza cross51 hozzászólására (») Júl 22, 2016 /
 
Idézet:
„Szerintem 32-biten nyugodtan használhatsz 32-bites változókat...”

Szerintem az USB kezelését nem Ő írta, így az USB_In_Buffer[] -t a meglevő programhoz kellett igazítani.
(#) pajti2 válasza Hp41C hozzászólására (») Júl 22, 2016 /
 
A 32 bites stack-ben (2013 febr 15-ös) én összesen egy BYTE INPacket[64] és BYTE OUTPacket[64]-t találtam. Az ugyan nem sok előjelezést kényszerít, unsigned char kompatibilis.
(#) don_peter válasza pajti2 hozzászólására (») Júl 22, 2016 / 1
 
pajti2: Microchipék már megírták az USB stack-et amit használok, jól mondja Hp41C.
Mivel ezt ők megírták, ezért ezt a részt én nem bántom, csak a nagyon szükséges részeknél írtam át.
A gond egyébként ott volt, hogy Microchipék az USB_In_Buffer[] tömböt, sima char ként deklarálták, ezért felvehetett előjeles értéket is.
Meg is tette és keresztbe is verte az adatátvitelemet.
Ezt módosítottam unsigned-re és már is gyönyörködhettem a valós adatokban..

cross51: mire beszereztem az Mplab X-et PRO verzióba, addigra rá is jöttem, hogy nem lesz nekem jó, így nyomban hanyagoltam is. (nem töröltem..., még)
Mivel nincs rá USB stack és a régi nem kompatibilis, így számomra most még nem opció..
(#) pajti2 válasza don_peter hozzászólására (») Júl 22, 2016 /
 
Melyik stack verziót használtad arra a project-re?
(#) don_peter válasza pajti2 hozzászólására (») Júl 22, 2016 /
 
Idézet:
„(Microchip.zip) with USB stack v2.7a (from MAL 2010-08-04)”

Bővebben: Link
Ez frankón működik..
(#) zenetom hozzászólása Júl 22, 2016 /
 
Hali,
Adott egy 18F26K80, 3.3V-ról járatva. Az adatlap szerint logikai 0 a bemenet (RB0-t próbáltam csak), ha 0.2Vdd alatt van. Ez esetben tehát akkor 0.66V. Ehhez képest, a valóságban azt tapasztalom, hogy ha 1.27V alá kerül a láb, akkor már logikai 0 lesz.
Vélemények/tapasztalatok?
Vagy lehet már csak nekem van este..
(#) Bakman válasza zenetom hozzászólására (») Júl 23, 2016 /
 
Logikai bemenetet határozott H vagy L szinttel kell vezérelni.
(#) pajti2 válasza zenetom hozzászólására (») Júl 23, 2016 /
 
Azon a pic-en az rb0-ád digitális üzemben st bemenet. Ha kap egy feszültség tüskét 0.2vdd alatt (bármi elég egyetlen pillanatra is), behúz a trigger, és utána tartja az alacsony állapotot, amíg felül nem lövöd a 0.8vdd-t.
(#) zenetom válasza pajti2 hozzászólására (») Júl 23, 2016 /
 
Idézet:
„0.8vdd-t”

Mármint 0.8V-ot.
Egyébként ez sem igaz. Ugyanis csak 1.6V-nál kapcsol vissza 1-be, mármint itt most, nálam.
De nem akarom elhinni, hogy ennyire nem tartja az adatlap értékét a PIC, valahol biztos valami gubanc van, csak nem tudom hol. Megnézek másik lábat, meg ha találok potit, azzal is játszok...
Szerk.: egyébként köszi a válaszokat.
A hozzászólás módosítva: Júl 23, 2016
(#) sonajkniz válasza zenetom hozzászólására (») Júl 23, 2016 /
 
Ezzel egyébként most mi a célod?
Ha digitális bemenetként akarod használni, ne játssz a jelszintekkel. Az csak zavart szül. Ha meg feszültség szintet akarsz érzékelni, tedd komparátorral, vagy A/D-vel.
Ezt írod:
Idézet:
„Azon a pic-en az rb0-ád digitális üzemben st bemenet. Ha kap egy feszültség tüskét 0.2vdd alatt (bármi elég egyetlen pillanatra is), behúz a trigger, és utána tartja az alacsony állapotot, amíg felül nem lövöd a 0.8vdd-t.”

Ezek szerint lebeg a bemeneted. Ennél már csak akkor tehetnél rosszabbat, ha erre a lebegő bemenetre még egy antennát is raknál.
A hozzászólás módosítva: Júl 23, 2016
(#) zenetom hozzászólása Júl 23, 2016 /
 
Én részemről zárom a felvetést, ennek így semmi értelme. Azért köszönöm a hozzászólásokat.
(#) AZoli válasza zenetom hozzászólására (») Júl 23, 2016 / 1
 
Szerintem nem 0.2Vdd, hanem maximum 0.2Vdd. Tehát ha biztosan logikai 0-t akarsz beolvasni, akkor legalább 0,2Vdd -ig kell csökkenteni a feszültséget a lábon -> maximum 0,2Vdd lehet. Fölötte nem garantált a logikai 0, azt a tartomány bizonytalan, függ sok mindentől.
Ugyan így, ha biztosan logikai 1 -et akarsz, minimum 0.8Vdd kell hozzá a lábon. Ezért van a "min" oszlopban a 0,8.
A 0,2 és 0,8 közötti tartomány nem egészséges, ahogy azt már többen írták.
(#) zenetom válasza AZoli hozzászólására (») Júl 23, 2016 /
 
Igen, valami ilyesmi lehet, köszönöm!
(#) pajti2 hozzászólása Júl 23, 2016 / 1
 
@AZoli, @zenetom:

A Schmitt trigger, vagy szakzsargon nevén simán csak "ST" működése egy jól dokumentált valami, a találgatás felesleges.

Gyors összefoglalóban a kapunak hiszterézise van, és bemeneti 1 bites memóriája. Az ST bemenet nem csak egy sima bemenet, az komplett logika. A kapcsolási szintjei ott vannak a jelzett pic adatlapjában, nincs azon mit félre érteni. A korlátok 0.2 Vdd és 0.8 Vdd (3.3V tápfesz esetén 0.66V és 2.64V). Ahhoz, hogy a bemeneti állapot érzékelés lekapcsoljon logikai 0-ra, a feszültség szintnek felülről lefelé menet el kell kasszantania az 0.2 Vdd feszültség szintet (3.3V táp esetén 0.66V), és akkor a trigger "billen", átkapcsolja a következő jelszint váltási korlátot 0.8 Vdd-re. "Megjegyzi" az aktuális állapotot a saját 1 bites memóriájában, és tartja a logikai 0-t egészen addig, míg a feszültség szint alulról fölfelé el nem kasszantja a 0.8 Vdd (3.3V táp esetén 2.64V), amikor is újra billen a trigger logikai 1-be, és vissza kapcsolja a kövekező billenési feszültséget 0.2 Vdd-re.

Ha a feszültség szint "lebeg", az a TTL esetében lehet, hogy veszélyes, de az ST-nél kicsit sem. Az ST direkt arra lett kitalálva, hogy az a probléma a múlt jótékony homályába vesszen, és többé ne létezzen. _Zéró_ problémát jelent az ST bemenetnek akár a folyamatos analóg jelszint is, lebegjen bárhol. Nem lesz miatta semmi féle extra fogyasztás, meg elektronika-veszélyeztetés, meg semmi olyasmi.

Jelezzétek, ha még mindig nyitott kérdés van az ST működéséről.
(#) zenetom válasza pajti2 hozzászólására (») Júl 23, 2016 /
 
Először is, köszönöm a részletes leírást, bár én ennek teljesen a tudatában voltam, csak nem akartam, és nem is akarom tovább firtatni a témát.
(#) kszabi hozzászólása Júl 26, 2016 /
 
Sziasztok!
Újra kellett telepítenem a gépem.
Feltettem az mplab 8.9.et és az mplabc30-v3_31-et.
Minden projekt fordításakor ez a hiba jön elő:pic30-lm.exe működése leállt.
Ez a párosítás azelőtt működött. A telepítőt a microchip oldalról töltöttem le.
Van teljes verzióm c30,v3.0-bol amivel működne is, csak az nem ismeri a 33EP PIC-et.
Valami ötlet honnan tölthetnék le működő verziót, vagy hogyan frissíthetnék 3.0- ról 3.31-re?
Sos- ben kéne, köszi Szabolcs
(#) Hp41C válasza kszabi hozzászólására (») Júl 27, 2016 /
 
Talán lépésenként. Download Archive
Nálam az MpLab 8.92 és C30 V3.31 működik.
(#) kriszrap hozzászólása Júl 28, 2016 /
 
Sziasztok!
Valaki tudna ötletett adni hogy eepromba hogy lehetne animációkat tárolni??
Segítséget Előre köszönöm.
(#) Bakman válasza kriszrap hozzászólására (») Júl 28, 2016 /
 
Az animációt felbontod számokra és elmented. Milyen kontrolleren gondolod ezt végrehajtani?
(#) kriszrap válasza Bakman hozzászólására (») Júl 28, 2016 /
 
Pic18f46k22 ha erre gondoltál.
A hozzászólás módosítva: Júl 28, 2016
(#) Bakman válasza kriszrap hozzászólására (») Júl 28, 2016 /
 
Van benne 1 kByte EEPROM, de hogy ez mire lesz elég, azt csak te tudod. Pláne, hogy nem lehet tudni semmit az animációról, sem a megjelenítőről.
(#) kriszrap válasza Bakman hozzászólására (») Júl 28, 2016 /
 
Vu meter szeretnék bele animálni időmultiplex

  1. void elsosor(int otodikleded,int negyedikled,int harmadikled,int masodikled,int elsoled)
  2. {
  3.    LATA.RA4=elsoled;
  4.    LATA.RA3=masodikled;
  5.    LATA.RA2=harmadikled;
  6.    LATA.RA1=negyedikled;
  7.    LATA.RA0=otodikleded;
  8. }
  9. oszlopok(5);// shiftreiszter része
  10.  
  11. pl:
  12. oszlopok(3)
  13. elsosor(0,1,1,0,1);
  14. ez egy kép

Kb igynézki a dolog.
(#) Bakman válasza kriszrap hozzászólására (») Júl 28, 2016 /
 
Mivel a kontrollernek nem kis programmemóriája (ROM) van, azzal kcisit jobban jársz.
(#) kriszrap válasza Bakman hozzászólására (») Júl 28, 2016 /
 
Csak az a baj hogy egy animáció kb 6% az nem sok??(forgó animáció)
(#) Bakman válasza kriszrap hozzászólására (») Júl 28, 2016 /
 
A programmemóriából annyit vesz el? 6 %-nyi programmemória kb. 3.8 kByte, az EEPROM pedig összesen 1 kByte. Ha leredukálod a dolgokat, valószínűleg akkor is nagyon kevés lépés fér az EEPROM-ba. Ha nem elég a hely, használj külső tárhelyet (külső EEPROM, SD kártya stb.).
(#) kriszrap válasza Bakman hozzászólására (») Júl 28, 2016 /
 
SD kártya?????? Ez érdekel. Micro s-d???
Van rá valami kapcsolás vay sematika hogy kell bekötni???
Milyen formátumba olvasná stb.

Idézet:
„A programmemóriából annyit vesz el?”

Igen sajnos egy forgo animáció multiplexel.
A hozzászólás módosítva: Júl 28, 2016
Következő: »»   828 / 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