Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   694 / 1320
(#) cNobody válasza icserny hozzászólására (») Márc 4, 2010 /
 
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

config.png
    
(#) cNobody válasza potyo hozzászólására (») Márc 4, 2010 /
 
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.
(#) szilva válasza Shoo hozzászólására (») Márc 4, 2010 /
 
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.
(#) szilva válasza cNobody hozzászólására (») Márc 4, 2010 /
 
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.
(#) potyo válasza cNobody hozzászólására (») Márc 4, 2010 /
 
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.
(#) cNobody válasza potyo hozzászólására (») Márc 4, 2010 /
 
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.
(#) szilva válasza cNobody hozzászólására (») Márc 4, 2010 /
 
Í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.
(#) Shoo válasza szilva hozzászólására (») Márc 5, 2010 /
 
Í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.
(#) szilva válasza Shoo hozzászólására (») Márc 5, 2010 /
 
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
(#) Shoo válasza szilva hozzászólására (») Márc 5, 2010 /
 
Esetleg így?
(#) Attila86 hozzászólása Márc 5, 2010 /
 
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!
(#) Hp41C válasza Attila86 hozzászólására (») Márc 5, 2010 /
 
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
(#) icserny válasza Attila86 hozzászólására (») Márc 5, 2010 /
 
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.
(#) Attila86 válasza icserny hozzászólására (») Márc 5, 2010 /
 
Köszönöm a válaszokat!
(#) szilva válasza Shoo hozzászólására (») Márc 5, 2010 /
 
Ez már jobb, de a bipoláris tranzisztor bázisával sorba mindenképpen kell egy ellenállás.
(#) csiefjancsi hozzászólása Márc 5, 2010 /
 
Ü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.
(#) potyo válasza csiefjancsi hozzászólására (») Márc 5, 2010 /
 
Műveleti erősítős nem invertáló alapkapcsolás.

De hogy ennek mi köze a PIC-hez?
(#) icserny válasza csiefjancsi hozzászólására (») Márc 5, 2010 /
 
Neminvertáló műveleti erősítő kapcsolást keress.
(#) Hp41C válasza csiefjancsi hozzászólására (») Márc 5, 2010 /
 
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

intepres.pdf
    
(#) csiefjancsi válasza Hp41C hozzászólására (») Márc 5, 2010 /
 
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!
(#) elektroláma hozzászólása Márc 6, 2010 /
 
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?
(#) szilva válasza elektroláma hozzászólására (») Márc 6, 2010 /
 
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.
(#) icserny válasza elektroláma hozzászólására (») Márc 6, 2010 /
 
Idézet:
„ha így feltöltöm a bootloaderes progival, az hazavágja a bootloadert, nem?”
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!

Mellesleg a PIC18F4550-hez kétféle gyári bootloader is van (HID és MCHPUSB), melyikről van szó?
(#) elektroláma válasza szilva hozzászólására (») Márc 6, 2010 /
 
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.
(#) elektroláma válasza icserny hozzászólására (») Márc 6, 2010 /
 
A frissítőst.
Most kihagyom akkor a bootloadert.
(#) icserny válasza elektroláma hozzászólására (») Márc 6, 2010 /
 
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ó!
(#) tomi52 hozzászólása Márc 6, 2010 /
 
(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.

  1. ;   LIST P=18F4550
  2. ;   #INCLUDE <P18F4550.INC>
  3.  
  4.    LIST P=18F4685
  5.    #INCLUDE <P18F4685.INC>
  6.  
  7. ;   LIST P=18F46K20
  8. ;   #INCLUDE <P18F46K20.INC>
  9.  
  10.    CONFIG   FOSC = HS
  11.  
  12.    ORG   0X0000
  13.    BRA   $
  14.    END

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!
(#) watt válasza tomi52 hozzászólására (») Márc 6, 2010 /
 
Én a mai napig jobban szeretem a lenti megoldást, mint megjegyezni a gyári makrókat!
  1. __CONFIG    _CONFIG1H,     b'00001000'      
  2. __CONFIG    _CONFIG1L,     b'00001000'
  3. __CONFIG    _CONFIG2L,     b'00000001'        
  4. __CONFIG    _CONFIG2H,     b'00000000'        
  5. __CONFIG    _CONFIG3H,     b'10000000'        
  6. __CONFIG    _CONFIG4L,     b'10000001'                                              
  7. __CONFIG    _CONFIG5L,     b'00001111'
  8. __CONFIG    _CONFIG5H,     b'11000000'                
  9. __CONFIG    _CONFIG6L,     b'00001111'
  10. __CONFIG    _CONFIG6H,     b'11100000'                
  11. __CONFIG    _CONFIG7L,     b'00001111'
  12. __CONFIG    _CONFIG7H,     b'01000000'

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!
(#) Hp41C válasza tomi52 hozzászólására (») Márc 6, 2010 /
 
Szia!

Próbáld ki (ahogy a P18F4685.inc állományban a kommentben is szerepel):
CONFIG OSC = HS

Szia
(#) icserny válasza tomi52 hozzászólására (») Márc 6, 2010 /
 
Idézet:
„Mit nem veszek észre?”
Azt, hogy ennél nem FOSC hanem OSC a paraméter neve. Tehát így írd:
  1. CONFIG   OSC = HS
Következő: »»   694 / 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