Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Ha már földelés! Mi a helyes eljárás (ha van ilyen) ha egy nagy kapcsolószekrénybe PIC-ek vezényelnek mágneskapcsolók és relék "között", valamint van egy pár IGBT is, amiből az egyik egy DC motort hajt PWM-el? Mi van ha a PIC GND-t lekötöm a fémházra, illetve nem? Segít vagy ront a helyzeten? Zajra vagy egyéb olyan tényezőre gondolok, ami zavarhatja a PIC működését.
Jelenleg a PIC-ek egy elkülönített kisebb szekrényben vannak, de a becsatlakozó vezetékek - nem árnyékolt - a másik szekrényből esetleg okozhatnak problémát. A mostani felállás szerint minden bemeneten van egy 100nF-os kondi szűrés gyanánt, de nem vagyok benne biztos, hogy ez így elég-e.
Na az valóban zajos környezet. Amit megtehetsz az az, hogy minden bemenetre felhúzó ellenállás kerül 10k és 100nF kondi a földre. Ezt megteszed a mikrokontrolleres oldalon és a másik oldalon is az már jó. Remélem a PWM-es rész is megfelelő snubber elektronikát tartalmaz.
A legjobb ha a mikrokontrolleres vezérlés külön árnyékoló dobozt kap. A dobozon belül a doboz. Ha közvetlenül a PIC tápja a lehető legközelebb meg van szűrve 100nF-al, akkor azt nehéz bezavarni hosszú távolságon szállított kábellel is. Fontos a csillagpontos földelés. Lehetőleg minden egy csavarral legyen földelve a házon. Ne legyen földhurok sehol!
A legtöbb bemenet már így van 1-2 kivételével. A PWM-nél az IGBT-vel és a motorral párhuzamosan van egy-egy gyors dióda, valamint a motornál még egy 1000µF kondi. PIC-nél 100nF kondi közvetlenül a táplábaknál és még egy 2200µF a betáp csatlakozónál.
A panelek a GND-je telifölddel csatlakozik a fémházhoz csavarral.
Sziasztok!
PIC-be szeretnék soros porton adatokat küldeni MAX232-es IC-vel. PIC-ből kifelé működik a dolog, scóp szerint a TTL 5V-os jelből gyönyörű 12V-os jel lesz amit normálisan értelmez is a Hyperterminál. Viszont amikor a PC-ből kommunikálok a PIC felé a 12V-os jelből csupán néhány tizedvoltos vagy maximum egy voltos tüskéket tapasztalok. A MAX232 8-as lábára adom a PC felől érkező jelsorozatot és a 9-es lábon mérem a piciny tüskéket. IC-t már cseréltem de ugyanez a hibajelenség. Okozhatja a problémát az hogy 10µF kondikat használok? üdv.
Hülye kérdés, de szabadon lóg a 9-es láb, vagy be van kötve a PIC-be? Nincs véletlenül a PIC lába kimenetté konfigurálva?
Akár szabadon lóg akár a PIC-re megy ugyanaz a jelenség.
A konfiguráciaó egyébként jó
Szia!
Javaslok 3 mérést/tesztet, amit végezzel, ha még nem tetted meg. #1: Vs+ fesz mérése a MAX 2-es lábán, 7-8 Volt körüli feszt kellene mérni, valamint mérd meg a Vs- feszültséget is a 6-os lábon, itt ugyanazt a feszültség szintet kellene mérni csak negatív polaritással a földhöz képest. Bár ha a PIC felől a PCre megérkeznek a jelek ezért szeirntem ezek a feszültségek jók. #2: Válaszd le a PIC-et a MAXről, vagyis legalább a PIC TX-ét, majd kösd össze a MAX 9-es 10-es lábát, így ha valamit elkezdesz gépelni terminálban a PC oldalon, akkor vissza is kell kapnod ugyanezt, ha nem, akkor: #3: csináld meg a hurkot a MAX előtt vagyis a 7 és a 8-as láb között. Ha ezután sem kapod vissza a begépelt karaktereket akkor két dolog lehet: - a terminál rosszul van beállítva - vagy a soros porton a TXet (mivel az RX jónak tűnik a lertak alapján) rossz helyre köttötted be. A hozzászólás módosítva: Dec 6, 2013
A mérések eredménye :
2-es lábon 4,6V 6-os lábon -4,7V A 9-10 összekötésével nem küld vissza semmit. A 7-8 as lábon működik de sajnos ez csak azt bizonyítja hogy a PC felől jó a beállítás.
Ha nem írod le a várandó feszültségeket sose jövök rá hogy tápprobléma.
Megoldódott, a 15 kivezetés nem találkozott a GND-vel. Nagyon köszönöm az instrukciókat
Sziasztok,
Volna egy kerdesem. Talalkozott mar valaki olyannal, hogy egy NV eszkoz amnezias? Peldanak okaert egy dupla digipot egyik fele megtartja a tarolando erteket, a masik oldal nem. Az eszkoz amirol szo van egy MCP4661.
Tud valaki egy példaalkalmazást a LSM303DLHC chip használatára PIC CCS programnyelven I2C kommunikációs vonal használatával.
Azt szeretnéd ha piccel kommunikálna a chip ?
Igen.Ez egy 3 tengelyes magnetic és acceleration szenzor. Ezt a 6 értéket szeretném belőle kiolvasni.
Ha megy az I2C kommunikáció, a chip adatlapjából ki tudod lesni, hogy mit kell küldeni. Ha nem megy az I2C, akkor először azt kell kibogoznod.
Szia!
Használtam és használok is digi potit, de még az említett jelenséggel nem találkoztam. Gondolom az NV Wiper regisztereket akarod írni, illetve írod is és egy reset utáni állapot kiértékelése után jutottál arra a következtetésre, hogy csak az egyik poti jegyezte meg amit beleírtál, igaz? Megosztanál egy kicsit több információt, hogy érdemben tudjunk segíteni? Pl: - a WP pin-t (11-es) és a HVC pin-t (1-es) hogyan használod? - Hogyan állítod be a regisztereket (TCON, STATUS)? - Melyik tartja meg az értéket? Amit elsőnek írsz vagy amit másodiknak? - Írás után milyen választ kapsz vissza? Jó és a hibás esetben? Esetleg C kód részletet is csatolhatsz, hogyan végzet a két poti NV beállítását, ha nem akarsz kódot csatolni akkor az is segíthet ha leírod, hogy mit csinálsz.
Az I2c-vel nincs gond mert rá van akasztva egy giroszkóp chip is és azt rendesen tudom olvasni. A magnetik ill. ac. szenzorból pedig minden érték ami visszajön -1 és nem változik. Valószínűleg a beállításaim nem jók.
Azert dobtam fel a kerdest, mert elvileg mukodnie kellene. A program tulajdonkepp nem igazan az enyem, hanem a Microchip altal irott peldaprogram, de egy kis modositason esett at. A peldaprogram amit modositottam az Explorer16 fejleszto panelre irodott a es ket felre van osztva. A modositas pedig annyi mindossze, hogy az eredetiben a fejlesztopanel indulasakor ill. reset utan a program elso fele el es innen az automatikus sweep lett eltavolitva, ehelyett a masodik resz -ami a poti lepesenkenti modositasa es NV reg-be menteset tartalmazza-, lett bemasolva es a command byte-ok lettek modositva a leirasnak megfeleloen. Tehat az Explorer 16 panel IIC felulete lett kapcsolatba hozva eszkozben levo MCP4661 potival (ettol fuggetlenul az Explorer16-hoz rendelt MCP46xx pictail plus panel, amiben szinten ugyanugy MCP 4661 van, szinten amnezias). A modositott program minden resze tokeletesen mukodik, kiveve a NV0 regiszterbe irott adat nem marad meg. Elso probalkozaskor ugy latszott minden tokekeletes, de csak ugy latszott, mert tul "rovid" ideig volt a rendszer kikapcsolva. Ertem ez alatt, a poti csak akkor felejti el az elozoleg mentett erteket, ha hosszabb mint 10 percre van kikapcsolva. Ha ennel rovidebb ideig, akkor megtartja a beallitott erteket. A plane az, hogy nyitottam ticketet a Microchip supportnal ami meg nincs lezarva, es ok a programban annyi hibat talaltak, hogy "nem latom hol ir an NV0 regiszterbe", pedig ott van, mindossze akkor annyi volt a hiba, hogy a commentben nem irtam at az NV1-et NV0-ra, a command byte az adatlapnak megfelelo. Ezek szerint ilyen hozzaertoek? A commenteket olvassak a kod helyett?
WP es HV parancs nincsenek hasznalatban, felhuzva a 10k-n keresztul a tapra. A forraskodot csatoltam.
Sziasztok!
Elbizonytalanodtam! Van egy 18F14K50-em. Az adatlap szerint 5V-ról is működik, viszont a PICKit2 3,3V Vdd-t állít be neki. Tudja valaki miért?
A 18F14K50 programozása a USB D+ és D- lábain történik, azok maximális feszülsége 3.6V.
Köszönöm!
Ez viszont felvet egy kis problémát, hogy nem lehet bekapcsolt 5V-os táp mellett égetni, vagy debuggolni, mert a Vdd visszamegy PK2-be és megemeli a kimeneti vonalak korlátozását. Lehet, hogy le kéne választani az ICSP-ről a Vdd-t? Vagy egy dióda? A hozzászólás módosítva: Dec 7, 2013
Idézet: A mezei PIC18f14k50-et egyébként sem lehet debugolni, csak a speciális változatát - lásd Low pin count USB starter kit).„nem lehet bekapcsolt 5V-os táp mellett égetni, vagy debuggolni” Ha nagyon muszáj bekapcsolt 5V-os táppal programozni, akkor "be kell csapni" a PICkit-et, hogy azt higyje, hogy 3,3 V a tápfeszültség. Én még nem csináltam ilyet, mert csak bootloadert égettem bele, s akkor a PICkit adta a tápfeszültséget.
A PGC és PGD lábak Schmitt-triggeresek, amiknél a felső billenési szint 0,8*Vdd. Ez 5V-os tápfesz esetén 4V-os küszöböt jelent, amihez így a PICkit 3,3V-ról meghajtott PGC ill. PGD jele nem lesz elég.
...Vagy lehet hogy azokra a lábakra más vonatkozik? Nem írnak róla semmit.
Idézet: Igen, más. „...Vagy lehet hogy azokra a lábakra más vonatkozik?” A Microchip fórumán ezt a tanácsot találtam az 5 V-on történő programozáshoz: Idézet: Tehát egyszerűen ne csatlakoztassunk a PICkit VDD kimenetéhez semmit, s akkor a hpzzászólók tapasztalata szerint a 3,3 V-os jelszinttel menni fog a programozás. „The PICkit 2 (and most other programmers) cannot limit the PGx signal voltages to a range different from VDD, so to prevent damaging a part when a user is unaware of the PGx limitation, the supply voltage is limited. One way to work around this issue is to 1) Power the 18F14K50 VDD from a 5 volt supply. 2) Do not connect the PICkit 2 VDD pin to the target 5 Volt VDD (leave it unconnected) - This makes the PICkit 2 think it needs to supply power, so it turns on VDD @ 3.3V 3) The target will now be powered at 5 V, but the PICkit 2 PGx signals will be limited to 3.3V”
Szia!
Megnéztem a kódot. Ami nekem nagyon furcsa, hogy az NV regiszterek írása a "Wiper Lock" bitek és EEPROM "Write Protect" bit állapotának vizsgálata nélkül történik. WP láb magasra húzása jó, mivel ez engedélyezi az EEPROM írást, azonban ez a tény az adatlap szerint nem elegendő, de szükséges (4.2.1.4-es fejezet, 38-as oldal): Idézet: „To write to EEPROM, both the external WP pin and the internal WP EEPROM bit must be disabled.” Ahhoz, hogy ezeket a biteket változtasd: Idézet: „High Voltage commands are required to enable and disable the nonvolatile WP bit.” Ezt pedig a 7.8-as fejezet írja le. Szerintem olvasd ki a STATUS register tartalmát még az írás előtt, s így megtudod állapítani, hogy az EEPROM írás engedélyezett-e vagy sem, STATUS regiszter, bit3:0, 4.2.2.1-es fejezet, 39. oldal. Az, hogy csak husszú idő után történik meg az "amnézia" szerintem attól van, hogy a poti tápján lévő elkók nagyon lassan sülnek ki (illetve túl nagy a kapacitás a tápon). Ezt le tudod ellenőrizni, ha a kikapcsolás után egyből (táp és programozó nélkül) csinálsz egy rövid zárat a poti 4-es és 14-es lába között, majd újra indítod a ketyerét és megnézed, hogy elfelejtette-e. Idézet: „Tehát egyszerűen ne csatlakoztassunk a PICkit VDD kimenetéhez semmit, s akkor a hpzzászólók tapasztalata szerint a 3,3 V-os jelszinttel menni fog a programozás.” Nekem is így ment...!
Koszonom a segitsegedet, de ezeket en is tudtam. Es mint irtam nem csak kulso potikon felejt a NV0 regiszter, hanem a kulon vasarolhato MCP46xx pictail plus kartyan levo is ami eleve az Explorer16 fejlesztokartyahoz valo, a peldaprogram is arra irodott es az 1-es oldalon tokeletesen muxik az NV regbe iras. Azon sincs direkt aktivalva a HV parancskeszlet, mert alapertelmezesben a potik nem irasvedettek. Ahol alkalmazom a potikat, ott nem igazan van helyem es lehetosegem kiepiteni a HV-s cuccokat, a koltsegrol nem is beszelve. (nem barkacs kategorias project, hanem elo arucikk, ahol kenyszerusegbol az 1-es oldalt hasznaljuk vezerlokent a 0-as oldalhoz tartozo aramkorhoz is, osszekotve oket)
Megprobalom feleleszteni az Explorer 16-on a kijelzot -bar szinte nullaval egyenlo az idom ra-, es kiiratom regiszterek tartalmat mentes elott es utan is, meg amugy is tervbe van az aktualis pozicio kiiratasa. Most csak nyomkodjuk a gombokat es mentunk, de nem tudjuk epp mely tartomanyban tart.
Az MCP46xx Errata -ját is meg kellene nézni, de ma nem működik a Microchip oldala...
|
Bejelentkezés
Hirdetés |