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   372 / 1210
(#) szelitomi válasza szelitomi hozzászólására (») Feb 20, 2013 /
 
Köszönöm mindenkinek!
A kapott elérhetőségeket továbbítottam!
(Akár törölhető is a hozzászólásom. Hogy ne zavarjon meg senkit.)
(#) Hp41C válasza tom75 hozzászólására (») Feb 20, 2013 /
 
Ezt próbáld meg.

ESR_883.ZIP
    
(#) hepi02 hozzászólása Feb 20, 2013 /
 
Sziasztok!

A PIC16F628A mikrocsipemben 2 timert használok (TMR0, TMR1). Az alábbi kapcsolás receiver részét megépítettem(ebből kell kettő, egyet-egyet mindkét timernek). A kapcsolás a timer0-val tökéletesen működik az RA4 lábra kötve(pin3, T0CKI). Viszont a timer1 nem reagál rá az RB6 lábon (pin12, T1CKI). Négyszögjel generátorral viszont szépen működik az utóbbi is. Mi lehet a probléma?
Bővebben: Link

Ide vonatkozó kódrészek:
  1. void main() {
  2.         T1CON = 0b00000011;
  3.         while(1){
  4.                 TMR1L = 0;
  5.                 //várunk, míg számol, majd feldogozunk
  6.         }
  7. }
A hozzászólás módosítva: Feb 20, 2013
(#) icserny válasza hepi02 hozzászólására (») Feb 21, 2013 /
 
Milyen a jel alakja? Az adatlapokban egy táblázat ismerteti, hogy az az üzemmódtól függően a számláló bemeneteken legalább meddig kell magas, illetve alacsony szintűnek lennie a jelnek.

A "TIMER0 AND TIMER1 EXTERNAL CLOCK REQUIREMENTS" táblázatot keresd!
Általában 0.5 TCY + 20 ns ideig kell magas, majd ugyanennyi ideig alacsony állapotban lenni. Előszámláló használata esetén, vagy T1 aszinkron módban ennél kedvezőbb a helyzet...
A lelölés magyarázata: TCY az utasításciklus periodusideje, azaz 4/Fosc. Például Fosc = 4 MHz estén Tcy = 1 us vagy 1000 ns.
(#) Hp41C válasza icserny hozzászólására (») Feb 21, 2013 /
 
Idézet:
„TMR1L = 0;”

Ez az utasítás törli a számláló alsó byte -ját és az esetleges prescaler -t. A timer1 írásáról van egy errata is...
(#) hepi02 válasza Hp41C hozzászólására (») Feb 21, 2013 /
 
Nem úgy van, hogy a prescalert, a T1CON tartalmazza, a TMR1 pedig 2 8bites részből áll:
TMR1H a felső 8 bit értéke tulcsoruláskor nő és TMR1L az alsó 8bit ahova a timer1 számol?

(#) icserny válasza hepi02 hozzászólására (»)

A jel alakot sajna nem tudom megnézni, nincs szkópom. Pontosabban van valami 1000 éves orosz, majd megnézem, hogy megy-e még. Viszont, ha timer0-nak megfelel a jelalak, akkor ebből nem következik ezek szerint, hogy timer1-nek is?
(#) Hp41C válasza hepi02 hozzászólására (») Feb 21, 2013 /
 
Idézet:
„Nem úgy van, hogy a prescalert, a T1CON tartalmazza”

Pontosan: A prescaler beállítását a T1CON tartalmazza. A prescaler tartalma (aktuális állapota) nem hozzáférhető. A timer írása törli a prescaler tartalmát is.
Idézet:
„TMR1 pedig 2 8bites részből áll: TMR1H a felső 8 bit értéke tulcsoruláskor nő és TMR1L az alsó 8bit ahova a timer1 számol”

Számolna az a szerencsétlen timer1, ha a while (1) TMR1L = 0; nem írná felül az alsó byte -ot minden lefutásra.
(#) hepi02 válasza Hp41C hozzászólására (») Feb 21, 2013 /
 
Van egy ilyen rész is a nullázás után:
  1. //várunk, míg számol, majd feldogozunk


Tehát mire a while végére érünk már feldolgoztuk a TMR1 értékét, ezért lehet nullázni és újra számolni. Csupán a felesleges számításokat kihagytam innen a kódból, mert nem releváns a kérdésre nézve.

És ismétlem, hogy négyszögjel generátorral tökéletesen számol, csak a fent linkelt kapcsolással nem. A fent linkelt kapcsolás valamiért csak a timer0-val dolgozik együtt.

Kipróbáltam egy ilyen kapcsolással is, ami lényegében a korábbi kapcsolás butított változata, de ezzel sem működik. Bővebben: Link
(#) sherlock válasza hepi02 hozzászólására (») Feb 21, 2013 /
 
Szia,
Vajon nincs köze a DC characteristics-hez? Az adatlapban a 170-es oldalon ugyan azt írja, hogy 0,8*VDD a VIH úgy schmitt-triggeres bemenet, mint MCLR és RA4/T0CKI esetén. Mégis külön írja őket, ebből arra következtetek, hogy lehet mégis lehet különbség a két küszöb között..
Lehet, hogy az áramköröd által kiadott jel nem éri el azt a 0,8*VDD = 4 voltot, és az öli meg az egészet. Generátorral valószínűleg azért megy, mert 5 voltos amplitúdójú jelet adsz neki, s az okés.
Próba!
(#) hepi02 válasza sherlock hozzászólására (») Feb 21, 2013 /
 
Az MCU RB6 lába le van húzva testre egy 3K6 ellenállással. A tranzisztoros kapcsolás pedig elvileg csak annyit csinál, hogy az adott lábon kapcsolgatja a tápfeszt(jelen esetben 5V-ot). És a tranzisztor collector lábán mérve meg is van az 5V.
(#) szaffo555 hozzászólása Feb 21, 2013 /
 
Az RTCC modullal kapcsolatban kérdeznék. Az RTCCFG regiszter RTCSYNS -je (Read Synchronization) elvileg az RTCVALx regiszterek olvasás közbeni túlcsordulása ellen használható. Amíg értéke low, az RTCVALx regiszterek gyors kiolvasása nem okoz átfordulást. A - dsPIC33F Family Reference Manual 18. oldalán találtam ennek működéséről kicsit bővebbet.
Eszerint a 32768 órajelciklus (1 sec) lejárta előtt 32 órajelciklussal előbb "1" lesz RTCSYNC bit, jelezve "nemsokára" átfordulás lesz a sec ban, vagy a többiben átfordulás lehet, kiolvasás már nem "ajánlott". (esetleg visszaolvasással, majd összehasonlítással de az egy másik megoldás lenne) .
Amit kérdezni szeretnék, hogy a fenti gondolatmenet helyes -e, és miért van az, hogy a neten nem találtam egyetlen példát sem, amit a modul Time regisztereinek kiolvasását így oldotta volna meg, vagy visszaolvasással. Lehet én nem értelmezem jól az RTCSYNC bitet?
(#) tom75 válasza Hp41C hozzászólására (») Feb 21, 2013 /
 
Köszönöm Kipróbálom és jelentkezek.
(#) tom75 válasza tom75 hozzászólására (») Feb 22, 2013 /
 
Kipróbáltam a progit,
Azt csinálja, ha csak bekapcsolom akkor nem jelez ki semmit üres a kijelző Csak a kis kockák látszódnak a mibe a karakterek lennének kontraszt állástól függően, de viszont ha a beállítás menübe belépek akkor látszik minden a kijelzőn.
Tehát beszabályozni lehet de használt közben nincs kijelzésem.
Ez program hiba?

Köszi
(#) petikkkeee hozzászólása Feb 22, 2013 /
 
sziasztok egy nagyon kezdő kérdésem lenne, de inkább kételyt kéne eloszlatni. Ahogy olvasom a PIC adatlapját, a portok más más dolgot tudnak (lásd. belső D/A, LCD kezelés). A protokat szabadon használhatom fel, és a programba írom le, hogy ki vagy bemenet legyen és hogy miként üzemeljen. Legalább is gondolom én. Vagy kivan kötve hogy ez a port akkor ahogy az adatlapon van csak D/A...?
(#) sherlock hozzászólása Feb 22, 2013 /
 
Szia!

Ez úgy működik, hogy különböző funkciókat (analog bemenet, analog kimenet, i2c, spi, komparator...) összemultiplexelnek egyetlen lábra, lábspórlás végett. Programból ezeket ki-be tudod kapcsolgatni, annak függvényében, hogy mit akarsz felhasználni az adott lábra multiplexelt funckiókból. Például ha egy lábat IOként akarsz használni, ki kell rajta kapcsolni az analog bemeneteket (ha éppen van), komparátor kimeneteket, meg minden egyebet ami felülírja az IO funkciót. Táblázatot erről találsz az adatlapban, minden lábnak felsorolják minden funkcióját, általában az adatlap elején van IO pins fejezetben.
Legtöbbször van részletes utasítás, hogyan kell eljárj, hogy az adott funkcionalitást használhasd. Kezdi azzal, hogy ki/bemenetnek kell állíts egy lábat, aztán leírja, mit kell inicializálj, mit kell bekapcsolj, stb.

Remélem segítettem!
(#) n_yálastrubadúr hozzászólása Feb 22, 2013 /
 
Sziasztok!
Saját fejlesztésű propeller órán dolgozok. 5 napja készítem és minden szuper apróságokat leszámítva. Pl a bázison az ir ledet nem a pic vezérli. később jöttem rá hogy leállított módban az is kikapcsolhatna. A bázis sok mindent nem csinál, nem volt nehéz beollóznom a korábban megírt samsunng 4byte-os távirányító kódját minden apróság irányítására. Az propeller része is halad az óra pontos, de még sokmindent akarok beleírni. Így is sok felesleges sort emészt fel a hasamra ütött legegyszerűbb nyákterv miatt. ("összevissza" vannak a portokon a ledek) És nincsen több lábam se ahova a propelleren a tsop-t majd kötni fogom, de a lényeg, hogy szerintem időm se lesz könnyen az infrát feldolgozni. Ezért kicseréltem az óra egyszerűsége miatt használt 3,6864Mhz-es kristályt egy 24,576Mhz-esre. A pic megy (16f716 ez volt itthon) de azt kérdezném, ha az adatlapja szerint 20Mhz-es, akkor számíthatok frekvencia "vesztéssel" kiszámíthatatlansággal? Az első kép 5 napja készült akkor még fogalmam sem volt róla, hogyan lesz ebből valami. És úgy rázott, hogy 2.jára 1 napig csak a trafót tekertem.
(#) petikkkeee válasza sherlock hozzászólására (») Feb 22, 2013 /
 
szia! Teljesen kielégítő válasz volt, és pont erre voltam kíváncsi. Köszönöm a segítséget.
(#) tom75 hozzászólása Feb 22, 2013 /
 
Amikor a csatolt képen látható figyelmeztetést kapom akkor mit kell állítani?
Ez okozhat olyan hibát hogy nem helyesen működik a program?
A hozzászólás módosítva: Feb 22, 2013

pic.png
    
(#) icserny válasza tom75 hozzászólására (») Feb 22, 2013 /
 
Azt mondja, hogy nem minden konfigurációs bitet állítottál be, győződj meg róla, hogy az alapértelmezett beállítások megfelelnek!
(#) tom75 hozzászólása Feb 22, 2013 /
 
Ezt én sajnos nem tudom, mivel nem tudok programozni ezért kértem segítséget.
(#) bbalazs_ válasza tom75 hozzászólására (») Feb 22, 2013 /
 
De azt viszont te tudod, hogy mit akarsz csinalni, ennek megfeleloen kell allitani a biteket. Vagyis mi ezt nem tudjuk erdemben megvalaszolni.
Kell a kapcsolasi rajz es a program.

Kb olyan kerdes, hogy mennyi sot tegyek az etelbe? Nem tudjuk, hogy husleves, palacsinta vagy eppen langos keszul-e.
(#) n_yálastrubadúr hozzászólása Feb 23, 2013 /
 
Jó reggelt! Nem válaszolt senki, de jelentem, hogy a 24,574Mhz-es kristállyal 12 óra alatt 3mp siet a gépemhez képest. (gondolom a gép azért azért ennyire nem pontatlan) Ezek szerint a kristállyal elég jól megy. Mekkora a tűrése e tekintetben amivel még tökéletesen fut, ha valaki próbálta? Azt viszont tapasztaltam, hogy sokkal többet eszik mint a sima 3,6864Mhz-essel. Kikapcsolt állapotban a trafó meghajtás elég volt 12%-oson. Ez folyamatosan leállt egészen 20%-ig.
(#) sherlock válasza n_yálastrubadúr hozzászólására (») Feb 23, 2013 /
 
A HS oszcillátorok használata mindig nagyobb áramot igényel. 3-as oldal.
http://ww1.microchip.com/downloads/en/devicedoc/31002a.pdf
Ez éppen azt hiszem a 32 bites család közös adatlapja, de ez éppen egy általános tulajdonság.
(#) n_yálastrubadúr válasza sherlock hozzászólására (») Feb 23, 2013 /
 
Jó persze az nem is anniyra meglepő, minthogy inkább az, hogy egyáltalán megy, hiszen 20Mhz, a felső határ az adatlap szerint.
(#) El_Pinyo válasza n_yálastrubadúr hozzászólására (») Feb 23, 2013 /
 
Szia!
A 20 MHz a garantált működési tartomány teteje. Nem azt jelenti, hogy 20MHz-en működik, de 20MHz + 1Hz-en már nem. Egészen egyszerűen a megfelelő működés nem garantált, lehet, hogy jó lesz, lehet, hogy nem.
(#) Hp41C válasza tom75 hozzászólására (») Feb 23, 2013 /
 
Milyen típusú kijelzőt használsz?
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Feb 23, 2013 /
 
Egy C-MOS áramkör (ugyan azt a funkciót ellátva) fogyasztása k*U*U*f.
A hozzászólás módosítva: Feb 23, 2013
(#) n_yálastrubadúr válasza El_Pinyo hozzászólására (») Feb 23, 2013 /
 
Értem én, ebben az estben jónak látszik a közel 25% -os többlet. A pontosság igencsak elfogadhatónak látszik, beleszámítva a többszöri indítás leállítás okozhatta tranzienseket. Azzal is tisztában vagyok hogy miért 20Mhz az adtlap. Ennyit vállal. De ezek szerint bármelyik pic ennyi töbletet elbír. Én csak azt kérdézném, hogy valaki kisérletezett e a pontosság kontra határfrekvenciával?
(#) potyo válasza n_yálastrubadúr hozzászólására (») Feb 23, 2013 /
 
Nem biztos, hogy sokkal többet elbír bármelyik. Amit 20MHz felett bír, az szerencse kérdése.

PIC32MX795F512L az mondjuk ment 120MHz-en is nekem

Pontosság a kvarctól függ, nagyfrekvenciás kvarcok kevésbé pontosak. 32768Hz-es kvarcok a legpontosabbak.
(#) n_yálastrubadúr válasza potyo hozzászólására (») Feb 23, 2013 /
 
Nem nagyon van akkora kvarcom. A pontatlanság logikusnak látszik. Csak az a baj, hogy így is agyalok az Ra4-et ki és bemenetként is használnom kell. Egy plusz óra kvarc bemenet szóba sem jöhet ebben a verzióban. De valamkor biztosan építek egy sokkal különlegesebbet ami full rgb - s lesz.
Következő: »»   372 / 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