Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1030 / 1320
(#) n_yálastrubadúr hozzászólása Okt 8, 2011 /
 
Találtam egy wt12 nevű blootoht egységet. Ezt már lehete pl egy pic -kel házasítva tx rx teló mikrokontroller kapcsolatot? És mégis hogyan?
(#) potyo válasza n_yálastrubadúr hozzászólására (») Okt 8, 2011 /
 
Írd már le normálisan, hogy mit akarsz csinálni, mert ennek eddig semmi értelme...
(#) Hp41C válasza n_yálastrubadúr hozzászólására (») Okt 8, 2011 /
 
Szia!
- A pic 5V -ról megy, a pic TX lábát 3.3V kimenő szintre kell illeszteni, a pic RX lábát egy meghajtóvan kell vezérelni, ami a modul kimenetét 5V -os (>4V) szintre konvertálja.
- A pic is 3.3V -ról megy, nem kell illesztés a modul és a pic között.
(#) n_yálastrubadúr válasza potyo hozzászólására (») Okt 8, 2011 /
 
Azt hogy ha lehet bloothottal, vagy anélkül csak a telo tx rx lábán kommunikálni a telefonban egy java alaklmazással, amiben érékeket írok és küldök egy pic-nek és a pic visszaküldi ellenörzésre, amit a telón látok.
(#) watt válasza n_yálastrubadúr hozzászólására (») Okt 8, 2011 /
 
A PIC kommunkációja egyértelmű, működik. A teló része abszolut nem PIC kérdés! Tudsz olyat is kérdezni itt, ami a PIC-el kapcsolatos?
(Attól, hogy egy kommunikációs lánc egyik végén PIC van, még nem jelenti azt, hogy PIC téma a másik oldal tárgyalása(mobiltelefon, bluetooth)! Ez igaz áramkörökre is!)
(#) icserny válasza n_yálastrubadúr hozzászólására (») Okt 8, 2011 /
 
A PIC oldaláról nézve ez egy egyszerű soros port kezelés. A telefonon futó java alkalmazás viszont nem ennek a topiknak a témakörébe vág.

Egyébként így írd: bluetooth (azaz "kék fog")
(#) Panzer576 hozzászólása Okt 9, 2011 /
 
Helló!
Lenne egy kérdésem!
Írtam egy óra progit, ami az idő mérésén kívül tud minden félét, így a progi túllépte a 3500 programsort.
A kérdésem az lenne, hogy a lapváltásra nem ismertek valamiféle trükköt, hogy kikerüljem, mert a programrészek ide-oda helyezgetése ekkora proginál nem a legjobb.
Valamint miért nem fogadja el sehogy sem a 3000. programsor feletti részt a vezérlő? Oda tettem a hőmérő lebegőpontos rutinját, külön működik, csak a 3000. sor után nem...
PIC16F887-re épül az óra.

Előre is köszi!
Panzer
(#) watt válasza Panzer576 hozzászólására (») Okt 9, 2011 /
 
Nincs trükk. A 3000. sor utáni kérdést pedig nem nagyon értem. Bárhol van a program, ha oda ugrik a szál, annak működnie kell, ha jó a lapozás. Szimuláció ki kell derítse a problémát egyből!
(#) Hp41C válasza Panzer576 hozzászólására (») Okt 9, 2011 /
 
Ajánlom figyelmedbe: Bővebben: Link
(#) Panzer576 hozzászólása Okt 9, 2011 /
 
Köszi!
(#) Attila86 hozzászólása Okt 9, 2011 /
 
Eddig még nem küldtem aludni mikrovezérlőt, de most megpróbáltam. A programom ide vágó része így néz ki:
  1. bcfINTCON, GIE;globális megszakítás tiltása!
  2. bsfINTCON, INT0IE;INT0 megszakítás engedélyezése (gyújtás rákapcsolásra ébredünk)
  3. bcfINTCON3, INT1IE;INT1 megszakítás tiltása!
  4. bcfPIE4, CCP3IE;CCP3 megszakítás tiltása!
  5. SLEEP;ALVÁS!
  6. bcfINTCON, INT0IE;INT0 megszakítás tiltása!
  7. bsfINTCON3, INT1IE;INT1 megszakítás engedélyezése
  8. bsfPIE4, CCP3IE;CCP3 megszakítás-engedélyezése
  9. bsfINTCON, GIE;globális megszakítás engedélyezés
  10. braCIKLUS

Elvileg ha jól olvastam a szakirodalmat akkor annak kellene történnie hogy a PIC (PIC18F25K80) elmegy a SLEEP parancsig, amitől elalszik és nem csinál semmit. Felébreszteni csak és kizárólag az INT0 tudja, mert annak az engedélyező bitjét állítom 1-re. Amikor az INT0 lábra H-szintet kapcsolok (inicializáláskor felfutóél-érzékelésre állítottam be) akkor felébred és a SLEEP utasítás utáni utasítást hajtja végre és onnan folytatja a futást. Mivel a SLEEP előtt én direkt 0-ra állítottam a GIE-t, így megszakításba nem lép be.

A gyakorlatban viszont nem úgy néz ki mintha ez történne. Olyan, mintha a SLEEP-be el se menne vagy rögtön visszajön, vagy valami más ébreszti fel stb... A lényeg hogy nem észlelem a hardveren hogy aludna a PIC.

Hogyan tudom kideríteni hogy alszik-e tényleg? Debuggerrel próbáltam, soronként léptettem és a SLEEP-en egyszerűen egyből továbblépett mintha csak pl egy NOP lett volna.
(#) potyo válasza Attila86 hozzászólására (») Okt 9, 2011 /
 
Leginkább úgy tudod kideríteni, hogy méred az áramfelvételét. Esetleg villogtatsz egy ledet, és ha a led villogása leáll, akkor sleep-ben van.

Debuggoláskor nemtudom, mi a helyzet, simán lehet, hogy debug közben a sleep parancs hatástalan.
(#) trudnai válasza Attila86 hozzászólására (») Okt 9, 2011 /
 
Valami esemeny ott lehet meg amit nem toroltel. Tedd ki az oszcit a labara a konfiggal es nezd meg scoppal -- ha alszik akkor alvaskor nem szabadna megjelenjen az ora. Masik lehetoseg, hogy allitsd magasra sleep elott es alacsonyra utana a labat, es nezd meg szkoppal mi van. Harmadik lehetoseg, hogy a WDT-t hasznalod -- sleep-kor a WDT torlodik, kiveve ha mar eleve van ebreszto esemeny. Tehat megnezed mennyi ido teli el a WDT bekovetkeztekor (nyilvan ez trukkos a CLRWDT-t joval a SLEEP elott kell kiadni, hogy lathato legyen a kulonbseg...)
(#) watt válasza Attila86 hozzászólására (») Okt 10, 2011 /
 
Valami olyan rémlik, hogy a Sleep után egy NOP-ot kell tenni, de lehet, hogy nem jól emlékszem...
(#) Attila86 válasza watt hozzászólására (») Okt 10, 2011 /
 
Csak akkor hogyha hagynám hogy megszakításba lépjen rögtön az ébredés után. Akkor is csak azért, mert a SLEEP utasításkor a következő parancsot beolvassa és ébredés után végrehajtja, majd utána lép csak be a megszakításba. Ezért szoktak a SLEEP után egy NOP-ot tenni. De mivel én a GIE=0-val nem hagyom hogy belépjen, így nem kell.
(#) Hp41C válasza Attila86 hozzászólására (») Okt 10, 2011 /
 
Nem megy sleep állapotba a kontroller, ha engedélyezett megszakításkérés fennáll, vagy a sleep végrehajtása alatt keletkezik. A GIE vagy GIEH / GIEL tiltja a kérés kiszolgálását...

A sleep utasítás végrehajtása alatt a következő utasítás bekerül a "prefetch queu" -ba, de már nem hajtódik végre. Amikor a kontroller felébred, azzel az utasítással kezdi. A végrehajtása után tobább lép az azt követőre, ha a megszakítás tiltott, illetve a megszakítási rutinra ugrik, ha a megszakítás engedélyezve volt. Ha kritikus a sleep utáni utasítás végrehajtása, akkor célszerű egy nop utasítást tenni közvetlenül a sleep után...
(#) Attila86 válasza Hp41C hozzászólására (») Okt 10, 2011 /
 
Próbaképp a SLEEP elé betettem a lehetséges három megszakítás-forrás (CCP3, INT0, INT1) flagbitjének törlését, így most jó. Tényleg elmegy aludni és addig tényleg nem csinál semmit amíg INT0-ra nem kap felfutó élt.
(#) Peter65 hozzászólása Okt 10, 2011 /
 
Üdvözlet mindenkinek!
dsPIC33FJ64GP802 kontrollerre tervezek egy áramkört, amivel a lehetőségekhez képest szeretnék minél pontosabb, zajmentesebb analóg mérést megvalósítani. Az analóg jeltartomány az analóg tápfeszültség tartománya lenne.
Korábban a dsPIC30F3012-t használtam, és annál az volt a jobb, ha az ADC referencia pontjait nem belül, hanem a külső referencia pontokon keresztül kötöttem a tápra. Az IC ilyen elrendezésben van specifikálva.
A dsPIC33FJ64GP802 ADC specifikálása viszont belső referencia kötés mellett van megadva. Ez nekem azt sugallja, hogy ez a konfiguráció lenne a jobb.
Van valakinek ismerete, tapasztalata arról, hogy a dsPIC33FJ családnál a referencia pontot kívül vagy belül célszerű felkötni a tápra?
(#) Attila86 hozzászólása Okt 10, 2011 /
 
Miért nem tudom égetni a PIC-emet? (PIC18F25K80)? Ezt írja:
Idézet:
„Target Device ID (0000ffe0) does not match expected Device
ID (00006180).”
(#) watt válasza Peter65 hozzászólására (») Okt 10, 2011 /
 
Idézet:
„Az analóg jeltartomány az analóg tápfeszültség tartománya lenne.”

Pontosabban?
Mindenképpen jobb megoldás a külső referencia, de nem simán tápra kötéssel, hanem referencia áramkörrel. Az analog közös pontot külön kell vezetni a referenciához és csak egy ponton szabad összekötni a digit testtel. Szűrések fontosak, inkább több mint kevesebb. Programból is érdemes további szűréseket végezni, feltéve, ha a sebesség ezt engedi.
(#) Peter65 válasza watt hozzászólására (») Okt 10, 2011 /
 
Köszönöm a választ. Nem akarok külön referencia feszültséget képezni referencia táppal, a pontosságnak nem szükséges abszolút pontosságnak lennie. Elegendő a mért jeleket egymáshoz arányítanom. A szűrések fontosságát már korábban is tapasztaltam, de köszönöm, hogy felhívtad rá a figyelmemet. A külső referenciát fogom használni.
(#) watt válasza Peter65 hozzászólására (») Okt 10, 2011 /
 
Ha nem használsz külön ref IC-t, akkor semmi értelme a külső referencia bemenetet használni, csak egyel kevesebb bemeneted lesz.
(#) Hp41C válasza Attila86 hozzászólására (») Okt 10, 2011 /
 
Mintha nem is látná, az összes beolvasott értékes bit 1... Jó az összeköttetés, a tápfesz értéke, a tápfesz be van kapcsolva? Nincs túlterhelés a PGC és/vagy PGD vonalon? Jó családot választottál ki?
(#) Attila86 válasza Hp41C hozzászólására (») Okt 10, 2011 /
 
Nem látja.
Igen sok szenvedés után rájöttem hogy azért, mert a Satronik nyákjai zárlatosak.
Két panelmérőt építettem ma és mintkettőn találtam zárlatot. Kikapartam őket de még van valahol zárlat mert még mindig nem az igazi.

Azt hiszem most gyártattam utoljára a Satroniknál.
(#) vicsys válasza Attila86 hozzászólására (») Okt 10, 2011 /
 
Szerintem, egyenlőre csak reklamáld meg. Ne kapkodd el a döntést, lehet, hogy más félreértés történt.
(#) Attila86 válasza vicsys hozzászólására (») Okt 10, 2011 /
 
Félreértés? Egy szemmel gyönyörűen látható rövidzár volt két vezetősáv közt, amit nem én terveztem oda és a többi panelon nincs is. Ez nem félreértés hanem hiba amit ők követtek el. A panelom ráadásul az általuk vállalt minimális vezetősáv-szélesség és szigetelőtávolság értékeken belül van.
Elhozom a maszkjaimat és átviszem egy másik céghez. A most gyártatott paneloknak meg visszakérem az árát.
(#) trudnai válasza Attila86 hozzászólására (») Okt 10, 2011 /
 
Minden panel gyarto bizonyos hibaszazalekkal dolgozik, es a technologiai eljaras miatt van. Ha azt szeretned, hogy az osszes paneled hibamentes legyen akkor kellene kerned eletromos bemerest, ami nyilvan felaras -- annak hianyaban azonban neked kell bemerned a paneljeidet meg mielott beforrasztod...
(#) Peter65 válasza watt hozzászólására (») Okt 10, 2011 /
 
A dsPIC30F3012-nél ha a belül kötöttem a tápra a referenciákat, sokkal zajosabban mért, mint amikor a külső referenciákon keresztül kötöttem a tápra. Az ADC specifikálását is ilyen "lábpazarló" konfigurációra adják meg.
Mivel a dsPIC33FJ64GP802 specifikálása már belső referencia kötéssel van megadva, ezért merült fel bennem, hogy ez a sorozat már nem kényes erre. Ennek megerősítésére vagy cáfolására vonatkozott volna a kérdésem.
(#) icserny válasza Peter65 hozzászólására (») Okt 10, 2011 /
 
Nem tudom, hogy mit értettél félre az adatlapból, de ennél a típusnál az analóg föld és a tápfeszültség külön lábakon ki van hozva, tehát belül nincs összekötve a digitális földdel és tápfeszültséggel. Ezért a "belső referencia kötés" itt valójában külső kötést jelent.
(#) watt válasza icserny hozzászólására (») Okt 10, 2011 /
 
Látod én ezt nem is néztem! Nem is gondoltam, hogy ilyen megoldás is van! Nekem tök természetes, hogy a belső táp is lehet a referencia, de ezek szerint jobban meg kell nézni a PIC-ek adatlapját, mert érhetnek meglepetések.
Következő: »»   1030 / 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