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   868 / 1210
(#) don_peter válasza pajti2 hozzászólására (») Okt 19, 2016 /
 
Így tettem.
Definícióhoz nem nyúltam..

Tasznka: Analóg részhez nem nyúltam.
De gondolom a gomb nem analóg, hanem digitális, de megnézem..
A hozzászólás módosítva: Okt 19, 2016
(#) f2f2 hozzászólása Okt 19, 2016 / 1
 
Eszméletlenül örülök mint egy kisgyerek csokimajszoláskor.
Sikerült mentesülnöm a párhuzamos kábeltenger_hardveremtől
mivel felváltottam soros megoldással és most a 18F46K22
szolgáltatja a szükséges jeleket mint eszközprogramozó.
Vcc IRQ RESET és a soros kimeneteket könnyedén
tudom prezentálni.
Épp most lettem kész és MC68HC908 as motorolára az imént
írtam flash állományt sikerrel. A programozók javarésze csak az eepromot tudja írni.
muszály volt megoldanom háztájiiban.
A PC programom át kellett alakítani a PIC re csak egy kis kezelő progit írtam.
Lényegében ezen van 3 üzemmód, melyeket a RS232 RTS DTR el kezelek
és ezeket a megfelelő helyeken figyeli a PIC.

1.mód itt a portB bármilyen változásakor soros értesítést rövid csomagban küld
illetve a USART2 inputra is szintúgy. E módban PC ről USART1 re küldött
1 byte a szükséges kimeneteket állítja most elég volt 3.

2.mód RST fel
ekkor PC ről küldhetek 5 byte ot, ami a belső órajelet és az USART1 és 2
baudrate-t állítja. Itt vigyáznom kell, hogy az USART1 et hagyjam meg
változatlan különben át fog állni és a következő PC byte értelmetlen lenne,
ha a PC nem áll át. Ezután vissza állhatna 1. módra és másképp ketyegnek a dolgok.
Itt 1-5 ig teszőleges üzenet érkezhet a PC től az RST vel bármelyik után ki tud lépni, de ha beérkezik az 5 byte üzenetben értesít, hogy többet ne küldjek.

3.mód DTR fel
ez csak arra van hogy mindent visszaállít kezdetire és pár fontos
regből üzenetcsomagot küld.

Minden lényeges helyről értesítést küld és a 3 LED mutatja melyik módban vagyok.

És hogy ezt elkezdtem építeni/tervezgetni csakis az itteni segítségekkel
valósult meg.
Ha Hp41C pár hónapja nem írt volna ezt azt hol lettem volna most ?
Köszönöm!
A hozzászólás módosítva: Okt 19, 2016
(#) pajti2 válasza don_peter hozzászólására (») Okt 19, 2016 /
 
Idézet:
„Így tettem.
Definícióhoz nem nyúltam..”

Idézet:
„Áttírt kód: (eredeti kommentelve)”

Idézet:
„#define mInitSwitch2()
//#define mInitSwitch3()”

Idézet:
„#define sw2
//#define sw3”

A hozzászólás módosítva: Okt 19, 2016
(#) pajti2 hozzászólása Okt 19, 2016 /
 
Filozok optikai adatátvitelen.

Például simán ráküldeni egy spi port kimenetet, meg órajelet optikára, és a visszaérkező jelet is azon vinni. Valamennyi csúszása biztos lesz úgy az időzítésnek, de nem kell, hogy gyors legyen, és a kicsi sebesség elbír valamennyi csúszást. Ami a sebesség helyett kell, hogy galvanikusan leválasztott, közvetlen kommunikáció legyen, és frekvencia generátorral meg kondenzátorokkal játszadozni sem sokkal egyszerűbb, mint optikával.

Ha valaki interface-elt már optikai adatátvitelt mondjuk soros porthoz akár, kérnék pár tippet, hogy szerelési anyagokat milyen áron / minőségben lehet beszerezni, és honnét.

Előre is köszönöm.
A hozzászólás módosítva: Okt 19, 2016
(#) mrobi válasza pajti2 hozzászólására (») Okt 19, 2016 /
 
Szia. Este majd irok egy kis útmutatást.
(#) don_peter válasza pajti2 hozzászólására (») Okt 20, 2016 /
 
Ebből már nem mászom ki, de a lényeg, hogy nem írtam át a definiált megnevezéseket, csak a PIC PIN-eket, abból is csak annyi történt, hogy a LED-es visszajelzést nem használom, illetve az eredetileg E7, E6-ra rakott gombokat áthelyeztem E8-ra.
Szóval csak ennyit tettem, de ez elég volt ahhoz, hogy ne működjön..
(#) don_peter válasza don_peter hozzászólására (») Okt 20, 2016 /
 
Srácok PIC32MX795-nél a AD1PCFG-vel tudjuk változtatni az analog/digitális bemeneteket.
A kérdés, hogy akkor analóg e ha 1-re van állítva, vagy akkor ha 0-ára?
Én így használom:
  1. AD1PCFG = 0xFFFF; //Minden lába digitális

Mikor van minden láb digitálisra állítva?
Már megkeveredtem.
Köszi előre is.
(#) icserny válasza don_peter hozzászólására (») Okt 20, 2016 /
 
Idézet:
„A kérdés, hogy akkor analóg e ha 1-re van állítva, vagy akkor ha 0-ára?”

Adatlap a barátod: "Setting the corresponding bit in the AD1PCFG register = 1 enables the pin as a digital pin." Tehát 0: analóg, 1: digitális mód.
(#) icserny válasza don_peter hozzászólására (») Okt 20, 2016 /
 
Idézet:
„az eredetileg E7, E6-ra rakott gombokat áthelyeztem E8-ra.”
Nagyon zavaros számomra ez a történet!
- Két gombot hogy raktál át egyre?
- Az alkalmazást módosítottad, vagy a bootloadert, netán mindkettőt?
- Melyik bootloadert használod? Az AN1388-ban ismertetett bootloader történetesen pont azt a Switch3-at használja, amelyet a korábbi hozzászólásod szerint kommentbe tettél.
(#) don_peter válasza icserny hozzászólására (») Okt 20, 2016 /
 
Akkor ezt jól értelmeztem..
Természetesen az adatlapot használva jutottam el idáig én is, de gondoltam megkérdezem, mert már nem tudom mire vélni a hibás működéseket..
(#) don_peter válasza icserny hozzászólására (») Okt 20, 2016 /
 
Közben meglett a hiba..
Vagy is nem volt hiba, a hiba bennem volt.
Módosítottam a bootloader programot, de soha nem a módosított hex állományt töltöttem be a PIC-be ezért nem volt hajlandó úgy működni ahogyan én akartam.
Most vettem észre, hogy mindig a gyárit töltöm be.
Betöltöttem a módosítottat és azonnal működik
Köszi a rávezetést srácok..

Már csak a 68K + szintillesztő + memória párost kell megoldanom, mert egyelőre hiába vezérlem én a megbeszélt módokon, semmi változást nem tudtam elérni..
(#) ktamas66 hozzászólása Okt 20, 2016 /
 
Sziasztok!
Használta már valaki a PIC beépített műveleti erősítőjét? Nekem eddig nem sok sikerem volt vele. Működni működik, de néha "kiakad".
(#) Pali79 hozzászólása Okt 20, 2016 /
 
Sziasztok!
Szerintetek hogyan tudok javítani ezen a nyákon? A gond az, hogy a tápfesz figyelő lábra valahogy az elemről is elmegy a feszültség egy része. 1,7 V körül van a lábon és ezért nem megy sleep-be hiába kapcsolom ki a tápfeszt.
(#) f2f2 hozzászólása Okt 20, 2016 /
 
Lenne még egy dolog hátha valakinek lenne jó ötlete.
Bizonyos eszközökkel kommunikáció alapból lassú biztonságos
sebességgel megy ezekkel itt nincs is gondom
de van amikor nagyobb állományt kellene lehoznom róla
és ahogy növelném a baudrate a két beszélgető eszközön
leáll valamelyik nem érti meg a másikat viszont a PC oldalon
úgy van megírva hogy folyamatosan próbálkozik és ha ekkor növelem
a soros csatorna feszültségét egyszer csak elkapja és megy.
már használtam BC547 és 546 ot is mindkettővel ez fennáll.
Kline ról írok ez alapból 9V-10.25V között használom de amikor ez van
símán 12 13V ig fel kell tekernem.
A max232 után mit ajánlotok, hogy már 9-10.25v nál is
a jel 57600bps felett is hibátlan forma legyen ?
Még nem jöttem rá, hogy amit kiküldök azt nem érti vagy megérti
és az ő válasza a max232 PC oldalára síri csendet jelentsen.
A BC tranyók helyett próbáltam már N-csatornás Mosfet et is
nem lett jó eredmény.
Jelen pillanatban 5V tól tudom tekerni 15V ig, de a megoldás az lenne, ha
nem kellene állítgatni a sebesség miatt
A BC546 leírását nézve nem kellene gondot okoznia egy 57600 bps
tempo.
(#) ktamas66 válasza Pali79 hozzászólására (») Okt 20, 2016 /
 
Próbálj egy diódát sorba kötni a figyelő ellenállással. Lehet az egészet érdemesebb lett volna úgy kialakítani, hogy az egyéb alkatrészekhez külön menő 5V-ban is benne legyen egy dióda mert így a gombokról pont egy diódányival nagyobb feszültség jön vissza, mint a PIC tápja, amit a bemeneteken levő védődióda vezet el. Ez a dióda megakadályozná a elem feszültségének visszahatását a tápra, így a dióda előtt lehetne figyelni a táp meglétét.
(#) attika hozzászólása Okt 21, 2016 /
 
Sziasztok.
Ez a két beállítás így megegyezik vagy valamit nem jó állítottam be?
  1. __CONFIG(FCMDIS&IESODIS&BOREN_XSLP&UNPROTECT&MCLREN&PWRTEN&WDTDIS&INTIO);

  1. #pragma config FOSC = LP        // Oscillator Selection bits (LP oscillator: Low-power crystal on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN)
  2. #pragma config WDTE = ON        // Watchdog Timer Enable bit (WDT enabled)
  3. #pragma config PWRTE = ON       // Power-up Timer Enable bit (PWRT enabled)
  4. #pragma config MCLRE = ON       // MCLR Pin Function Select bit (MCLR pin function is MCLR)
  5. #pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
  6. #pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
  7. #pragma config BOREN = ON       // Brown Out Detect (BOR enabled)
  8. #pragma config IESO = ON        // Internal External Switchover bit (Internal External Switchover mode is enabled)
  9. #pragma config FCMEN = ON

Az első sort még egy régebbi fordítóra írták, a forrás innen az oldalról származik.
Az MPLAB X Ide 3.40 ezt a configot nem fogadja el mert ennél már kézzel kell beállítgatni a config biteket.
Ha ki kommentezem az első sort akkor lefordítja hiba nélkül de a config bitek nem biztos, hogy jók.
(#) Hp41C válasza attika hozzászólására (») Okt 21, 2016 /
 
Idézet:
„INTIO -- FOSC = LP”

A régi belső órajelet választ ki, az OSC1 és OSC2 digitális I/O -- az új LP oszcillátort.
Idézet:
„WDTDIS - WDTE = ON”

A régi letiltja a watchdog -ot -- az új engedélyezi
stb..
Nyisd meg a projectet, keresd meg az include könyvtárakban a <kontrollertípus>.inc állományt, lapozz el a konfiguráció bitekhez. Itt megtalálhatod mit mire kell állítani, hogy azt a konfigurácuót kapd, amit a régiben használtál.
A hozzászólás módosítva: Okt 21, 2016
(#) Pali79 válasza ktamas66 hozzászólására (») Okt 21, 2016 /
 
Hát bavallom őszintén nem nagyon értem, hogy hol megy vissza az elemről a feszültség az ellenállásra, meg a Te javaslatod sem igazán értem, mármint, hogy miért jobb. Direkt azért tettem a diódát közvetlenül a PIC mellé, hogy nem tudjon másmerre utat találni, de valami nem jött össze.
Szóval beraktam még két diódát, de sejtésem szerint nem kell csak az egyik. Az egyik a tápszűrő kondi mellett, a másik az LCD bal oldalán van.

panel.pdf
    
(#) nedudgi válasza f2f2 hozzászólására (») Okt 21, 2016 /
 
Milyen távolságról, milyen kábelezésről, és milyen adatmennyiségről van szó?
A hozzászólás módosítva: Okt 21, 2016
(#) Hp41C válasza f2f2 hozzászólására (») Okt 21, 2016 /
 
Szia!
A tranzisztoros RS232 szintillesztés maximum 9600 .. 19200 baud is használható rövid kábel esetén. A problémát az okozza, hogy a hosszabb kábel kapacitása és a meghajtás módja (csak az egyik szintnél van alacsony meghajtó impedancia) eltozítja a jelet.
Használj max232 -t vagy 3.3V -nál is üzemelő max3232 -t:
Idézet:
„The devices operate at data signaling rates up to 250 kbit/s and a maximum of 30-V/μs driver output slew rate.”
(#) Pali79 válasza ktamas66 hozzászólására (») Okt 21, 2016 /
 
Szerintem máshol lesz a hiba. Ha kiveszem a PIC-ket a foglalatból, akkor nincs feszültség az ellenálláson. De ez mitől lehet?
A hozzászólás módosítva: Okt 21, 2016
(#) ktamas66 válasza Pali79 hozzászólására (») Okt 21, 2016 /
 
Így gondoltam. Kell egy kis idő míg kisül az 5V kondija, bár ez terheléstől is függ.

Figyelés.JPG
    
(#) Pali79 válasza ktamas66 hozzászólására (») Okt 21, 2016 /
 
Hát ez így nem fog menni, ehhez át kellene tervezni a nyákot. Viszont, mint fent is írtam ha nincs benne a foglalatban a PIC az ellenálláson nincs feszültség, tehát nem a diódákon keresztül jut el a feszültség a figyelő ellenállásra.
(#) ktamas66 válasza Pali79 hozzászólására (») Okt 21, 2016 /
 
A PIC-ben levő védődiódákra gondoltam, ami nem engedi, hogy egy lábra a tápnál magasabb feszültség jusson.
(#) Pali79 válasza ktamas66 hozzászólására (») Okt 21, 2016 /
 
De nem pont így jut nagyobb feszültség az RA0-ra mint a táp?
(#) f2f2 válasza Hp41C hozzászólására (») Okt 21, 2016 /
 
Na most ha ugyanezt a cuccosomat (Kline)
letekerem 5 V ra és ilyen eszközzel beszélgetek,ami Logic-1 5V Logic-0 0V
akkor nincs gond a nagy sebeségekkel pld van amin 125000Bps el ketyegek,
de ha feltekerem 9 és 10 környékére és 9Voltos Kline eszközzel nyomatom
akkor valamelyik nem érti a másikat nem hiteles üzenetek érkezhetnek.
de hurokban pörgetem (bombázom) poti feljebb és megy.
Ha tranyók nélkül directben MAX232N vagyis a 9.10 pinnel dolgozok
nagy sebeségnél nincs gond sőt ha a 10.pinre diódát teszek
hogy ha a küldő eszköz leviszi a jelet akkor a max232 5V ját leviszi 0 ra
ekkor is jó. viszont ha a 9.pinre 2 tranyós át és visszafordítósan 9V Kline
ra emelem, akkor ha a 10.pinre 1:1 ben a Kline csatornát rákötöm még jobb,
mintha diódát teszek be, akkor ugyanis kommunikációs értetlenség
hamarabb jelentkezik talán még 31250BPs alatt.
Van olyan illesztő chip, mint a max232 csak 10V magasságába tartaná a jelszintet LOGIC-1 nek ? esetleg nem is 5V voltból lélegezne ?
Jelen pillanatban nem tudom annyira feltekerni, hogy 60000Bps magasságában is jó legyen
a felénél van a plafon most.
Kössz
(#) ktamas66 válasza Pali79 hozzászólására (») Okt 21, 2016 /
 
De igen. Ezért kell az ellenállás, hogy korlátozza az áramot. Nagy áram amúgy sem alakulhat ki mivel ott is egy dióda van, tehát nem lehet nagy feszültségkülönbség, de biztos ami biztos.
(#) pajti2 válasza mrobi hozzászólására (») Okt 21, 2016 /
 
És el is küldöd, amit írtál? Még nem érkezett meg..
(#) Hp41C válasza f2f2 hozzászólására (») Okt 22, 2016 /
 
Ha a MAX232 V+ (2) lábáról a kondenzátor a Vcc (16) lábára megy, akkor a kimeneti szintek +9..10 / -9..10V voltosak lesznek. Van más meghajtó is, de azoknak két serédfeszültség kell az RS232 szintek kialakításához és általában két fajta áramkör kell az adáshoz és a vételhez:
MC1488 (adó) és MC1489 (vevő), MC14C88 (adó) és MC14C89 (vevő), SN75C188 (adó) és SN75C189 (vevő), SN75150 (adó) és SN75154 (vevő) Esetleg egy tokban : ST75185C
(#) f2f2 válasza Hp41C hozzászólására (») Okt 22, 2016 /
 
Hogy ne értsük félre egymást
a max232 7.8. PC oldali -9 Logic-1 +9V Logic-0 val nincs gondom
és a túloldalról beszélek ami +5V Logic-1 0V Logic-0
erre kérdeztem mivel lehetne megoldani, hogy egy IC ből már ez
+9~10V körüli szintet tartson Logic-1 nek és 0V ot L.0 nak
1 segédfesszel. Nincs ilyen 12V osan ?
Nyílván akkor nem RS232 TTL illesztő neve lenne.
A hozzászólás módosítva: Okt 22, 2016
Következő: »»   868 / 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