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   571 / 1210
(#) ProxyBlue válasza vicsys hozzászólására (») Szept 23, 2014 /
 
Akkor a rossebet csináljak vele?
Kínában tudok egy céget, akik törik a pic -eket már törettem velük, mert még így is olcsóbb volt mint a gyártó szerinti gép csere, de ebben az esetben nem ér meg 1000 dollárt.
De nem tudom magyarországon ki az aki fel tudná törni....
(#) Hp41C válasza ProxyBlue hozzászólására (») Szept 23, 2014 /
 
Olvasd ki, nézd meg a tartalmát. Ha csopa 0 a prohram memória, akkor a kódvédelem be van kapcsolva. Nézd meg a kiolvasott konfigurációs szót is.
(#) don_peter hozzászólása Szept 23, 2014 /
 
Srácok, tudtok valami olyan PIC-et ajánlani amivel hasonlóan jól lehet dolgozni mint a 18F-es családdal illetve nagyobb a memóriája és komolyabban felszerelt mint a 18F4550/4553?
24-es család vagy feljebb..
A lényeg, hogy DIP-es legyen és minél több lába

Illetve említett itt valaki nekem anno egy shift regiszter típust amely nem csak out volt hanem inputnak is lehetett használni.. Port bővítésre kellene..
Megköszönném, ha ilyet is tudnátok ajánlani.
74HC595 SR-t már használtam korábban.
Előre is köszi.
(#) don_peter válasza (Felhasználó 15355) hozzászólására (») Szept 23, 2014 /
 
Közben én is megtaláltam a listát.
A simát nézem 18F4620-ast mert az 5v-os cserébe max 40MHz ami kicsit zavar..
Nagy lehet a sebesség különbség 48MHz és 40MHz közt?
Valós lehet az a kb. 20%?
Szinte mindent használok 4550-ben és nem akarok alá menni nehogy megszívjam viszont a max 3.6v is zavar...
Talán ez: 18F46K22
Vélemény?
A hozzászólás módosítva: Szept 23, 2014
(#) don_peter válasza (Felhasználó 15355) hozzászólására (») Szept 23, 2014 /
 
Mit jelent az hogy XLP-s?
(#) don_peter válasza don_peter hozzászólására (») Szept 23, 2014 /
 
Közben rájöttem, hogy nem jó a 18F46K22 mert nincs benne USB...
És az XPS is megvan: eExtreme Low Power...
Úgy látom 18-as családban a legjobb USB-s PIC az a 18F45K50.. (40 DIP-esben)

Mindenesetre köszi a listát innen már kibogarászom a megfelelőt számomra.

Tovább a Shift regiszteres kérdésem még mindig áll.: Bővebben: Link
A hozzászólás módosítva: Szept 23, 2014
(#) vilmosd válasza McAdams hozzászólására (») Szept 24, 2014 /
 
Nincs azzal semmi baj, mert a mult heten toltotte le egy kollege innen a forumrol a PICes dolgokat. Regisztralni kell es mar johet is lefele a dokai.
(#) don_peter hozzászólása Szept 24, 2014 /
 

No vissza lapoztam a fórumot regisztrációm kezdetéig és egyesével végignyálazva megtaláltam amire szükségem volt... Nem volt egyszerű..
1. MCP 23017 I2C (eSDi fórumtársunk adta meg a választ ment is a pont)
2. MCP 23S17 SPI

Lenne egy (nem tudom, lehet buta) kérdésem: egyszerre lehet használni az SPI és I2C kommunikációt vagy ezeket csak külön-külön mennek?
Azért érdekes ez a kérdés, mert elég sok mindent kérdezek le SPI-n és még egy perifériát SPI-n keresztül csak igen nehezen vagy nem is tudnék használni. (az időzítések miatt)
Egy 240x64-es kijelzőt szeretnék 1db MCP 23S17-el vezérelni, de nem tudom melyik irányba induljak el.. Előre is köszi..
(#) icserny válasza don_peter hozzászólására (») Szept 24, 2014 / 1
 
Idézet:
„egyszerre lehet használni az SPI és I2C kommunikációt vagy ezeket csak külön-külön mennek?”

PIC18 esetén általában az SPI és az I2C ugyanazokat az erőforrásokat használja. Ha egyszerre akarod használni mindkét buszt, akkor keress olyan típust, amelyikben két hardveres MSSP modul van, vagy használj szoftveres SPI/I2C kezelést (bit banging).
(#) b10up hozzászólása Szept 24, 2014 /
 
Sziasztok!

Két PIC18F45K50-t próbálok meg életre kelteni, de mindketten ugyanazt a jelenséget produkálják.
A D port 0 és 1 lábán van egy piros-zöld közös katódos LED, viszont egyszerre csak egy hajlandó működni, hiába van mindkettő port digitális kimenetre és logikai magasra állítva.
Külön-külön működnek, de egyszerre ha mindkettőt bekapcsolom, vagy a zöld világít (D1 port), vagy semmi nem történik.
A dologban az a furcsa, hogy a jelenség az E porton is fennáll az 1-es és 2-es lábbal, amivel az a probléma, hogy ezek egy LCD modul vezérlőlábai lennének, de így nem működik.
Valaki tudna segíteni, hogy mi lehet a probléma, vagy más is belefutott ezekkel ilyen jelenségbe?
(#) Pali79 válasza b10up hozzászólására (») Szept 24, 2014 /
 
Kellene a program, mert ebből így....
(#) b10up válasza Pali79 hozzászólására (») Szept 24, 2014 /
 
Egyelőre csak ennyi, mert ameddig ez sem hibátlan, nem mentem tovább.

  1. void main()
  2. {
  3. TRISD=0b11111100;
  4.  
  5. while(1)
  6. {
  7. PORTD.F0=0;
  8. PORTD.F1=0;
  9.  
  10. Delay_ms(500);
  11.  
  12. PORTD.F0=0;
  13. PORTD.F1=1;
  14.  
  15. Delay_ms(500);
  16.  
  17. PORTD.F0=1;
  18. PORTD.F1=1;
  19.  
  20. Delay_ms(500);
  21.  
  22. PORTD.F0=1;
  23. PORTD.F1=0;
  24.  
  25. Delay_ms(500);
  26. }
(#) vicsys válasza b10up hozzászólására (») Szept 24, 2014 /
 
A config, hogy néz ki? Van előtét ellenállás a ledeknél? A ledeket lepróbáltad külön-külön tápfesszel?
(#) b10up válasza vicsys hozzászólására (») Szept 24, 2014 /
 
A led rendesen működik önállóan, a közös katód megy GND-re, az anódok külön-külön 220 ohmos ellenállással vannak a PIC-re kötve, az pedig 5V-ot kap.
(#) usane válasza b10up hozzászólására (») Szept 24, 2014 /
 
PORT regisztert olvasásra szoktuk használni, port írásra a LAT regisztert szokás.
A hozzászólás módosítva: Szept 24, 2014
(#) b10up válasza usane hozzászólására (») Szept 24, 2014 /
 
És működik, ennyire világító lednek még nem örültem, köszönöm a segítséget!
(#) usane válasza b10up hozzászólására (») Szept 24, 2014 /
 
Nyilván, mivel ezek read-modify-write utasítások, és a PORT regiszter a portot olvassa ami lehet, hogy nem annyi mint amit beírtál, ha a terhelés nagyon elhúzza, a LAT regiszter viszont a regiszterbe beírt értéket. Használható a PORT is, csak ott célszerű az egész portot írni, az egyes bitek helyett.
A hozzászólás módosítva: Szept 24, 2014
(#) patrik81 hozzászólása Szept 24, 2014 /
 
Áttettem az LCD DB5-ös lábát a PIC RC6-os lábára,de így sem működik a program.Ezt írtam:
  1. #include <pic.h>
  2. #define byte unsigned char
  3.  
  4. // Előre történő deklaráció, hogy a fordító tudja a paraméterek számát
  5. //és típusát valamint a visszatérési érték típusát.
  6.  
  7. void LCD_Parancs_Byte_Out(byte data);
  8. void LCD_Data_Byte_Out(byte data);
  9. void delay(unsigned int varakozasiIdo);
  10.  
  11. int main()
  12. {
  13.     TRISA = 0;
  14.     TRISC = 0;
  15.     delay(6000);
  16.     LCD_Parancs_Byte_Out(0b00111000);//funkció beállítás
  17.     delay(600);
  18.     LCD_Parancs_Byte_Out(0b00111000); //funkció beállítás
  19.     delay(600);
  20.     LCD_Parancs_Byte_Out(0b00001111); //kijelző beállítás
  21.     delay(600);
  22.     LCD_Parancs_Byte_Out(0b00000001); //kijelző törlés
  23.     delay(600);
  24.     LCD_Parancs_Byte_Out(0b00000110); //entry mód beállítás
  25.     delay(600);
  26.     LCD_Data_Byte_Out(0b01000001); //"A" betű kírása
  27. }
  28.  
  29.  
  30. void LCD_Parancs_Byte_Out(byte data)
  31. {
  32. RC1 = 0; //RS
  33. RC0 = 0; //R/W (utasítást írunk)
  34. if (data & 0x80) PORTA |= 0x20; else PORTA &=~0x20; //D7
  35. if (data & 0x40) PORTA |= 0x10; else PORTA &=~0x10; //D6
  36. if (data & 0x20) PORTC |= 0x40; else PORTC &=~0x40; //D5
  37. if (data & 0x10) PORTC |= 0x20; else PORTC &=~0x20; //D4
  38. if (data & 0x08) PORTC |= 0x10; else PORTC &=~0x10; //D3
  39. if (data & 0x04) PORTC |= 0x08; else PORTC &=~0x08; //D2
  40. if (data & 0x02) PORTA |= 0x01; else PORTA &=~0x01; //D1
  41. if (data & 0x01) PORTA |= 0x02; else PORTA &=~0x02; //D0
  42.  
  43. delay(1); // Data setup time min. 195 ns
  44. RA2 = 1;
  45. delay(1); // E pulse width min. 450 ns
  46. RA2 = 0;
  47. delay(7); // 50 us // Address, Data hold time, Cicle time, execution time
  48. }
  49.  
  50. void LCD_Data_Byte_Out(byte data)
  51. {
  52. RC1 = 1; //RS
  53. RC0 = 0; //R/W (adatot írunk)
  54. if (data & 0x80) PORTA |= 0x20; else PORTA &=~0x20; //D7
  55. if (data & 0x40) PORTA |= 0x10; else PORTA &=~0x10; //D6
  56. if (data & 0x20) PORTC |= 0x40; else PORTC &=~0x40; //D5
  57. if (data & 0x10) PORTC |= 0x20; else PORTC &=~0x20; //D4
  58. if (data & 0x08) PORTC |= 0x10; else PORTC &=~0x10; //D3
  59. if (data & 0x04) PORTC |= 0x08; else PORTC &=~0x08; //D2
  60. if (data & 0x02) PORTA |= 0x01; else PORTA &=~0x01; //D1
  61. if (data & 0x01) PORTA |= 0x02; else PORTA &=~0x02; //D0
  62.  
  63. delay(1); // Data setup time min. 195 ns
  64. RA2 = 1;
  65. delay(1); // E pulse width min. 450 ns
  66. RA2 = 0;
  67. delay(7); // 50 us // Address, Data hold time, Cicle time, execution time
  68. }
  69.  
  70. void delay(unsigned int varakozasIdo)
  71. {
  72.   for (unsigned int counter = 0; counter < varakozasIdo; counter++)
  73.   {
  74.       ;
  75.   }
  76. }
(#) zlanczky hozzászólása Szept 24, 2014 /
 
Sziasztok!
Eőrebocsátom, hogy PIC16-os sorozatú, 5V-os processzorokat már sikeresen használtam, a PIC18F44J10-st most próbálom először. Igyekezetem szerint betartottam minden előírást, amely a téma indításánál is fel van sorolva, de nem sikerül egy egyszerű led villogtató programocskát beégetni. PICKIT2-t használok, amellyel sikeresen konnektálok a processzorral, ezt kaptam:
Idézet:
„Found PICkit 2 - Operating System Version 2.32.0
PICkit 2 Unit ID = XX
Target power not detected - Powering from PICkit 2 ( 3.00V)
PIC18F44J10 found (Rev 0x2)
PICkit 2 Ready

de programozásnál ez jön:
Idézet:
„Programming Target (2014.09.20. 12:57:11)
PIC18F44J10 found (Rev 0x2)
Erasing Target
Programming Program Memory (0x0 - 0x7F)
Verifying Program Memory (0x0 - 0x7F)
PK2Error0027: Failed verify (Address = 0x0 - Expected Value 0xEF04 - Value Read 0x0)
PICkit 2 Ready”


Próbáltam külső (szabályozott) 3.3V-tal, pickit2 táppal, másik Pickit2-vel, Kvarccal és anélkül.
Mit ronthatok el?
ÜDV LZ
(#) McAdams válasza vilmosd hozzászólására (») Szept 24, 2014 /
 
Köszi a segítséget jó kiindulási pontnak. Asszem először jól át kell gondolnom mit is akarok erre az "alaplapra"....
A DS1820 1Wire-ben csak úgy működik h először a szotvernek meg kell adnom a kódját az érzékelőnek?
(#) usane válasza zlanczky hozzászólására (») Szept 24, 2014 /
 
kapcsold ki a kódvédelmet.
(#) Hp41C válasza patrik81 hozzászólására (») Szept 24, 2014 /
 
A portok analóg funkciói ki vannak kapcsolva?
ANSEL = ANSELH = 0;
(#) Hp41C válasza don_peter hozzászólására (») Szept 24, 2014 /
 
Olvasd már el a normál pic18F .ek adatlapját: A maximális órajel frekvencia a CLKIN bemeneten 20MHz. Ahhoz, hogy 40 MHz -en mőködjön 10 MHz -es quartz kell és be kell kapcsolni a PLL -t.
(#) nedudgi válasza zlanczky hozzászólására (») Szept 24, 2014 /
 
A programozó lábak kimenetre állítása előtt vársz egy picit?
A hozzászólás módosítva: Szept 24, 2014
(#) Hp41C válasza usane hozzászólására (») Szept 24, 2014 /
 
Az írás során az ellenőrzést még a konfiguráció beírása előtt végzi a PICkit2, ha sikeres, akkor állítja be a végleges konfigurációt. A kódvédelment célszerű (kivételes esetektől eltekintve) kikapcsolni.
(#) Hp41C válasza zlanczky hozzászólására (») Szept 24, 2014 /
 
Hogyan programozod? A VddCode / Vcap láb jól van bekötve? 100nF a Vdd és a Vss lábak között megvan? Minden táp és minden föld láb be van kötve? A PGD és PGC lábakra mi kapcsolódik? Belső órajelről jár a program?
(#) patrik81 válasza Hp41C hozzászólására (») Szept 24, 2014 /
 
Határozottan másképp viselkedik, viszont az LCD még mindig sötét, plusz most már két LED világít.
(#) Hp41C válasza patrik81 hozzászólására (») Szept 24, 2014 /
 
Nyisd meg az MpLab projec -edet.Állítsd be a szimulátort debugger -nek, szimuláld le lépésenként a programodat. Ha más fordítóval készült, akkor importáld be az MpLab alá ill. használd a fordító rendszerét. Nem fogja megcsinálni senki sem helyetted....
(#) cross51 hozzászólása Szept 24, 2014 /
 
Sziasztok!
Nem rég kezdem el 16 bites PIC-el foglalkozni így a 8 bithez egy kicsit új. A printf, putc ... függvényekkel próbálkozom. Az a probléma, hogy hiába jöttem rá, hogy a fordító kimeneti függvényként a void write(char c) függvényt használja, mikor meghívom akkor a c értéke először felveszi a karakter értéket de mielőtt tudnék vele valamit kezdeni 0x01 SOH értéket vesz fel. Megfigyeltem assemblyben, hogy mi történik és egy LNK #0x2 re veszi fel a 0x01-es értéket de ezt nem tudom pontosan, hogy mit hova hogyan csinál a veremben.

Hogyan írandó a write függvény, hogy használható legyen ?
A hozzászólás módosítva: Szept 24, 2014
(#) don_peter hozzászólása Szept 24, 2014 /
 
Srácok el tudná azt valaki magyarázni dióhéjban, hogy még is mit jelet az amikor a PIC adatai közt ezt látom: 2-CCP, 3-ECCP
Mikor oda van írva, hogy 10bit-es PWM akkor azt értem, de a 2-CCP, 3-ECCP mit takar?
Azok is PWM-ek? (ezek 8bit-es PWM-ek? 0-tól 255-ig?)
Köszi előre is...

Konkrétan a PIC18F46K20 és PIC18F46K22-es okoskákat nézem és nem tudom eldönteni, hogy melyik lenne előnyösebb.
A 46K20-asban van 10bit-es PWM (azt használom most is a 4550-ben) viszont 3.6v-os a K22-esben nincs 10bit-es PWM viszont 5v-os, ezért lenne fontos tudnom mit takarnak azok a rövidítések.. Piccolo ezen részre már nem tér ki sajnos.
A hozzászólás módosítva: Szept 24, 2014
Következő: »»   571 / 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