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   1089 / 1210
(#) Al-sulaymaniyah válasza Pali79 hozzászólására (») Máj 28, 2019 /
 
És ehhez mit szólsz? Van hozzá leírás is, pdf doksi. Ahogy olvasom ez tanítható, na de ebben is van alapprogram?
https://quasarelectronics.co.uk/Item/velleman-mk161-2-channel-ir-re...er-kit
(#) nagym6 válasza superuser hozzászólására (») Máj 28, 2019 /
 
Máris megjavult az órajel, lila vonal. Köszi.
A hozzászólás módosítva: Máj 28, 2019

clk.jpg
    
(#) superuser válasza nagym6 hozzászólására (») Máj 28, 2019 /
 
Nincs mit.
(#) lóri hozzászólása Máj 29, 2019 /
 
Sziasztok!
Volt valami i2c-s történet, de nem találom, amiben az volt, hogy a microchip-ék máshogy értelmeznek valami logikai állapotot a 24LC1025 eeprom-nál. Az mire vonatkozott? Egy barátom már három napja küzd ezzel, hátha ez a problémája.
(#) superuser válasza lóri hozzászólására (») Máj 29, 2019 /
 
Valószínűleg a polaritás lesz, azaz a CKP. De mivel nagyjából 3 bit állítja a kérdéses paramétereket, ezért nem beszélünk rocket science-ről.
Még egy van ami szóba jöhet, az a CKE.
Ezeket el kell olvasni, hogy hogyan kezeli a meghajtani kívánt periféria és hogyan a PIC.

ps.: a 24LC annyira standard, hogy rövid googlizással működő kódot lehet hozzá találni PIC-re, i2c konfigurációval, mindennel.
A hozzászólás módosítva: Máj 29, 2019
(#) lóri válasza superuser hozzászólására (») Máj 29, 2019 /
 
Köszönöm, megemlítem.
(#) icserny válasza lóri hozzászólására (») Máj 30, 2019 /
 
Microchipnél a CKE = 1 beállítás felel meg a máshol CKE = 0-nak írttal.
Tehát CKP=0, CKE=1 konfiguráció állítja be az SPI 0,0 módot.
(#) lóri válasza icserny hozzászólására (») Máj 30, 2019 /
 
Köszönöm Tanár-úr.
(#) lóri válasza superuser hozzászólására (») Máj 30, 2019 /
 
Igen, de valamit félreérthettem, mert nem spi, hanem i2c. Az az érdekes, hogy az elején ment googlizott kóddal, most meg egy hete nem. Pic24EP512. Megpróbálom a kódot elkérni, hátha láttok benne valami hibát.
A hozzászólás módosítva: Máj 30, 2019
(#) eSDi válasza lóri hozzászólására (») Máj 30, 2019 /
 
Hali!

I2C-nél másra szolgál ez a két bit.
CKE = SMBus specifikációnak történő megfelelőség ki/be.
CKP = Clock Stretching, ami csak Slave módban lényeges.

Máshol lesz ott a baj.
(#) lóri válasza eSDi hozzászólására (») Máj 30, 2019 /
 
Szia!
Köszönöm. 60MHz-n jár a pic. Volt baj az spbrg értékkel is (vagy mivel). Háromféle számítást találtam, de valahogy nem az igazi. 400kHz sebességgel valami 150 jött ki, de nem jó. Ezzel számoltam: (60000000*100/(400000-1)/100 .
(#) eSDi válasza lóri hozzászólására (») Máj 30, 2019 /
 
Bővebben: Link
Ebben benne van a számítási mód. Ha jól számoltam akkor 33.7-re jön ki.
(#) lóri válasza eSDi hozzászólására (») Máj 30, 2019 /
 
Köszönöm, olyan 25-ig vagánykodtunk, de aztán már nem tudom, hogy mi lett.
(#) suszitibi hozzászólása Jún 1, 2019 /
 
Sziasztok
Szeretnék segítséget kérni. Vettem egy k150 programozót. Az eszközkezelőben látni, de felkiáltó jel van mellette. Azt írja, az eszköz programja naprakész. Nem tudom frissíteni, nincs más driver hozzá. Ha megnyitom a kezelő felületet, akkor nem ismeri fel a portot, nem látja rajta a programozót. Mit tudok csinálni, hogy működjön?
Win 8.1 64 bit. Próbáltam USB2 és 3-as porton is.
Próbáltam eltávolítani a programozót és a drivert is és újra telepíteni, de nincs változás.
Köszönettel: Tibi
(#) superuser válasza suszitibi hozzászólására (») Jún 1, 2019 /
 
Ha az amit a Google dobott,
ezt dobta
akkor mindent elolvashatsz róla:
itt

és vmi. szabadon letölthető driver kell hozzá, pl. FTDI.
A hozzászólás módosítva: Jún 1, 2019
(#) suszitibi válasza superuser hozzászólására (») Jún 2, 2019 /
 
Szia
Köszönöm a segítséget. Megpróbáltam, letöltöttem, de nem megy.
Rádugtam a programozót az USB portra. Feltelepítette, de a felkiáltó jel, ott van. Próbálom vezérlőpulban frissíteni a programot, de nem engedi. Azt írja, a legjobb illesztőprogram telepítve van, meg naprakész. Küldöm a képet. Az FTDI-re is azt írja, nem talál telepíthető fájlokat.
(#) valve válasza suszitibi hozzászólására (») Jún 2, 2019 /
 
Szia.

A Prolific esetén:
1. Update driver
2. Browse my computer for driver software
3. Let me pick from a list of available drivers on my computer
4. Ott kell legyen 2-3 verzió, probáld végig őket...

Angol Windowst használok, viszont a menük ugyanott vannak.

Ha nem megy, akkor elküldöm a nálam működő verziót.
(#) icserny válasza suszitibi hozzászólására (») Jún 2, 2019 /
 
Megkönnyítené a dolgunkat, ha az USB-r kötött átalakító IC-nek leolvasnád a pontos típusszámát. Ha nem FTDI, hanem valamilyen PL2303-ról van szó, akkor garantált a szenvedés!

Előfordulhat, hogy csak másik USB csatlakozóba kell dugni, de az is lehet, hogy keresgélni kell a különböző évjáratú meghajtóprogramok között (az IC-t Tajvanaon gyártják, de avn Kínai hamisítvány is...).

A gyártó hivatalos oldalán található a jó IC-khez tartozó meghajtó és itt lehet letölteni egy PL2303 CheckChipVersion segédprogramot is, ami megmondja, hogy milyen IC-t talált.

A fenti szoftver által el nem fogadott IC-k esetén itt lehet tanácsokat kapni. A lényeg többnyire az, hogy egy régebbi drivert kell találni és telepíteni.
(#) NickE hozzászólása Jún 2, 2019 /
 
Az összes PIC adatlapján van egy érdekes figyelmeztetés: "Analog levels on any pin that is defined as a digital input (including the ANx pins) may cause the input buffer to consume current that exceeds the device specifications."

PIC24FV32KA304 11.2 fejezet, 136-ik oldal.

Miért is baj, ha egy digitális bementre analóg jel megy? (Természetesen nem lépjük át a bemeneten az adatlapban megadott feszültségszinteket.)

Arra akar célozni, hogy esetleg egy bizonyos frekvencia fölött a túl gyors "billegés" gondot okozhat?
(#) suszitibi válasza icserny hozzászólására (») Jún 2, 2019 /
 
Igen, PL2303, de nem akart működni egyikkel sem. Viszont Valve kollégánál működő telepítés, nálam is bejött. Igaz, egy rakás problémát jelzett, aztán nehezen, de csak felment az a fránya HEX. Nem tudom, hogy jó lesz-e, a panelt még nem csináltam meg hozzá.
Egy MIDI mergert építek, hogy a hangmodult, tudjam használni egyszerre két billentyűzettel, vagy basszus pedállal.
Köszönöm mindenkinek a segítséget.
(#) cross51 válasza NickE hozzászólására (») Jún 3, 2019 / 3
 
A Digitális bemeneteknek van egy high és egy low küszöbe (jelen esetben VIL=0.2*VDD, VIH=0.8*VDD).
Ha az anlóg jel kisebb mint VIL vagy nagyobb mint VIH akkor nincs baj, ha viszont a kettő között van akkor van a baj.

Mivel a kettő között tartomány egy átmeneti tartomány ahol nem stabil az állapot és billeghet. Mivel ezek CMOS áramkörök és a FET igazándiból akkor fogyaszt amikor kapcsol (parazita kapacitások).

A freki lehet növeli ezt a fogyasztást, de nem az okozza a problémát.

Megoldások/gyártói ajánlások:
- nem használt bemenetek külső pull down(/up) használata
- ugyanez belsővel
- kimenetre állítani és lehúzni low-ra

Az első 2 verzió fejlesztő barátabb, mivel ha véletlen 2 láb közé nyúlsz ahol mindkettő kimenet viszont az egyik high a másik low akkor rövidzárat csinálsz viszont, ha pull down-nak van konfigolva és összeérinted őket nem történik semmi.

Egyébként low-energy-s alkalmazásoknál ez alap hiba, hogyha egy bement nincs megfelelően konfigurálva és vagy lebeg vagy a te kérdésedben anlaóg jel megy rá, mert vagy undeterminisztikusan felébreszti a controller-t vagy csak növeli a fogyasztást a lábon való lebegő potenciál.
(#) NickE válasza cross51 hozzászólására (») Jún 3, 2019 /
 
Köszönöm a részletes magyarázatot!
(#) Hp41C válasza cross51 hozzászólására (») Jún 3, 2019 /
 
Idézet:
„Mivel a kettő között tartomány egy átmeneti tartomány ahol nem stabil az állapot és billeghet. Mivel ezek CMOS áramkörök és a FET igazándiból akkor fogyaszt amikor kapcsol (parazita kapacitások).”

Nem csak a billegés okoz gondot, hanem az is , hogy a bemenetet alkotó N és P csatornás MOS-FET -ek egyike sem zár le közbenső feszültség tartományban, hanem valamennyire vezet mind a kettő. Ld. C-MOS inverter
Azt garantálja a gyártó, hogy a bemeneti feszültség Vss - Vilmax (Vss és az alacsony logikai szint maximális feszültség) közötti értékei esetén a N csatornás, a Vihmin - Vcc (a magas logikai szint minimális feszültsége és a tápfeszültség között) a P-csatornás MOS-FET lezár, így rajtuk áram nem folyik.
(#) lastewer hozzászólása Jún 3, 2019 /
 
Sziasztok!

Raktunk össze egy karakter figyelőt itt az oldalon még pár hete , de van egy kis gondom vele.

Ha pár másodpercenként jön on és off váltakozva, akkor bebugol és csak az off -ra kezd el reagálni , az on parancsot figyelmen kívül hagyja.

Megszakításban van egy cnt változóm. Ezzel villogtatok egy ledet a while ciklusban és mikor kiakad az egész program, akkor néha folyamatosan ég a ledem , néha meg kikapcsol és megszűnik a villogása. Kilép a while ciklusból valamiért vagy nem tudom .

Lenne valakinek ötlete hogy mitől bugos?


  1. 1.      // Órajel beállítása (Kvarc)
  2. 2.      #define _XTAL_FREQ 16000000
  3. 3.      #define PUFF_SIZE 20
  4. 4.       
  5. 5.      // Változók beállítása
  6. 6.          char puffer[PUFF_SIZE];
  7. 7.          char pp=0;
  8. 8.       
  9. 9.      //Main -----------------------------------------------------------------
  10. 10.     void main()
  11. 11.     {
  12. 12.        UART1_Init(4800);            // Initialize USART module
  13. 13.        delay_ms(500);
  14. 14.        UART1_Write_Text("PIC start");
  15. 15.        UART1_Write(13);      // Start a new line
  16. 16.      
  17. 17.      
  18. 18.       while (1)
  19. 19.       {
  20.  
  21.       if (cnt >= 5000)    // 10000 * 0.1 ms = 1 mp
  22.       {
  23.                 PORTB.F3 = ~PORTB.F3;   // B lábak villogtatása
  24.                 cnt = 0;                // Számláló reset
  25.       }
  26.  
  27. 20.         if (UART1_Data_Ready() == 1)   // Ha van bejövő adat
  28. 21.         {
  29. 22.             if (pp < PUFF_SIZE)
  30. 23.                puffer[pp++]= UART1_Read(); // Get received byte
  31. 24.                puffer[pp] = 0;
  32. 25.             if (pp >= PUFF_SIZE)
  33. 26.               pp = 0;
  34. 27.             if(strstr(puffer, "on"))
  35. 28.               {
  36. 29.                 UART1_Write_Text("Bekapcsolva");
  37. 30.                 memset(puffer, 0, sizeof puffer);
  38. 31.       puffer[0] = 0;
  39. 32.                        pp = 0;
  40. 33.               }
  41. 34.             if(strstr(puffer, "off"))
  42. 35.               {
  43. 36.                 UART1_Write_Text("Kikapcsolva");
  44. 37.                 memset(puffer, 0, sizeof puffer);
  45. 38.       puffer[0] = 0;
  46. 39.                        pp = 0;
  47. 40.               }
  48. 41.    
  49. 42.         }
  50. 43.       }
  51. 44.     }
(#) superuser válasza lastewer hozzászólására (») Jún 3, 2019 /
 
Már akkor néztem a kódot, hogy érdekes, de írtad hogy működik, nem akartam feszegetni.
  1. 20.         if (UART1_Data_Ready() == 1)   // Ha van bejövő adat
  2. 21.         {
  3. 22.             if (pp < PUFF_SIZE)
  4. 23.                puffer[pp++]= UART1_Read(); // Get received byte
  5. 24.                puffer[pp] = 0; //ez a sor az if alá van tagolva, de nincsen blokkba rakva


Egyébként meg ha csak az "on" és "off" stringeket akarod figyelni, akkor az 'o' érkezésénél törölheted a puffert és elég a pufferben az első 3 pozíción lévő karaktert vizsgálni, akár egyszerű if feltétellel.
(#) lastewer válasza superuser hozzászólására (») Jún 3, 2019 /
 
Fontos lenne, hogy a teljes stringet figyeljem. Mert ezeket majd át akarom írni egyedi nevekre. Kipróbálom blokkba rakva , köszi

Igen , egy darabig működik, csak aztán jönnek a problémák.
A hozzászólás módosítva: Jún 3, 2019
(#) Hp41C válasza superuser hozzászólására (») Jún 3, 2019 /
 
Mit is csinál az UART1_Write_Text() eljárás?
Lehet, hogy csak az a baja, hogy amíg a "Bekapcsolva" vagy a "Kikapcsolva" szöveget küldi nem figyel a vett karakterekre. 11 karakter adási ideje alatt 2 "on" és még 2 "off" is érkezhet.

Térj vissza ehhez a javaslathoz.
(#) lastewer válasza Hp41C hozzászólására (») Jún 3, 2019 /
 
Amikor bugos lesz , kilép a main részbe most nézem.

Egyenlőre megszakításba nem tudom hogyan kellene beletenni, de addig még nem jön vissza hogy bekapcsolva vagy kikapcsolva , nem küldök neki adatot.

Tehát így akkor nem az lehet a gond szerintem.
A hozzászólás módosítva: Jún 3, 2019
(#) superuser válasza lastewer hozzászólására (») Jún 3, 2019 /
 
Kicsit módosítottam rajta, ezt lepróbálhatnád
  1. if (UART1_Data_Ready())   // Ha van bejövő adat - szerintem ez volt az egyik legproblémásabb sor, mert ha 1-nél több bájt jött be egyszerre, akkor behalt az egész
  2.   {
  3.    if (pp < PUFF_SIZE)
  4.      {
  5.      puffer[pp++]= UART1_Read(); // Get received byte
  6.      puffer[pp] = 0;
  7.      }
  8.    if (pp >= PUFF_SIZE)
  9.      pp = 0;
  10.    if (strstr(puffer, "on"))
  11.      {
  12.       UART1_Write_Text("Bekapcsolva");
  13.       memset(puffer, 0, PUFF_SIZE);
  14.       pp = 0;
  15.      }
  16.    if (strstr(puffer, "off"))
  17.      {
  18.       UART1_Write_Text("Kikapcsolva");
  19.       memset(puffer, 0, PUFF_SIZE);
  20.       pp = 0;
  21.      }
  22.   }
A hozzászólás módosítva: Jún 3, 2019
(#) lastewer válasza superuser hozzászólására (») Jún 3, 2019 /
 
Így van , hogy egyszerre jön meg a kikapcsolás és bekapcsolás szöveg . És már most induláskor is visszalép a main részbe , mert kiírja hogy pic start.
A hozzászólás módosítva: Jún 3, 2019
Következő: »»   1089 / 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