Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Helló!
Megoldódott a dolog. Sikerült működésre bírni a 4550-est. Valóban a config-gal volt a baj. Mikor haverral rátaláltunk a config beállítós panelra (kép), egyből világossá vált a dolog. Igen, még ismerkedek(ünk) a fejlesztőkörnyezettel :hide: Köszönöm szépen a kódrészletet, sokat segített. Kiderült számomra hogy sokkal több-mindent kell beállítani mint a 1320-asnál, de most hogy megvan a panel, így már jó minden. üdv
Ezt hol látod az adatlapban?
Ha a 18F1320-as működött 40MHz-vel akkor a 4550-nek is mennie kell. (és megy is) Az adatlap szerit 48MHz a max freki, mindkét PIC-nél nehogy már csak 25-ig legyen stabil.
Kérdés, hogy a jobb oldalon elmenő két vezetéken tölteni vagy kisütni akarod-e az akksikat, ugyanis aszerint kellene a FET D-S lábait elhelyezni.
A P-FET kapcsolásához meg nem kell abba a pozícióba táp feletti feszültség, hanem pont a Vss-re kapcsolva lehet kinyitni a FET-et. Érdemes a PIC kimenetére tenni egy kapcsolótranzisztort vagy FET-et, aminek a kollektora (drain-je) menne az IRF G-jére, az IRF G-S közé pedig kell egy pár k lezárást tenni. Egyébként ha az elmenő vezetékeken terhelés van, akkor azt is szokták alkalmazni, hogy az elmenő Vss-t kapcsolják egy N-FET-tel. Ez csak akkor járható út, ha az elmenőn lévő terhelés Vss-e és a PIC Vss-e nem baj, ha nincs fixen összekötve.
Az az egyik dolog, hogy a PIC meddig bírja órajellel, és az egy másik dolog, hogy a PIC-ben lévő kvarcoszci mekkora kvarccal tud stabilan rezegni. A PIC-et hajthatod külső órajellel is, akár fémtokos oszcillátorral, vagy egyedileg megépítettel, de hajthatod úgy is, hogy a kvarcoszcillátor 10MHz-ről jár amit a belső PLL áramkör megnégyszerez (18F-eknél).
Bár a 4550-nél - ha jól emlékszem - az USB miatt kicsit máshogy néz ki ez a PLL-es rész (nincs előttem az adatlap), de az biztos, hogy akár egy 4MHz-es kvarccal is tudsz 48MHz-es CPU órajelet beállítani nála.
48MHz külső órajelet ír az adatlap, nem pedig 48MHz-es kvarcot. A kettő nem ugyanaz! Ne nagyon építs olyasmire, amit a gyártó nem garantál!
Adatlap, table 28-8. 18F4550-nél meg eleve semmi szükség ilyen nagyfrekvenciás kvarcra, amikor 4MHz-es kvarcól is lehet 48MHz-en hajtani a processzorát.
oh
Tényleg, a táblázat alatt egy kis megjegyzés, miszerint: When VDD >= 3.3V, the maximum crystal or resonator frequency is 25 MHz (or 24 MHz with PLL prescaler). Igazad van, mit iszol? Különben éppen azon filóztam az adatlap FIGURE 2-1: CLOCK DIAGRAM alapján, hogy a bemenő frekit leosztja 4MHz-re és abból csinál magának 96MHz-t, és aztán ezt visszaosztja 2vel a cpu-nak, meg az usb-nek. És hogy akkor fölösleges ilyen nagy kvarcot rakni neki, ha 4MHz-es kvarcról osztás nélkül tud csinálni 96MHz-t. De így most megerősítettetek benne. Köszi. Ki is fogom cserélni 4MHz-es kvarcra.
Így van, azzal a kiegészítéssel, hogy néggyel osztható MHz-es kvarcokból lehet előosztani a belső 4MHz-hez. Én pl. 12MHz-es kvarcokat használok, mert abból van itthon jópár.
Így gondoltad a kapcsolást? Este sikeresen mellé is nyúltam a FET-nek, mert N-FET-et tennék oda. Ez a kapcsolás csak terhelésre vonatkozna, itt magas csak az áram, töltéskor max. 2-4 amper menne át. Valójában nem a motorhoz mennének a szálak, hanem a motor vezérlőjébe.
Nem teljesen, mert ez így elektromosan nem jó. Most nincs kéznél rajzprogram, de majd skiccelek egyet később.
Addig nézd meg a linkelt kapcsolást, Q4 és Q5 kapcsolja a Vpp kimenetre a C1-C4-en kialakuló, 12V-os programozófeszültséget, a PIC természetesen 5V-on jár. Én ilyesmire gondoltam elsősorban. Bővebben: Link
Muszáj offolnom mert nem találtam A/D vezérléssel foglalkozó topikot és soha nem nyitottam még ezen a fórumon topikot, ezt szeretném is ha így maradna.
Szóval; LTC1603-as A/D átalakítót szeretnék használni (Bővebben: Adatlap). Nem vagyok benne biztos hogy jól értem a működését, de nekem a 10. oldalon lévő "Figure 6. Mode 1b." ábra tetszett meg. Eszerint a CS és RD lábakra nulllát kell adnom, majd BUSY láb H, aztán kis idő múlva CONVST is H, majd CONVST ismét L, végül t6 idő múlva BUSY is L. Ez után pedig olvashatom be az A/D mérési eredményének tizenhat bitjét mind a tizenhat lábról. Jól értem hogy ennyire egyszerű a dolog? Másik kérdés; az adatlap a 15. oldalon a "BOARD LAYOUT AND GROUNDING"-nál azt írja, hogy: Idézet: „The REFCOMP bypass capacitor and the DVDD bypass capacitor should also be connected to this analog ground plane.” Ezt megerősítendő a 16. oldal tetején van is egy ábra, ahol a DVDD-t tényleg az AGND-hez hidegíti! Sőt, a DGND-t egyszerűen hozzákötötte az AGND-hez. Noooormális!? Tapasztalataim alapján ez égbekiáltó bűn!
Szia!
- A Konverziót a CONVST (a kontroller adja ki) jel indítja... Többféle módja van: ld. adatlap fig 5..9. A RD jel alacsony szintje alatt olvasható ki az adatvonalakon az eredmény. A kiszemelt módban az új adat a CONVST lefutása után a tconv (max. 3.8us) idővel jellenik meg, utána be lehet olvasni. - A 16 bit felbontás 0,00152587890625 % = 15.26 ppm pontatlanságot enged meg. Nagyon körültekintő tervezés kell. Az AGND - DGND összekötése normális - de csak egy ponton (lehetőleg a tápegységnél), ahogy azt a fig. 16. mutatja. Az AGND vezetékeken ne menjen át egyetlen digitális áramkör (részlet) árama sem. Szia
Nem jól értetted. A -CS jel a chip select, tehát ennek lehúzásával megszólítod a modult. Ezután a -CONVST impulzussal elindítod a konverziót, és figyeled (olvasod), hogy a -BUSY jel mikor megy vissza a magas szintre. Ha a -BUSY jel visszaált, akkor a -RD lehúzásával lehet lehet engedélyezni a kimenő adatbiteket (illetve olvasni a MCU felől). Mínusz jellel a felülhúzást jelöltem.
-CONVST vagy rövid legyen, vagy csak akkor szűnjön meg, amikor a -BUSY jel visszaállt magas szintre, különben belezavar a mérésbe. Kiolvasni (-RD) jelet értelemszerűen csak akkor lehet/érdemes, amikor a konverzió már lezajlott.
Ez már jobb, de a bipoláris tranzisztor bázisával sorba mindenképpen kell egy ellenállás.
Üdvözlök Mindenkit!
Előre is elnézést kérek ha nem ide illő témában kérem a segítségeteket. Adott egy MPX 2100 DP egyszerüen szólva nyomásmérő szenzor amit egy 16F690 es pic-el szeretnék analóg módon kezelni. Az a gondom ,hogy a jeladó csak 0,4 mV/KPa jelet ad ki magából és ez kevés a pic-nek! Ezért arra gondoltam, hogy egy olyan erősítőt kellene csinálnom ami ezt a kevés szenzor jelet felerősítené 0 és 5V közé amit aztán könnyedén fogadna a pic. Az a kérdésem, hogy nem-e tudtok valami erre való kapcsolást mert semmi okosat nem találtam erre az esetre. Van olyan szenzor amibe az erősített kimenet benne van de egy kisérlet miatt nem lenne hasznos befektetés. Előre is köszönöm a segítséget és mégegyszer elnézést ha nem pont ide illő ez a téma.
Műveleti erősítős nem invertáló alapkapcsolás.
De hogy ennek mi köze a PIC-hez?
Neminvertáló műveleti erősítő kapcsolást keress.
Szia!
A gyári ajánlás... Az MPXA6115A -ben már benne van az erősítő, közvetlenül mehet az A/D bemenetre... Szia
Szia!
Nagyszerü ötlet, megtalátam a választ!!! Mindent találtam csak éppen ezt nem, nem is értem. Köszönöm szépen a segítséget!
Olvastam a 18F4550-es usb bootloaderes részt.
A kérdés, hogy ha nem MPLAB-ban programozok, akkor lehet ezt használni? A bootloadert azt rátöltöm, ahogy le van írva, utána másik nyelvből fordítok egy hex-et, de ha így feltöltöm a bootloaderes progival, az hazavágja a bootloadert, nem? A hex-be utólag lehet integrálni?
Ha annak a "másik nyelvnek" meg tudod magyarázni, hogy a kódot hova helyezze el a memóriában (hol legyenek a RESET, IRQH, IRQL vektorok), akkor működni fog. A használt bootloadernél kell ezeknek utánanézni, és fordítódban beállítgatni.
Idézet: A bootloader ugyan nem fogja magát felülírni, de azért ne kísérletezz vele, mert az esetleg megcsonkítva felírt elszabadult alkalmazás véletlenszerűen belerondíthat a bootloaderbe!„ha így feltöltöm a bootloaderes progival, az hazavágja a bootloadert, nem?” Mellesleg a PIC18F4550-hez kétféle gyári bootloader is van (HID és MCHPUSB), melyikről van szó?
Végigolvasgattam a mikroe erre vonatkozó részeit. Majd egyszer lesz nekik is.
Vagy áttérek C18+Mplara, vagy nem lesz bootloader. Azt akartam felteni, amivel proramozó hardware nélkül lehet direktben programozni a pic-et. Jó lett volna. Most megírom Mikrobasicben a projektet, aztán meglátom nekiállok-e majd C-re áttenni.
A frissítőst.
Most kihagyom akkor a bootloadert.
Idézet: „A frissítőst.” Na, ettől nem lettem okosabb! A Mikroelektronika fordítóinál is meg lehet oldani a bootloader használatát, bár nem teljesen triviális... MicroPascal+HID bootloader esetében bonyolultabb volta helyzet, mert a fordító mindig kioptimalizálta a kódból a kulcsfontosságú részt! MikroC esetében egyszerűbbnek tűnik a helyzet, ott az .mlk (link) állományt kell megbuherálni. Ezzel kapcsolatban ezt a topikot találtam. Az ott leírtak az MCHPUSB bootloaderre vonatkonak,melynek kisebb a helyfoglalása. HID bootloader esetén 0x800 helyett 0x1000 és 0x808 helyett 0x1008 írandó!
(A kérdést már ptóbáltam a terminal forumon is feltenni, de úgy tűnik, ott nincs élet....)
Régebb óta érdekel a PIC, csak eddig mindig valami közbejött. Most végre elkezdtem, de bele szaladtam egy problémába, amit nem tudok megfejteni. Szeretnék úgy programot írni, hogy a konfigurációs biteket is forrás file-ban adom meg, de az általam tanulásra kiszemelt PIC18F4685-nél (sok lába, sok memóriája van) az alábbi általam nem megfejthető hibára akadtam. A forrást a végletekig leegyszerűsítettem.
A próbánál természetesen állítottam a "Configure - Select Device"-ban is a megfelelő PIC típust. A két kikommentezett PIC esetén hibátlanul fordul, a PIC18F4685 esetében az alábbi hibajelzést kapom: Error[176] C:\PICPROG\0_TESZT\0_TESZT.ASM 8 : CONFIG Directive Error: (setting "FOSC" not found for the processor 18F4685) Próbáltam körülnézni az egyes PIC-kekhez tartozó "inc" file-okban, de az oszcillátor környékén én nem találtam különbséget. Mit nem veszek észre? Tud valaki segíteni? Köszi előre is!
Én a mai napig jobban szeretem a lenti megoldást, mint megjegyezni a gyári makrókat!
Néhány warningot kaphatsz, ne törődj vele. Persze a beállításokhoz meg kell nézned az adatlapban a hogyanokat, de legalább tudod mit miért csinálsz!
Szia!
Próbáld ki (ahogy a P18F4685.inc állományban a kommentben is szerepel): CONFIG OSC = HS Szia Idézet: Azt, hogy ennél nem FOSC hanem OSC a paraméter neve. Tehát így írd:„Mit nem veszek észre?”
|
Bejelentkezés
Hirdetés |