Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   820 / 1320
(#) trudnai hozzászólása Okt 21, 2010 / 1
 
Most probalgatom az MPLAB X betat Linux alatt.

Kis ossze foglalo:

- Java alapu cucc, Netbean-en alapszik
- Windows, Linux es MacOSX is tamogatott
- PK2-t NEM tamogatja!
- Itt a Linux alatt a szimulator ugy tunik nem el, legalabbis a betaban nem
- Ugy tunik mintha ez egy modern fejlesztoi rendszer lenne, pl kiemeli a fuggveny neveket, valtozokat stb es igy klikkelesre lehet a forrasban a definiciora ugrani stb
- Tulajdonkepp nagyon szep es jo, kicsit talan lehetne gyorsabb is - gondolom ez a Java alap miatt van, hogy nem ugyanaz a feeling mint egy nativ kodu alkalmazassal...
(#) szilva válasza erdoszoli hozzászólására (») Okt 21, 2010 /
 
Azért szerintem kicsit meredek lenne olyan hardvert építeni, aminek a másik vége akár a 12Mbps, 3.3V-os logikai jelszintű USB-be, akár a maximum +/-25V-os jelszintű RS232-be is bedugható legyen, és mindkét esetben az elektromosan korrekt illesztés (lezárás) jöjjön létre.

Mivel az általad felsorolt kommunikációs felületeknek mindnek mások az elektromos követelményei (és ez nem csak a feszültségszintekre áll), ezért én nem tartom túl jó ötletnek, hogy ugyanazokon a csatlakozási pontokon akard ezeket fogadni. Már az RS485 és az RS232 között is óriási a különbség, de az USB végképp kilóg a sorból.

Jobbnak tartanám azt, ha mindhárom interface hardveres kezelését megépítenéd előírásszerűen, úgy, hogy a PIC felé mutatott oldaluk már egységes legyen, pl. egy TTL szintű, külön RX és külön TX vonalakkal kommunikáló, aszinkron soros átvitel. RS232 és RS485 esetén ez a megfelelő szintillesztőket, buffereket jelenti, USB esetén egy USB/soros átalakítót, ami lehet pl. FT232 is, de akár egy PIC is megfelelő firmware-rel.

Az interface-eket kezelő PIC programjába aztán lehet automatizmusokat beépíteni, amiknek segítségével felismerheti, hogy melyik vonallal kell kommunikálnia. A vonalak közötti választás is lehet tisztán szoftveres (mindhárom interface TTL jelei bemennek a PIC-be), vagy hardverrel támogatott (külső kapukkal, multiplexerekkel egy, a PIC felé néző RX/TX jelpár előállítása).
(#) watt válasza szilva hozzászólására (») Okt 21, 2010 /
 
Én eddig úgy tudtam, hogy az interfészek adottak, csak azt kellene eldönteni, hogy melyik kimenete legyen aktív és melyik protokol legyen kiválasztva. Bár ha különböző csatlakozóval oldjuk meg a "kiválasztást", akkor a kimeneteket sem kell vezérelni...
(#) szilva válasza watt hozzászólására (») Okt 21, 2010 /
 
Igazad lehet, engem ez a hozzászólás kavart meg egy kicsit:

Idézet:
„Elindultam azon az úton hogy a jelszintet figyelném.”


Viszont ha az illesztők megvannak, akkor csak az adatforgalom vagy a csatlakozó mechanikai csatlakoztatásának észlelése marad. Az USB kommunikáció azért kicsit eltér a másik kettőtől, mert ott akkor is kell "dolgoznia" a firmwarenek, amikor éppen adatcsere nem történik. Ha az adatkommunikáció elviseli a soros porti kommunikáció lassúságát, akkor én valószínűleg az USB-s interface-t is egy USB/soros átalakítóval ilyenre hoznám, a PIC-ben futó programnak így csak egyféle típusú kommunikációt kell ismernie, maximum az interface-ek között választ.
(#) watt válasza szilva hozzászólására (») Okt 21, 2010 /
 
Igen, én is pl. egy FTDIxxx-re gondoltam volna.
Viszont nem csak fizikai protokol jelenthet gondot, sokkal inkább a magasabb szintű.
Aza baj, hogy igazából azt se tudjuk milyen eszközöket akar rádugni, mert nagyon nem mindegy, hogy gyári cuccokat, vagy saját gyártmányú eszközöket, amiknek a protokolját is maga írja, azaz esetleg be tudnak jelentkezni. Kevés az infó...
(#) icserny válasza trudnai hozzászólására (») Okt 21, 2010 /
 
Ez mindenképpen érdekes hír, van itt egy előadás is róla.

Ami számomra a legmeglepőbb, hogy van LINUX-os (parancssori) változata az MCC18-nak is. Kicsit hülye helyre települ, de az elérési út megadása után (export PATH=$PATH:/opt/microchip/mplabc18/v3.36/bin) ez már nem különösebben érdekes.

Az example1 (leds.c) mintaprogram lefordítása pl. így ment:
mcc18 -p 18f452 -I /opt/microchip/mplabc18/v3.36/h leds.c

A linkelés már egy kicsit cifrább:
mplink -oleds.cof -l/opt/microchip/mplabc18/v3.36/lib -k/opt/microchip/mplabc18/v3.36/bin/lkr 18f452_g.lkr leds.o p18f452.lib clib.lib

De végül előállt a leds.hex állomány (nem próbáltam ki!)
(#) trudnai válasza icserny hozzászólására (») Okt 21, 2010 /
 
Hmm, nem rossz! A vegen lesz egy elfogadhato fejlesztoi eszkoz keszletuk
(#) watt válasza icserny hozzászólására (») Okt 21, 2010 /
 
Mi ez az önsanyargatás!?
(#) erdoszoli válasza watt hozzászólására (») Okt 21, 2010 /
 
Sziasztok,
köszi watt és szilva a gondolatokat.
A szituáció akkor megint pontosítva az hogy egy csatlakozó felületem lesz adott a panelen, ezen keresztül kommunikál az eszköz, de különböző területeken(akár más országokban) más más interface-t használnak , ezért egy univerzális eszköz létrehozása a cél(1.fázis kész) Namost addig problémamentes a dolog hogy a felhasználóra bízom az utolsó lépést miszerint Ő állítja be a panelen lévő jumperek segítségével hogy a csatlakozóról a jel melyik illesztőre menjen( és persze hogy a PIC is tudja mit használ az is külön jumper). Jött az ötlet milenne ha a felhasználót kizárnám és intelligensen megtudnám vizsgálni a jelet és a PIC maga eldönti mit és hogyan használjon. Namost a kommentekből is meg pár napos agytörés után is odáig jutottam hogy naturba nem fog menni. Szóval mostmár a soksok jumpertől eljutottam egy DIN kapcsolóig ami a kommunikáció tipusát választja meg , a PIC ezután tudja hogy multiplexeren, switchereken keresztül melyik illesztővel kell kommunikálnia. Határidő sürget, szóval ennél egyszerűbbet "felhasználó barátibbat" már nem fogok találni.
(ez már tényleg nem ebbe a forumba tartozik)
Azért köszönöm a kommenteket!
Szép napokat
(#) watt válasza erdoszoli hozzászólására (») Okt 21, 2010 /
 
Bevallom még mindig nem értem. Hogyan fogsz tudni egy féle csatlakozóval többféléhez kapcsolódni? Az interface-ek azonos csatlakozóval vannak ellátva? Mik ezek az interface-ek, titok?
(#) erdoszoli válasza watt hozzászólására (») Okt 21, 2010 /
 
Léteznek csatlakozók , lehetnek bármilyen alakúak, lpt-től kezdve usb-ig, speciel nekem 8pólusú telefon alj a kérés, és abba dugnak bele olyan kábeleket aminek egyik vége telefoncsati, a másik vége meg épp amit használnak és természetesen a 8 vezeték bekötése adott ( táp, föld, jelvezetékek stb... ), és igen többféle kábel van, de az egyik vége mindnek telefoncsati, a másik lehet tényleg bármi csak jól legyen bekötve és ugye azt használják amit akarnak.Jó példa az ilyen kábelra a telefonok adatkábele.. mindegyik márkának más csatlakozása van a telefonon, és usb-ben végződik. Amúgy ha valaki most húzza a szemöldökét az "ostoba" problémámra , igen én is húztam mikor ilyennel előállt valaki..
(#) Gamedavid válasza icserny hozzászólására (») Okt 21, 2010 /
 
Ezen a listán is ugyan azokat írja támogatottnak, de attól még továbbra sem jól, sajnos...
Idézet:
„Tehat ha a program memoriaba toltene el a programozoi adatokat, akkor igen, 10ezer chip valtas utan lehet pk3-at kidobni.”

Ezek szerint akkor nem gond,ha én csak max 4-5 félét szeretnék programozni, akkor sosem érné el a 10000-et. Jól gondolom? Köszi a segítségeteket továbbra is.

ui: Nem kell valakinek PICkit 2?
(#) icserny válasza watt hozzászólására (») Okt 21, 2010 /
 
Az önsanyargatás az lett volna, ha felrakom a böhönc IDE-t is. Azt most megspóroltam... Ja, és mindez egy 800 MHz-es Pentium III gépen történt.
(#) trudnai válasza icserny hozzászólására (») Okt 21, 2010 /
 
Idézet:
„Ja, és mindez egy 800 MHz-es Pentium III gépen történt.”


Hat Te tenyleg onsanyargato vagy
(#) trudnai válasza Gamedavid hozzászólására (») Okt 21, 2010 /
 
Idézet:
„Ezek szerint akkor nem gond,ha én csak max 4-5 félét szeretnék programozni, akkor sosem érné el a 10000-et. Jól gondolom?”


Nem ez a lenyeg, hanem, hogy hanyszor valtasz celeszkozt. Tehat ha van 2 fajta PIC-ed, ez 5ezerszer valtasz a ketto kozott, akkor ugye az 10ezer feluliras a PICkit3 chip-jeben...

Amit Hp41C javallott, hogy akkor lehet jobb ha ketto db PICkit3-t veszel, vagy ha 4-5 fajta PIC-ed van akkor inkabb 4-5 db-ot, es akkor nem valtogatsz FW-t a programozoban.

Majd megkerdezem vagy rakeresek a Microchip oldalan, hogy hova tarolja a PICkit3 ezeket az infokat, hogy valoban a program memoriaban vagy esetleg az adat eeprom-ban -- mert ez utobbi 1 milla irast is kibir, tehat ott nem jelenthet igazan gondot.
(#) laci222 hozzászólása Okt 21, 2010 /
 
Bocs, még kezdő vagyok. Hol lehet kapni 16f877p típusú picet?
Kösz
(#) vicsys válasza laci222 hozzászólására (») Okt 21, 2010 /
 
(#) lidi válasza laci222 hozzászólására (») Okt 21, 2010 /
 
Vagy a chipcad nél még olcsóbb. De az utódja mégolcsóbb, a 887-es.
http://www2.chipcad.hu/www/arak.aspx?group=010103
(#) watt válasza erdoszoli hozzászólására (») Okt 21, 2010 /
 
Erre azért tényleg kíváncsi leszek, hogy a különböző feszültségszintű kommunikációs vonalakat hogy tudod két vonalra(Rx/Tx) összehozni!
Vagy az átmeneti kábelben lesz az interface?
Ha igen(én mást el sem tudnék képzelni), akkor van elég vezetéked a 8-ból, hogy a kábelen keresztül jelezd(annak különböző bekötéseivel), hogy melyik protokolt kell elővenni! Ha csak 4 vezetéket binárisan értelmezel, 16 féle protokol kiválasztását is meg tudod oldani. 2 vezeték a táp, két vezeték a kommunikáció, 4 vezeték a kód.
(#) laci222 hozzászólása Okt 21, 2010 /
 
Teljesen most kezdem el a picezést. A honlapon találtam egy cikket a nulláról a robotokig és abban az első tesztáramkörben egy pic16f877p típust használ. Ezt ki lehet váltani a 887-essel?
(#) watt válasza laci222 hozzászólására (») Okt 21, 2010 /
 
Igen, ajánlott is. Azért némileg eltér, de ez nem akkora probléma, az adatlapból könnyen ki lehet mazsolázni az eltéréseket.
(#) Hp41C válasza watt hozzászólására (») Okt 21, 2010 /
 
Szia!

Ha a PIC -ben van A/D, akkor egy vonal is elég, az illesztőkben egy-egy ellenállásokkal beállított feszültség osztó leágazását kellene egy éren eljuttani a PIC analóg bemenetére.

Ha az illesztő a vezetékben van, már egész egyszerű a feladat: USB esetén USB -> UART konverter, RS232 esetén MAX232, RS422 és RS485 esetén terminálás és 75175, stb. Ekkor az adatforgalom már tényleg az uart TX és RX vezetékén menne....
(#) SzAndras00 válasza laci222 hozzászólására (») Okt 21, 2010 /
 
Szia, csak mielőtt vásárolnál, nézd meg,hogy hogyan ér véget a sorozat.
(#) watt válasza Hp41C hozzászólására (») Okt 22, 2010 /
 
Idézet:
„Ha az illesztő a vezetékben van, már egész egyszerű a feladat:”

Igen, ezt írtam én is.
Az A/D-s megoldás jó ötlet. Én gombok kezelésére használtam egyszer.
(#) lidi hozzászólása Okt 22, 2010 /
 
Üdv !

Akit érdekel: Van már PicKit 3 -hoz különálló kezelő progi (még beta!) : http://www.microchip.com/forums/m525698.aspx
Így már nem csak mplab alól lehet használni.
(#) Corp hozzászólása Okt 22, 2010 /
 
Nem sok tapasztalatom van még PIC téren. Volna 1 érdekes kérdésem. Nem tudom, hogy mit szúrtam el.

PIC16f690-es -el csináltam egy panelt, A C portjait használnám, de valamiért a C0-C2-t nem tudom magasra állítani- a multiméter szerint. A C6 működik.

A majdnem kész kódot megheréltem mire erre jutottam.

A lábakon semmi terhelés sincsen, se földzárlat.

Mi lehet a hiba?

A kód:
[code=c]

LIST P=16F690
INCLUDE "P16F690.INC"

TIMER1 EQU 0x20
TIMER2 EQU 0x21
ERTEK_H EQU 0x22
ERTEK_L EQU 0x23
SOR_H EQU 0x24
SOR_L EQU 0x25
OSZL_H EQU 0x26
OSZL_L EQU 0x27
TEMP1 EQU 0x28
TEMP2 EQU 0x29
ADL EQU 0x30
ADH EQU 0x31


ORG 0X04

START


BANKSEL TRISC ;BANK1
MOVLW b'00000001'
MOVWF TRISC
BANKSEL PORTC
MOVLW 0xff
MOVWF PORTC



MAIN
CALL WAIT
BSF PORTC,1 ;Kijelző OSZLOP
BSF PORTC,2 ;Kijelző SOR
BSF PORTC,6
CALL WAIT
CALL WAIT
BTFSS PORTC,0 ;Kijelző érzéklés
GOTO MAIN

BCF PORTC,6
BCF PORTC,2
call GO_AD
call GO_CONV
call GO_SERIAL

BSF PORTC,2
BCF PORTC,1
call GO_AD
call GO_CONV
call GO_SERIAL

GOTO MAIN

GO_AD;PORTA.2 digitalizálása

RETURN

GO_CONV;Kuldeshez elökészítés

RETURN

GO_SERIAL;3bájt sorosportra küldése

RETURN

WAIT
MOVLW 0x00
MOVWF TIMER2
CLRF TIMER1
DECFSZ TIMER1,1
GOTO $-1
DECFSZ TIMER2,1
GOTO $-4
RETURN
END
(#) Hp41C válasza Corp hozzászólására (») Okt 22, 2010 /
 
Szia!

Az analóg egységet is tartlamazó kontrollereknél azokat ki kell kapcsolni, hogy a digitális be- vagy kimenetet lehessen használni...
A 16F690 -nél az ANSEL és ANSELH regiszterekkel történik...
(#) icserny válasza laci222 hozzászólására (») Okt 22, 2010 /
 
Ha most kezded el, akkor szánj még egy kis időt az olvasgatásra, nézd meg, mit veszítesz, ha pl. PIC18 vagy PIC24 helyett PIC16-tal foglalkozol, amelynek nyűgösebb a progamozása.

Tananyagot PIC18-hoz a honlapomon itt és itt találsz, PIC24-hez pedig
emitt.

Ezeket azért érdemes legalább futólag megnézni, mert kiderülnek belőle a fejlettebb mikrovezérlők jellemzői.
Az első 5 fejezetet az MPLAB szimulátorának segítségével lehet tanulmányozni, tehát mielőtt pénzt költenél,már el tudod dönteni, hogy melyik mikovezérlő tetszik, mire van szükséged.
(#) laci222 hozzászólása Okt 22, 2010 /
 
Az a kérdésem lenne még, hogy pár kérdéssel előrébb megemlített cikkben levő pic 16f877-es. Ez megegyezik a 16f877A-I/P típussal?

Laci
(#) icserny válasza Corp hozzászólására (») Okt 22, 2010 /
 
Idézet:
„valamiért a C0-C2-t nem tudom magasra állítani”
Nem tudom, hogy neked feltűnt-e, de RC0-át bemenetnek állítottad be:
  1. BANKSEL TRISC    ;BANK1
  2.     MOVLW b'00000001'
  3.     MOVWF TRISC
Következő: »»   820 / 1320
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