Fórum témák
» Több friss téma |
Ha tudod garantálni, hogy a fogadó PIC esetében az a láb mindig bemenet, nyugodtan összekötheted.
Idézet: „További probléma lehet a tápfeszültség eltérő értéke.” Abszolúte. pl. ha a két PIC külön panelen van, az egyik panel a másikról kapja a tápot, testet, csatlakozón keresztül. Egy ilyen hot-plug simán kinyírhatja a PIC I/O lábát. Szóval azon az 1k-n nem spórolnék. Ha meg komolyabb védelmet akarsz akkor dióda a táp és test felé.
Optocsatolós leválasztás a dolog netovábbja, már ha egyirányú kapcsolatról van szó.
Sziasztok! Van valakinek PIC-el kapcsolatos C nylevű könyve ami viszonylag az alapoktól kezdi? Előre is köszönöm
Milyen PIC, milyen C érdekel?
Getting Started with MPLAB XC8 Compiler – LED Blinking (PIC 16F877A Microcontroller) Programming the PIC18/ XC8 Using C- Coding
Köszönöm szépen a segítségeket. Végül megtaláltam amit kerstem...itt van egy link amiről letudja tölteni akinek még szüksége van rá: e-book
Itt egy C-konyv. Igaz nem PIC specifikus. C-programozas.. Ja regelni kell a doksi.hu-ra. Azutan talalsz meg egy par konyvet.
A hozzászólás módosítva: Júl 18, 2018
Sziasztok!
Pic és egy szoftver közti uart alapú protokollal vesződök. Létezik olyan terminál progi amivel más szoftver adatforgalmába bele lehet nézni, esetleg változtatni? Köszi Szabolcs.
Ha van egy aktív UART kapcsolatod, akkor arra rá tudsz nézni logikai analizátorral, USB-UART átalakítóval (másik porton).
Jelenleg is úgy működik hogy a pic a vett adatot visszatükrözi egy másik porta,
Viszont ha a válaszon módosítani akarok akkor mindig újra kell programoznom a picet.
A válasz módosításához valamilyen eszközt fel kell készíteni a feladatra, amit a kettő közé tudsz rakni. Pl. egy másik kontroller, másik számítógép. Viszont, a közbenső eszközt programozni kell valamilyen úton módon mégpedig úgy, hogy X vett adat esetén Y-ra módosítson és azt küldje tovább.
Erre az egyszerű Terminal programok általában nem alkalmasak, nem arra lettek kitalálva hanem elsősorban az adatok fogadására és küldésére. Bár, mintha ez (Script és Macro kapacitással): Bővebben: Link tudná a kérdéses funkciót. Bővebben ilyen irányban nem foglalkoztam ezzel, megírom magam a feladatra szerintem legalkalmasabb programot.
Ilyesmire gondoltál: Serial Port Monitor?
Üdv. A PIC16F648A TMR1 16 bites osztója TMR1L, TMR1H hogy törölhető? Beírható oda 0 érték? Köszönöm.
Sziasztok!
Van egy tömböm pl: unsigned char temp[]={"rFFFFFFFF,FFFFFFFF} Két hex-ban felírt változó. Ezt régebben valahogy így olvastam be: float a,b; sscanf(temp,"%X %X",&a, &b); Az a program sajnos elveszett, most meg sehogy se akar jó lenni. Mindig 0 lessz az eredmény. Valami tipp hogy mi hiányzik belőle? Köszi Szabolcs
Sziasztok!
PIC24F08KA101 (illetve a kód mérete miatt már: 24F16KA101) PIC adatlap Ezzel a chip-pel készítek egy kütyüt. Lábtakarékosság miatt belső oszcit használok. (kép: 01_oszci) Sajnos az MCC -ben a kódgenerálásnál ( , hogy csak úgy pikk pakk meglegyenek az alap dolgok) nem voltam kellőképpen figyelmes és átsiklottam egy hibaüzenet felett. (kép: 02_hiba) Az oszcit az egyes kép alaján állítottam be. Azután a bemeneti lábakat levettem, hogy másra használjam. Érdekes módon működött a pic. Kivéve a perifériák sebességei nem mentek rendesen. Ezeket megoldottam, gondolván, hogy rossz az MCC.... Később, amikor már minden egyes perifériával gond volt, kerestem, a hiba okát. Akkor jöttem rá, hogy az órajel forrással van a baj. 8MHz-en ment, külső forrásról a külvilágtól leválasztva. Nos új projekbe átraktam mindent, ahol már az órajelforrást a 03_oszci_FRC kép alapján állítottam be. PLL-t használva megnövelve 32MHz-re az órajelet. Érdekes módon minden kódrész működik a perifériák baud-jainak átírása után, kivéve az I2C. És most itt vagyok. Ez a kis sztori az utóbbi 3 hónapomat emésztette fel esténként és hétvégén. Szeretném a segítségeteket kérni, hogy kicsit előbb készen legyek vele. Szóval a fő kérdés, az I2C baud lenne. Ha egyáltalán ezzel az órajel beállítással működhet az I2C. A két kép (04_I2C_TCY és 05_I2C1BRG) az adatlapból van, aminél most ez a megjegyzés zavart meg.: Idézet: „Note 1: Based on FCY = FOSC/2; Doze mode and PLL are disabled;” Szóval szerintetek a periféria nem tud működni, ha a PLL megy? Ha mégis megy, akkor mi lehet a baj? Otthonról fel tudom tölteni az aktuális kódrészleteket, ha szükséges. Bocsánat a regény hossz miatt. Előre is köszi! A hozzászólás módosítva: Júl 30, 2018
100kHz -es I2C -t valóban nem tudsz beállítani, de 126kHz -est már igen: I2C1BRG=255.
A külső órajelről, ami valójában szerintem belső volt, az 8MHz-en ment, így be tudtam állítani az I2C baudját 400kHz-re.
MPU6050 és ő tudja a 400 kHz-t. Idézet: „400kHz Fast Mode I2C for communicating with all registers” 18-adik oldalon írja az átviteli tartományt, de csak a max 400kHz-et írja. Nem úgy van,hogy vagy 100 vagy 400?
8MHz FRC és 4xPLL mellett a Fosc=32MHz és Fcy=16MHz. (Ha DOZE = 1:1)
A perifériák elvileg függetlenek a DOZE beállítástól, tehát Fosc/2, azaz 16MHz-es órajelet kapnak. Így BRG=157 az 100Khz-es I2C frekvenciát kell hogy adjon. Nem tudok olyan kitételről hogy az I2C nem működhet PLL mellett.
Egyébként ha az i2c-t arra használod ami, akkor csak az számít, hogy ne lépd túl azt az órajelet amit a perifériák, az átviteled és a szoftver elbír.
Mivel az i2c szinkron kommunikáció és kb. a kutyát nem érdekli az órajel. Nagyjából...
Egyébként meg sok alkalmazásban használnak szoftveresen megírt i2c-t is, mert rövid és egyszerű kód. Nem vagy hozzákötve a PIC hw blokkjához.
Próbáltam a korábban 8MHz-ről működő kódot (clk_2 képen a piros vonallal jelölt órajel beállítás) minden beállításával a 32MHz-s új projektbe (ami a zöld vonalas jelölés a képen) áthelyezve, de sajnos nem olvas i2c-n. 16MHz-cel számolva Fcy-t, de még 32-vel se kb már mindenfélével számoltam, de nem akar menni.
DOZEN most 0. Szóval a kép szerintem magáért beszél,de mégsem akar menni. Biztosan valami bagatel kis hiba, ami elkerüli a figyelmemet.
Van-e felhúzó ellenállás az I2C SCL és SDA vonalán (a PIC Vcc -hez)?
Épp ezt akartam kérdezni én is
MC 2,2k-t szokott ajánlani.
Igen van. 4,7K mind a kettő vonalon.
Ja és van két külön áramköröm, az egyikben PIC24K08KA101 a másikban pedig ..24K16.. van, persze mind a kettőnél ugyan ez a helyzet. A két áramkör csak a pic -ben tér el egymástól. |
Bejelentkezés
Hirdetés |