Fórum témák
» Több friss téma |
Two pics using one oscillator
Ha több PIC -et kell meghajtani, az oszcillátoros pic OSC2 kimenetére kell a meghajtó.
Ha jól értem, a fórumozók nem jutottak dűlőre a Microchip ajánlása felett, mindössze volt pár sikeres kísérlet.
Idézet: Valahol máshol is azt olvastam, nem ajánlott tovább terhelni az oszcillátor lábakat, nem erre lettek tervezve. „Sometimes more than one device needs to be clocked from a single crystal. Since Microchip does not recommend connecting other logic to the PICmicro's internal oscillator circuit, an external crystal oscillator circuit is recommended.”
A Microchip nem ajánlja, de mégis működik:
Idézet: „I've done it, and quite successfully. What I did was to use one PIC with a conventional osc circuit, and connected OSC2 to an HC04 inverter, located very near the oscillator circuit. From there, I went to a bunch of other inverters on the same chip and used this to "fan out" the clock signals to another PIC (connected to OSC1), as well as other devices.” A CMOS inverter bemenet nagy bemeneti ellenállással bír - ez nem jelenthet gondot a kristály meghajtása mellett. Egyetlen probléma lehet, a bemenet és a vezetékezés kapacitása. Ha megfigyeljük az ajánlott kristály bekötést, az találjuk, hogy az OSC2 kimenetre egy kondenzátor kapcsolódik. A CMOS bemenet kapacitását is bele kell számolni. Az elválasztó kapu kimenetét a többi kontroller külső órajelként fogadja. A megoldás működik, de nem biztosítja azt, hogy a kontrollerek "tényleg" szinkronban járjanak. Ezt egyébként a közös külső oszcillátoros esetben sem biztosítja. Teljesen elméleti a megoldás, hiszen egy CMOS tokot felhasznál, abból a külső quartz oszcillátoros megoldás is kijönne.
De csak ahhoz kell pwm ami változtatja a fényerejét, a többi csak sima ki vagy bekapcsolt állapotú, nem? Minek ehhez annyi pwm csatorna? Ahogy néztem a videót a szárny két végén lévő csak simán világít, az ilyen mehet egy kimenetre is.
Sziasztok, segítenétek egy kicsit? (Pic16f628a - UART)
A lenti kóddal az a problémám, hogy ha megérkezik az on_cmt parancsom, akkor owerrun hiba lesz. Miért? Azt szeretném megcsinálni, hogy ha az RB7 es láb magas szinten van, akkor küldjön egy parancsot, majd nézze meg jött e vissza válasz. Ha jött és az a válasz jött amit várok, akkor tegye az RB7 - es lábat alacsonyra. Ha jött és nem az amit várok, akkor küldje újra a parancsot. Ha nem jött vissza semmilyen válasz, akkor is küldje újra a parancsot.
A hozzászólás módosítva: Aug 23, 2020
Overrun hiba elvileg akkor keletkezik, ha előbb telik meg a vételi buffer, minthogy kiolvasnád a tartalmát. Adattorlódás.
Szia!
A SETF utasítás a memória 1 elemét 255-re állítja . SETF szel 255 re állítja a szel nevű regisztert . Ha egy regiszter bitjeit akarod állítani, akkor a BSF BCF utasítást kell használni. adatmozgatáshoz a W regisztert, végül is jól írtad. A RXT -et 0x21 nek definiáltad, tehát az írási művelet a memórialap 33. regiszterére (0x21) fog vonatkozni.
Szia!
A SET-et még nem nagyon értem de átnézem mégegyszer. A BSF BCF az már tiszta. Még lenne egy pár kérdésem de inkább holnap fogalmaznám meg. Köszi a segítséget!
SET - változó definiálása a fordítóban. (Link: 4.57)
SETF - pic utasítás, ami a megnevezett memória rekeszt 0xFF = 255 -re állítja. Bővebben: Link
Szia!
Igen... pontosan. Nekem csak kettő pwm csati kell(ene) az egyik a piros "forgó fényt imitálja, a másik a fehér villanót, ezen kivül van még a piros és a zöld ( az mehet közös 1/0 kimenetre) és a leszallófények. Tehát 2 kibe és kettő pwm amire pályázok... De lehet hogy szégyen szemre meghátrálok és két kis PIC be - rakom bele a két pwm-et. A ket ki/be kimenetet meg a szervójelfigyelést pedig egy harmadikba A hozzászólás módosítva: Aug 24, 2020
Értem már, köszönöm.
Még egy kérdésem lenne, mert Assembly mellett C-ben is tanulom, hogy hogyan tudom leellenőrizni egyetlen egy bit állapotát? pl: TRISA = 0x08; // ekkor gondolom az RA3. láb bement lesz, a többi meg kimenet LATA = 0xF7; // itt mindegyik láb 1-es lesz kivéve az R3-at Nem tudom még nem próbáltam, csak logikázok. Írjátok meg ha valamit nem jól csinálok. A PORTA-val szeretném lekérdezni az R3 láb állapotát de nem tudom hogy kell. Egy összehasonlítást talán meg tudnék csinálni de azzal nem sokra mennék mert a többi láb kimenetként funkcionál és bármilyen állapotban lehetnek. Ezért nekem csak az R3 láb értéke kellene. Ezt hogy csináljam? Persze a LATA -val meg szeretnék szintén csak 1 bitet állítani. Előre is köszönöm a segítséget! Próbáltam assembly stílusban de nem sikerült.
Köszönöm, már tesztelem is
Ja, és még egy gyors kérdés. Létezik asm fordító a legújabb MPLABX-re? Windowsra tudom van az MPASM de Linuxot használok. Felraktam az XC8,XC16,XC32 fordítókat de asm-et sajnos nem találtam sehol hozzá. Alapból meg nincs benne (szerintem).
MPLABX 5.40 out, MPASM dead
Helyette valami "pic-as" nevű van.... Vagy használj régebbi verziót. A hozzászólás módosítva: Aug 24, 2020
Igen, megtaláltam a pic-as -t, de le van tiltva a config kód generátor. Szerintem alapból használhatatlan.
Köszi a linket most már értem. Nézek egy régebbi verziót.
Sziasztok!
Szeretném be #include -olni aPIC-nek a header fájlját de sehogy sem találja az MPLAB. Mit csinálok rosszul?
A hozzászólás módosítva: Aug 25, 2020
Szerintem felesleges. Az xc.h behívja az mplabban kiválasztott pic tipushoz tartozó headert
Sziasztok,
Egy nagyon amatör kérdés: Ha egy nem használt gyári eszközből kiveszem a PIC-et, lehet újra programozni vagy ezek OTP-re vannak beállítva? A hozzászólás módosítva: Aug 27, 2020
Ha többször írható memóriájuk van (flash memória), akkor a teljes törlés alaphelyzetbe állítja, és újraírhatók.
Ha gyárilag OTP (csak egyszer írható) az eszköz, az a tipusjelzésből és az adatlapból kiderül.
Akkor ez, at90s2313 ezek szerint felhasználható újra? "Flash on a monolithic chip"
A hozzászólás módosítva: Aug 27, 2020
A kérdésem háttere: van ilyen mechanikailag sérült panelom, amin at90s313 van. Nem értek a PIC-hez, gondoltam, hogy egy ilyenen próbálgaték egy-két egyszerű programocskát tanulásképp. Tudom, lehet már egész olcsón venni szinte bármilyet, de ez itt van elöttem ingyen.
Ami zavar kicsit, ezt találtam a leírásában: "On some devices, the lock bits will not erase at high VCC. In this situation, it will not be possible to reprogram the devices when the lock bits are set." Ha nem használható akkor nem bajlódok a kiforrasztásával.
Nem is kell érteni a PIC-hez, mert ez nem PIC. Attól hogy az MC felvásárolta az Atmelt még nem lett belőle PIC. Amúgy meg miért nem nézed meg az adatlapját ?
Akkor már az elején elbuktam. Na, ennyit a PIC tudásomról. Kössz az információt.
Nyugalom, valahol el kell kezdeni!
Elvileg 1000-szer újraírható. De sok értelmét nem látom egy ilyen egzotikus mikrovezérlővel bajlódni, amikor 2-3 dollárért már hozzádvágnak egy Arduino nanot (amiven szintén AVR mikrovezérlő van), amihez sokkal könnyebben találsz segítséget, ötletet, tananyagot.
Sziasztok. Adott egy hibakód olvasó amiben PIC18F458-van és USB-n kommunikál. Vissza szeretném butítani a FW-t ami rajta van, de szeretnék egy biztonsági mentést készíteni a jelenlegi verzióról. Hogyan tudom USB-n keresztül lementeni a gépre a forrást? Köszönöm a válaszokat
Ha ez gyári akkor sehogy. Biztos, hogy olvasásvédett.
Kínai, csak nem merek ráfrissíteni. Csak ha letudom menteni a jelenlegi FW-t
Szia!
A saját USB-s kommunikációján keresztül nem tudod, csak egy programozó készülék segítségével, ha nincs gyárilag a másolásvédelem bekapcsolva!
Marad a pickit akkor. Csak el akartam kerülni ezt a megoldást. A másik kérdés, van egy hibás olvasóm is, amin PIC-t kéne cserélnem. 18F458 amit tenni kéne rá, de nekem 18LF458 van a fiókban. A kettő között van valami különbség, vagy amit a 18F458-ra írtak az rámehet a másikra?
|
Bejelentkezés
Hirdetés |