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   1009 / 1210
(#) ktamas66 válasza ativagyok hozzászólására (») Jan 9, 2018 /
 
A CCP Compare mode: Special Event Trigger üzemmódot nézegesd. Itt lehet periodikus IT-t csinálni (mivel ez automatikusan törli az adott timert, rendszeres időnként jön). A léptető impulzusnak csak egy rövid 5-10us kell, ezt lehet másik timerrel időzíteni.
(#) pajti2 hozzászólása Jan 9, 2018 /
 
Általános kérdésem lenne mindenkihez, aki úgy érzi, a pic-ek kezdeti problémáival bajlódik, és okos otthon vezérlési gondolatok végett teszi mindazt.

Azt forgatom a fejemben, hogy építek teljesen open hardware / open source alapon 32 bites pic-el automatizálási framework-öt mindenestül ledokumentálva és elektronikában / szoftvertechnikában kezdőkre optimalizálva (közérthető + tutorialok). DIY okos otthon automatizálási eszköz lenne handy barkács kivitelben, mint például az arduino brand.

Aki úgy érzi, érinti a kérdés, egy jelzést kérnék tőle. Az elgondolás üzletileg még csak koncepció tervezési fázisban van, szóval egyenlőre még senki se örüljön túl korán, könnyen lehet, hogy végül semmi sem lesz belőle.
(#) Bell válasza ativagyok hozzászólására (») Jan 9, 2018 /
 
A nagy átfogás miatt nekem az exponenciális karakterisztika vált be.
Ez alacsony fordulatnál finomabb léptetést, magasnál fickósabb rámozdulást eredményezett.
(#) bbb válasza pajti2 hozzászólására (») Jan 9, 2018 /
 
Szép elképzelés, de!
Ami sikerre vitte az arduino-t, de csak döcög mellette a pinguino: támogatás és fejlesztőkörnyezet. Ami fut az egyiken, az nem fut a másikon, holott azt szeretné követni.
De másik példa a Raspberry Pi és az Orange Pi esete - a terméktámogatás viszi a prímet az előző esetben, a másikon meg a rengeteg szívás miatt hiába a több erőforrás, periféria, olcsóbb ár, inkább lemondanak róla az emberek.

Rengeteg munka egy ilyen elkészítése, hobbiprojektként lehet, hogy belebuksz. "Főállásként" meg ugye rengeteg tartalékot kell képezned, hogy meg tudj élni, míg ezzel ügyködsz. Ha eljutsz addig a fázisig, hogy tényleg meg is valósul (legalább elméleti szinten), akkor el kell kezdened szponzort keresned hozzá (kickstarter és társai), különben csak elmélet marad.
Viszont mindaddig, míg a szoftveres háttértámogatás és a tudásbázis nincs meg hozzá, addig nehéz lesz sikerre vinni. Rengeteg, ismétlem, rengeteg! példaprogramot, útmutatást kell adnod hozzá, hogy népszerű lehessen. Emellett pedig azt se felejtsd el, hogy az ár is komoly kérdés. A pár dolláros arduino klónok mellett vajon mekkora keletje lenne egy ilyen eszköznek? S azok mind egytől egyig működnek az arduino kis fejlesztőkörnyezetecskéjével, hatalmas példatárat maguk mögött tudva...

Én egy pár ilyen panelocskát "megkóstoltam" már, van egy arduino uno-m, egy tiva c-m, építettem pic18f4550-es pinguino-t, játszottam a naranccsal és a málnával is kicsit, így tapasztalatból beszélek, mikor azt mondom, NAGYON nagy fába akarod ezzel vágni a fejszéd.
(#) _BiG_ válasza pajti2 hozzászólására (») Jan 9, 2018 /
 
Nemrég hallottam, hogy ilyesmivel egy magyar emberke már elindult és úgy tűnik, szépen halad vele. Különböző gyártók kütyüit integrálja össze egy közös platformra. Így nem kell elköteleződnöd egy gyártó rendszeréhez és a számodra szimpatikus/megfizethető rendszert tudod összehozni.
(#) pajti2 válasza _BiG_ hozzászólására (») Jan 9, 2018 /
 
Őrájuk gondolsz? Vagy akárkire is gondolsz, mint fentebb @bbb megfogalmazta, elindulni, és célba is érni, az két nagyon külön történet. Ha van róla pontosabb híred, most hol tart az illető, egy linknek / bármi kontaktnak örülnék.
(#) Hp41C válasza pajti2 hozzászólására (») Jan 9, 2018 /
 
Cameleon -> Itt a fórumon kameleon2 néven.
(#) pajti2 válasza Hp41C hozzászólására (») Jan 9, 2018 /
 
Nem találtam linket a nick-re, jobb híján üzenetet küldtem neki a belső levelezőn. Ha még aktív felhasználó, talán olvasni fogja.
(#) pajti2 válasza bbb hozzászólására (») Jan 9, 2018 /
 
Felmértem én is, amit megfogalmaztál. Van viszont egy olyan szempont, hogy létezik-e a piaci érdek, ami finanszírozni is hajlandó? Ha igen, terméknek is léteznie _kell_. És az egész gordiuszi csomót azzal el is lehet nyiszálni.
(#) cimopata hozzászólása Jan 9, 2018 /
 
üdv.

Modbus 485 RTU protokollt írom és CRC- check nek neten találtam egy kódot:

  1. public static void CRC(byte[] data, out byte msb, out byte lsb)
  2. {
  3.     ushort crcFull = 0xFFFF;
  4.     for (var i = 0; i < data.length; i++)
  5.     {
  6.         crcFull = (ushort)(crcFull ^ data[i]);
  7.         for (var j = 0; j < 8; j++)
  8.         {
  9.             var crclsb = (char)(crcFull & 0x0001);
  10.             crcFull = (ushort)((crcFull >> 1) & 0x7FFF);
  11.             if (crclsb == 1)
  12.             {
  13.                 crcFull = (ushort)(crcFull ^ 0xA001);
  14.             }
  15.         }
  16.     }
  17.  
  18.     lsb = (byte)((crcFull >> 8) & 0xFF);
  19.     msb = (byte)(crcFull & 0xFF);
  20. }

Az lenne a kérdésem hogy ebben a "data.length" az a teljes adatfolyam hossz CRC-vel együtt vagy CRC nélkül abba miket kell beleszámolni?
A hozzászólás módosítva: Jan 9, 2018
(#) _BiG_ válasza pajti2 hozzászólására (») Jan 10, 2018 /
 
Igen, én egy rádióriportból hallottam róla.
Egyéb hírem nincs róla, amúgy érdekesnek találom.
(#) bbb válasza cimopata hozzászólására (») Jan 10, 2018 / 1
 
Szia!

A kód alapján az adathoz készít egy crc ellenörző összeget, amit az msb és lsb változókban fog eltárolni. Magyarul a hossz csak a "védeni" kívánt adat hossza, az ellenörző összeg nélkül.
(#) ativagyok hozzászólása Jan 10, 2018 /
 
Üdv!
Újra léptetőmotoros kérdésem lenne. Elindultam azon a vonalon, hogy a PWM modullal vezérlem a motort. Egyelőre úgy tűnik, hogy elég lesz a sebességnek a 8 bites felbontás.
Kérdésem, hogy ebben a formában megoldható-e adott számú impulzus kiadása? Tehát tudom-e valahogy számolni az impulzusokat?
(#) ktamas66 válasza ativagyok hozzászólására (») Jan 10, 2018 /
 
A timert lehet megszakításra állítani, ott tudod számolni. A PWM indítását/leállítását jól végig kell gondolni, hogy ne keletkezzenek "véletlen" tüskék.
(#) cimopata válasza bbb hozzászólására (») Jan 10, 2018 /
 
Köszönöm én is erre a gondoltam csak nem voltam biztos.
(#) ativagyok válasza ktamas66 hozzászólására (») Jan 10, 2018 /
 
Valami olyasmire gondoltam, hogy valamelyik timer bemenetére kötöm a STEP jeleket (PWM modul) és a beállított értéknél megszakítást ad, de nem találtam az adatlapban megfelelő konfigurációt.

A motor indítása: jelenleg egy újabb timer indul el, ami megszakításonként csökkenti PR2 értékét, amíg a beállított sebességértéket nem éri el, ezzel elérve a gyorsuló mozgást.
A motor megállása még kidolgozás alatt van, szívesen fogadok tanácsokat.
A hozzászólás módosítva: Jan 10, 2018
(#) ktamas66 válasza ativagyok hozzászólására (») Jan 10, 2018 /
 
Az a timer (pl. TMR2), tud megszakítást generálni, amelyik a PWM alapja. Így minden impulzusnál megkapod az IT-t. Arra persze oda kell figyelni milyen impulzusok mehetnek ki a PWM megállításkor, de ez attól is függ pontosan melyik élre léptet a motorod, mekkora kitöltést használsz. A lassítás ugyan úgy megy mint a gyorsítás. Ha tudod a max. gyorsulást/lassítást, az aktuális és a cél pozíció adataiból tudod számolni mikor kell elkezdeni lassítani.
(#) ativagyok válasza ktamas66 hozzászólására (») Jan 10, 2018 /
 
Sajnos másik megoldást kell keresnem. A leggyorsabb előforduló sebességnél 10us a periódusidő, emiatt kezdtem PWM modult használni, hogy ne kelljen ennyi időnként megszakítással foglalkozni. Nincs lehetőség egy timert számlálóként léptetni a PWM kimenet felfutó éleire?

Másik kérdés: Ebből a PWM kimenetből kettőre is szükségem van. Tudok eltérő frekvenciával járatni két PWM modult?
(#) ktamas66 válasza ativagyok hozzászólására (») Jan 10, 2018 /
 
10us az 160 utasítás, asm-ben elég sok minden belefér. Nem tudom milyen motorvezérlőd van, tud-e ekkora sebességet, én még annak a 256 osztásnak is utána néznék, van-e értelme.
A timer tud számlálóként is működni, de azt is szoftverből kell majd ellenőrizgetni. Két PWM tud független lenni, ha más az időalapja (TMRx).
(#) sonajkniz válasza ativagyok hozzászólására (») Jan 10, 2018 /
 
Szia!

Bár ilyet még nem csináltam, de elvileg ha timer 1-est külső órajel számlálására állítod be a bemenetére vissza tudod vezetni a PWM jelet. Így megszámlálhatod az impulzusokat, és csak timer 1 flag bitjére kell megszakítást kezdeményezned, ahol már az upper byteot számolod. Így csak akkor kell átválts direkt figyelésre, ha már közel a cél. Addig pedig a pic rengeteg más dologgal is tud foglalkozni.
(#) Bell válasza ativagyok hozzászólására (») Jan 11, 2018 /
 
A PWM időalapja valamelyik TIMER.
Sokkal egyszerűbb a TIMERT az igényeknek megfelelően beállítani és használni, mint a PWM kimeneti impulzusait számolgatni, feldogozni.
(#) sonajkniz válasza Bell hozzászólására (») Jan 11, 2018 /
 
Hopp!
Ez engem is érdekel.
Tehát, hogyan kell beállítani úgy a timert, hogy a PWM az indítást követően X mennyiség impulzus után magától leálljon?
(#) ativagyok hozzászólása Jan 11, 2018 /
 
Köszönöm a válaszokat, a PWM visszavezetésre a timer bemenetre jó ötletnek tűnik, elindulok ebbe az irányba.

ktamas66: A 256 mikrolépés még valóban kérdéses, lehet hogy elég lesz a 128 is. A motorvezérlő bírja ezt a sebességet, viszont a C-ben írt programom eléggé leterhelt volt, amikor ilyen megoldást használtam.

Bell: Az elindulás és megállításkor alkalmazott gyorsítás és lassítás miatt nem lenne optimálisabb számolni az impulzusokat? Egyik megoldással sincs tapasztalatom, így a számolás tűnik optimálisabbnak.
(#) Bell válasza ativagyok hozzászólására (») Jan 11, 2018 /
 
A PWM-et a kitöltési tényező szabályozására találták ki, nem precíz időzítésekre.
Arra ott vannak az időzítők, a DDS.
Próbálkozni persze bármivel lehet.
Érdekel az eredmény.
(#) Bell válasza sonajkniz hozzászólására (») Jan 11, 2018 /
 
Te is pontosan tudod, hogy sehogy.
Nem lenne értelme.
(#) don_peter hozzászólása Jan 11, 2018 /
 
Srácok agyalgattam és nem vagyok biztos magamban, erősítsetek meg vagy cáfoljatok meg.
Akkumulátor mérést akarom pontosítani, ezért 1v-os referenciával dolgoznék, amelyet szintén az aksiról táplálnék. A gondom az, hogy ha 1v a referencia feszültségem, akkor ha a bemenetre 1v kerül, akkor az digitálisan (10bit-esn) 1024 lesz. Igaz?
Ebben az esetben le kell osztanom (ellenállásosztóval) a bemenetre kerülő feszültséget úgy, hogy a maximum érték 1v legyen? Tehát ha mondjuk 5v-ot akarok rajta mérni, akkor az 5v-ra olyan osztót kell betennem ami maximum 1v-ot enged a bemenetre?

Jól gondolom vagy ezt másként kell értelmezni?
Előre is köszi.
(#) ktamas66 válasza don_peter hozzászólására (») Jan 11, 2018 /
 
Jól gondolod.
(#) silent15 válasza don_peter hozzászólására (») Jan 11, 2018 /
 
1023 nem ?
0-1023 -ig 1024 lehetséges érték.
(#) don_peter válasza silent15 hozzászólására (») Jan 11, 2018 /
 
Így van..
ktamas66: köszi, én is erre gondoltam..
(#) ktamas66 válasza ativagyok hozzászólására (») Jan 11, 2018 /
 
A páratlan timerek tudnak menni counter módban. Ezek felfelé számolnak, így ki kell számolnod hányat kell lépned a lassítási ciklusig, ez beírni úgy, hogy a túlcsorduláskor adjon IT-t, innen lassítani. Ha fix a gyorsítás/lassítás meg tudod adni hány lépés alatt áll le, vagy éri el a max sebességet. Nem biztos, hogy ezt egyesével kell csökkenteni. Arra is figyelni kell, hogy rövid mozgásoknál lehet el sem éri a max. sebességet.
A hozzászólás módosítva: Jan 11, 2018
Következő: »»   1009 / 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