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   1119 / 1203
(#) menyus válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Lehet ostoba a kérdés... de a "DT" az esetünkben mit jelöl?
(#) bbalazs_ válasza menyus hozzászólására (») Ápr 22, 2020 /
 
Define Text
(#) menyus válasza bbalazs_ hozzászólására (») Ápr 22, 2020 /
 
Köszönöm, még nem találkoztam vele, illetve csak most az LCD rutinok kapcsán.
(#) sonajkniz válasza menyus hozzászólására (») Ápr 22, 2020 /
 
Idézet:
„16F877 est használok”


Meg kérdezhetem, mi az oka, hogy ezt a PIC-et választottad?
Kell ez a lábszám? Ha nem, mennyi szükséges?
Ugyanis a 18-as széria F14K22 , F26K22, F46K22 tagjai nem csak jóval olcsóbbak, de nagyobb tudásúak és assemblyben sokkal könnyebben programozhatóak.
(#) Pali79 válasza menyus hozzászólására (») Ápr 22, 2020 /
 
Ja bocsi, úgy emlékeztem, hogy Te írtad a váltást 16-ról 18-as szériára...
(#) menyus válasza Pali79 hozzászólására (») Ápr 22, 2020 /
 
Nem, az biztosan nem én voltam.
(#) menyus válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Igen, azért választottam ezt a tipust mert sok GPIO ja van és nem utolsó sorban ez volt itthon, a 18 as szériát meg abszolut nem ismerem. Elég sok bemenet-kimenet kell. Sőt, néha egyes bemenetek kimenetek is egyben, futás közben váltogatom őket. Néha egyes pin eken pollozok, majd ugyan az a pin később egy analóg kapcsolót vezérel..stb. Szóval a GPIO kból sosem elég... Másik, ahogy ez a kérdéseimből is látszik eléggé kezdő szinten vagyok, vagy talán újrakezdő 10 év uitán, de sosem voltam Hp41C szintjén pl. (És tuti nem is leszek) De mondhatnék most még rengeteg nicknevet akik profik ebben a témában. A 8 biteseken 16F szérián sosem jutottam túl (F628, F648, F877, de voltak 12F675, sőt 10F206 ra is szerényebb projectjeim. Én sosem tanultam programozni, amit "tudok" azt magamtól szedtem össze innen onnan, no és Tőletek csipegettem fel. Ezúton is hálás köszönetem érte. A 18 as széria úgy tudom annyiban más hogy nincsenek lapváltások, és bankok? Ez már előny ez tény. De nekem ez egyíelőre fekete lyuk... Mindenesetre mivel egyre többen ajánlják a váltást (gondolom nem véletlenül) berendelek egy szerényebb típust és vasalok hozzá egy tesztboard ot. Aztán hátha barátok leszünk és megszeretem.
(#) sonajkniz válasza menyus hozzászólására (») Ápr 22, 2020 /
 
A 18-as szériának nem merül ki abban az ekőnye, hogy nincsennek bankváltások.
Igen fejlett az indirekt RAM kezelése, ráadásul 3 különböző regiszter van hozzá.
Azaz, ha az egyik regisztert beállítottad egy címre, le tudsz kérdezni úgy egy másik ramot, vagy épp írni bele, hogy az előző cím nem állítódik el.
Pl. Mérésadatokat gyüjtessz. az egyik regiszter írja utóinkrementálásos módban. Te közben olvasni akarod. Megteheted anélkül, hogy az író módot befolyásolná.
A Pali79 által felvázolt programmemóriában tárolt adatok olvasása is könnyű.
(#) menyus válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Értem, jól hangzik. Köszönöm! Ki fogom próbálni. Kezdésnek melyik típust ajánlanád? Amiben van mondjuk minimum 2 analóg komparátor, belső referencia és van 15-20 GPIO ja? Az LCD t szivesebben hajtanám 8 bites módban mert egyszerúbb kezelni és gyorsabb is így de az eleve elvisz minimum 10 GPIO t.
A hozzászólás módosítva: Ápr 22, 2020
(#) Hp41C válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Idézet:
„A 18-as szériának nem merül ki abban az ekőnye, hogy nincsennek bankváltások.”

4096 regiszter címzése az utasítás 7 bitjével??? Mire szolgál a BSR gerisztere?
Meg egy jó hónap, mire az utasítások eltérő jelzőbit kezelésével valaki tisztában lesz.
(#) sonajkniz válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Mire oda eljut, hogy olyan hosszú programot írjon, ahol ez kelleni fog, sok víz lefolyik a hátán.
(#) Hp41C válasza menyus hozzászólására (») Ápr 22, 2020 / 1
 
Szia!
Az LCD kezelése minimum 1 lábat visz el: azt, amivel az E -t vezérled. Ugyanis , ha E alacsony a R/S, C/D és a 8(4) adatvonal nagyimpedanciás. Pl. 10 nyomógomb kezelhető ezeken a vonalokon. Csak annyi kell, hogy a vonalakat felhúzó ellenállásokkal (10-47k) látod el, az egyes nyomógombok egy-egy soros ellenálláson (1k) keresztül húzzák a vonalat alacsony szintre.

Legolcsóbb a 18F47Q43 I/P - 64kb program, 8k adat memória. A ChipCad -nál 690Ft+áfa (még 8 db van).
A hozzászólás módosítva: Ápr 22, 2020
(#) Hp41C válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
A bankváltás nélkül a 18FxxK22 -ben használható 96 byte GPR -en már túl van. Ha 1 bank váltást megendedünk, akkor 96+ 256 = 352 GPR, a 16F877 -e pedig 368.
(#) sonajkniz válasza menyus hozzászólására (») Ápr 22, 2020 / 1
 
A 18F14K22-nek 18 I/O portja van. Ebből 12 kapcsolható át 10 bites A/D converternek.
Kezdésnek ezt ajánlanám, mert elég szívós darab. Bár erre vonatkozó leírást nem találtam róla, de a tapasztalataim azt mutatják, hogy a kimenetei vagy áramgenerátorosak, vagy rövidzár védettek.RAM-ból 512 byte, EEPROM-ból 256 byte Flash memóriából 16kB áll rendelkezésre.
Mindenképp a 4 bites módot ajánlanám az LCD kezelésére. De ha még szeretnél lábakat spórolni, van megoldás az LCD 2 vezetéken történő meghajtására.
Bővebben: Link
(#) sonajkniz válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Idézet:
„96 byte GPR -en már túl van”

Én nem vagyok akkora puska ebben mint te, így megkérlek, fejtsd ki bővebben, miről írtál.
Én eddig csak a 18F46K22-nél váltotam valaha bankot, mert az I/O portok egy része nem volt elérhető. A kisebbeknél sosem kellett még ilyet csinálnom.
(#) Hp41C válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Idézet:
„96 byte GPR -en már túl van”

Mármint menyus a programjával.
(#) sonajkniz válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Megbocsáss, de még mindíg nem értem.

Ez a kis kód 1024 byte adatot tölt át a flash memóriából a RAM-ba egy 18F26K22-esen.
Nem kellett hozzá bankot váltani.
  1. ;*******************************************************************************
  2. ;* Kiválasztott képernyőtartalom áttöltése RAM-ba *
  3. ;*******************************************************************************
  4. KEPERNYO_VALTAS
  5.  CLRF TBLPTRU
  6.  MOVLW H'04'
  7.  MULWF KAKC ;Képernyő adat kezdő cím
  8.  MOVFF PRODL,TBLPTRH
  9.  MOVLW H'0C'
  10.  ADDWF TBLPTRH,F
  11.  CLRF TBLPTRL
  12.  CLRF ATSZ1 ;ÁtTöltés SZámláló 1
  13.  CLRF ATSZ2 ;ÁtTöltés SZámláló 2
  14.  MOVLW 0x01 ;RAM cím felső byte
  15.  MOVWF FSR0H
  16.  CLRF FSR0L ;RAM cím alsó byte
  17. ATTOLTES ;Táblázat áttöltése RAM-ba
  18.  TBLRD*+
  19.  MOVFF TABLAT,POSTINC0
  20.  INCFSZ ATSZ1 ;ÁtTöltés SZámláló 1
  21.  GOTO ATTOLTES
  22.  INCF ATSZ2 ;ÁtTöltés SZámláló 2
  23.  BTFSS ATSZ2,2 ;ÁtTöltés SZámláló 2
  24.  GOTO ATTOLTES
(#) Hp41C válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Ez egy igen speciális eset. Direkt címzésnél pedig a 18F -eken is kell foglalkozni a bankváltással. Persze lehet mindenhol a 2 szavas movff (3 szavas movffl) utasítást használni a WREG kezelésére, de a többihez (decf, incf stb ) be kell állítani a BSR -t.
A hozzászólás módosítva: Ápr 22, 2020
(#) menyus válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Na innentől el is ment a kedvem a 18 as szériától, maradok a 16 osnál. Az már bevált mint az Otto motor.
(#) menyus válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Ezt most nem igazán értem... 8 bites adatvonallal kezelve az LCD adatlábai D0 - D7, ez 8 GPIO a kontroller felől, + az E és a R/S. Az RW t mondjuk hogy nem használom mert nem olvasok az LCD ról csak írok rá, ezért az RW láb fixen VSS en van. Ez bárhogy is számolom 10 láb. Bár tény hogy láttam már "1 vezetékes" LCD s projectet is. Lehet pont itt a cikkek között? Én 8 bites vezérlésről írtam hogy talán az a legegyszerűbb. Ez az egy vezetékes dolog nekem még magas léc lenne így elsőre. Látod még a 4 bitessel is megszenvedek.
(#) Hp41C válasza menyus hozzászólására (») Ápr 22, 2020 / 1
 
Nem az egyvezetékes LCD kezelésről írtam.
Azt vetettem fel, hogy ha 8 bitesen (adat) van bekötve az LCD plus a C/D és az E (ez 10 vonal) ebből csak egy van, amit nem tudsz másra használni - az E -t meghajtó lábat.
- LCD re való írás előtt az adat vonalakat (8) és a C/D vonalat kimenetnek állítod be, beállítod a kívánt szintüket, ezután vársz egy kicsit és csinálcs egy pulzust az E -n.
- Az adat vonalakra és a C/D vonalra a fent leírt módon bekötött nyomógombok olvasásához bemenetnek állítod a vonalait és beolvasod a szintjüket. Ez alatt az E vonalat alacsony szinten kell tartanod.
Máris kétféle célra használtad a 9 vonalat.
(#) menyus válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Köszönöm, de lehet maradok a 16 os szériánál egyelőre. Legalábbis amit fejlesztgetek azt egyelőre megoldom azzal. A 18 asba meg csak belekóstolok. Talán annyira már képben vagyok hogy hardveresen nem teszem tönkre, eddig nem sikerült tönkrevágnom a 16 os száriűból sem. Pedig ott úgy tudom nincs védelem a kimeneteken és max 20mA a terhelhetőség ami épp egy LED nek elég.

LCD vel kapcsolatban a 4 bittel is szenvedek nemhogy 2 biten.
(#) menyus válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Ja, így már értem. tehát az GPIO kat amivel az LCD adatlábait vezérlem és amelyek eredendően kimeneteknek vannak állítva, használhatom bemenetként is. Értem, ezt a módszert használom a mostani projectemben is, mint alább említettem. Az adott GPIO t hol bemenetként hol kimenetként állítom be és kezelem a programban. Csak éppen nem az LCD adatlábait vezérlő GPIO kat, mivel nem csináltam még LCD s projectet nem mertem ezt kockáztatni. Ez esetben valamilyen hardveres megoldással le kell választani a GPIO t az LCD adatlábáról? (dióda, tranzisztor..stb?)
(#) menyus válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Ez tetszik... És milyen igaz!
(#) menyus válasza sonajkniz hozzászólására (») Ápr 22, 2020 /
 
Ez az egy vezetéskes dolog becsapós, mert az LCD n kívül feltételez + egy soros LCD vezérlő panelt is. Tehát "csak szoftveresen" nem megoldható ha jól gondolom. Mindenesetre az ötletet köszönöm, rendelek is egy párat ezekből a soros modulokból. Gondolom az Alin van, de lehet még itt a HE store ban is. Majd körülnézek.
(#) Hp41C válasza menyus hozzászólására (») Ápr 22, 2020 / 1
 
Fentebb írtam, hogy a nyomógombokkal sorosan kell egí kis ellenállás (1k) és a felhasznált kimeneteket fel kell, húzni tára (ha a nyomógomb a földer kapcsolja) egy-egy nagyobb értékű ellenállással (10..47k).
Ezeket a vonalakat használhatod még kimenetnek is az alábbi módon. Válasz ki még egy (az LCD kezelésében részt nem vevő) lábat és végy egy 74HC273 regisztert.
Az LCD 8 adatvezetékét kösd be a 74HC273 bemeneteire, a kiválasztott lábat a 74HC273 órajel lábára. Ha a vonalak kimenetek, de a pulzust nem az E-t hajtó lábra csinálod, hanem a 74HC273 órajelét hajtóra az adat megjelenik (és a következő pulzuisig ott is marad) a 74HC273 kimenetén. A MCLR -t a 74HC273 reset bemenetére kötve a kimenetek bekapcsoláskor alacsony szintre állnak be. Ezzel máris háromféle célra használhatod ugyan azt a 8 lábat.
(#) menyus válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Az igen, ezt így csípőből. Köszönöm az ötletet. Ha 1/10 ennyit tudnék mint Te, már a NASA nál lenne a CV m.
(#) Hp41C válasza menyus hozzászólására (») Ápr 22, 2020 / 1
 
My Shift Protokol (c) Roman Black két ellenállás + két kondenzátor + 74HC595 kell. Az lcd 4 bitesen kezelhető vele.
Bővebben: Link
(#) menyus válasza Hp41C hozzászólására (») Ápr 22, 2020 /
 
Köszönöm a hasznos infókat. Jó kis oldal, tele van jó kis LCD s projectekkel. Ha ezen a mostani céges LCD s alkatrésztemetőn túl vagyok, a következő projectem vicsys frekvenciamérője lesz. Be is rendeltem hozzá mindent, kivéve a BF961 et, az lemaradt. Írtam is Neki privátot, helyettesíthető e a bemeneti rf FET egy bipoláris tranzisztorral, csak még nem kaptam választ biztosan nem olvasta még
(#) Hp41C válasza menyus hozzászólására (») Ápr 22, 2020 /
 
HR Elektronika -nál és a HAM bazár -ban is van (a honlap szerint).
A hozzászólás módosítva: Ápr 22, 2020
Következő: »»   1119 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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