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   952 / 1203
(#) cross51 válasza don_peter hozzászólására (») Máj 18, 2017 /
 
A 2. kérdésre
Nekem a FATFS libary-ben így van megoldva a select, deselct.
  1. byte DiskIO::wait_ready(void) /* 1:Ready, 0:Timeout */
  2. {
  3.     //bool timeOut = true;
  4.  
  5.     uint32_t start = TickTimer::TickCount();
  6.  
  7.     while ((TickTimer::TickCount() - start) < 500)
  8.     {
  9.         if (sd_rx() == 0xFF)
  10.         {
  11.                         return 1;
  12.             //timeOut = false;
  13.             //break;
  14.         }
  15.     }
  16.  
  17.         return 0;//return timeOut ? 0 : 1;
  18. }
  19.  
  20.  
  21. /*-----------------------------------------------------------------------*/
  22. /* Deselect the card and release SPI bus                                 */
  23.  
  24. /*-----------------------------------------------------------------------*/
  25.  
  26. void DiskIO::deselect(void)
  27. {
  28.     LATASET = 0x01; /*LATAbits.LATA0 = 1;*/ /* Set CS# high */
  29.     sd_rx(); /* Dummy clock (force DO hi-z for multiple slave SPI) */
  30. }
  31.  
  32.  
  33.  
  34. /*-----------------------------------------------------------------------*/
  35. /* Select the card and wait for ready                                    */
  36.  
  37. /*-----------------------------------------------------------------------*/
  38.  
  39. byte DiskIO::select(void) /* 1:Successful, 0:Timeout */
  40. {
  41.     LATACLR = 0X01; /*LATAbits.LATA0 = 0;*/ /* Set CS# low */
  42.     sd_rx(); /* Dummy clock (force DO enabled) */
  43.     if (wait_ready())
  44.     {
  45.         return 1;
  46.     } /* Wait for card ready */
  47.  
  48.     deselect();
  49.     return 0; /* Timeout */
  50. }


és az sd rx
  1. #define sd_rx()         spiExchange(0xFF)
  2. ....
  3. ...
  4. byte DiskIO::spiExchange(byte data)
  5. {
  6.     SPI2BUF = data;
  7.     while (SPI2STATbits.SPIBUSY);
  8.     return SPI2BUF;
  9. }


Tehát úgy gondolom nem kell lefuttatnod újra az SD init-et.
A hozzászólás módosítva: Máj 18, 2017
(#) pajti2 válasza don_peter hozzászólására (») Máj 18, 2017 /
 
A "break"-nek tudnia kell biztonságosan működnie. Ha nem teszi a dolgát, az fordító hiba. A mellékelt kód abból a szempontból tökéletesen rendben van. Ha a ciklus változót írod át, annak is működnie kell stabilan, de a break a tisztább megoldás.

Az SD kártyát elég egyszer inicializálni bekapcsolásonként (stabil tápfesz állapot / nem kapott cmd15-öt). Hajthatsz közös SPI-n akárhány klienst. Ha az aktív nCS megszűnik valamelyiken, az nem kikapcsolás, az csak normál üzemszerű állapot. Úgy lett az SPI kitalálva. Egy másik tasliba szaladhattál bele inkább, ha misztikus nem-működési esetet tapasztaltál, ami nem elméleti, hanem gyakorlati. Az SD kártyák általában kényesek a szép jelalakra. Sok egyéb perifériát felpakolsz ugyan arra az SPI-re, elkezdenek növekedni a parazita tényezők. Sajnos a gyakorlatban az okozhat problémát. Megoldás gyanánt visszalassíthatod a sebességet (drasztikusan), vagy használhatsz extra meghajtót - vagy mégis csak külön SPI-re rakod az SD kártyát.
A hozzászólás módosítva: Máj 18, 2017
(#) cross51 válasza pajti2 hozzászólására (») Máj 18, 2017 /
 
Vagy még az is okozhat problémát, ha elfelejted felhúzni a SDI lábat (SD MISO) nekem csak 1 SD-vel működött így semelyik másikkal nem, aztán észrevettem, hogy kell neki a felhúzás azóta jó mindegyikkel.
(#) don_peter válasza cross51 hozzászólására (») Máj 18, 2017 /
 
Igen, CS-re úgy fest jól működik..
(#) don_peter válasza pajti2 hozzászólására (») Máj 18, 2017 /
 
Akkor marad a break utasítás.
SD-vel nincs gond.. Elméletileg kérdeztem..
Most kipróbáltam, nem okoz gondot az engedélyezés.

OLED kijelzőt is akarok ugyan azon SPI-vel hajtani csak nem SPI módban, hanem sima lábként.
Akkor jó lesz ez így..
(#) Hp41C válasza silent15 hozzászólására (») Máj 18, 2017 /
 
Idézet:
„...összes hibája pár bug volt....”

A "Miért nem harangozunk? " vicc jut eszembe. Sok oka van ennek, .. (1001 ok), és végül, mert nincs harang.
A Programming Executive egy kis programrészlet, amivel a 16 és 32 bites kontrollerek programozásához le kell tölteni a kontrollerbe, majd futtatni és vele felprogramozni a kontrollert. A PICkit2 V2.61 verzióban a 16 bitesekhez csak a 16FJxxxGA00x -hez a 32 bitesekhez csak a 32MX3xxxxxx -hoz való van belefordítva a kódba.
(#) silent15 válasza Hp41C hozzászólására (») Máj 18, 2017 /
 
Félre ne érts, teljesen régi emlékből mondtam és teljesen jóindulattal. Próbálkozok felzárkózni a fejlemények olvasásában, amit eddig beletuszkoltál, az hihetetlen. Erősen gondolkozok egy teféle klón utánépítésén. Részben a belepakolt extrák miatt de főként a bővített támogatás miatt.
A hex is elérhető hozzá? Valószínűleg a szemem szúrja ki csak nem találom
(#) Birs Alma válasza cross51 hozzászólására (») Máj 18, 2017 /
 
Köszönöm! Működik.
Igaz csak XC8 v1.41-el. A v1.42-vel továbbra sem. De így is teljesen jó. Köszönöm!
(#) kriszrap hozzászólása Máj 19, 2017 /
 
Sziasztok elkeztem egy vu métert leprogramozni C be.

Max 810 értékül és azt elosztottam 10 el vagy is 81 enként van egy led kigyujtva.
Kapcsolás Ezt a csúcsegyenirányító raktam össze annyi változtatással hogy 10uf 10k helyeztem be.(Természetesen ez megy a pic Analogjára.)
A problémám az hogy nagyon ugrálnak a ledek vagy is 2 led villágit és mondjuk jön egy basszus felugrik hirtelen azt egyböl vissza urik 2 ledre (Basszus hatásának vége már!!). Nincs valami modszer rá hogy ne ugráljon ennyire??
Probálkoztam 250 sec es frissitésel hát nagyon lemaratt a kijelzés....
(#) pajti2 válasza kriszrap hozzászólására (») Máj 19, 2017 /
 
Miért nem sávszűrten csinálod a kijelzést?
(#) kriszrap válasza pajti2 hozzászólására (») Máj 19, 2017 /
 
Hmm és azt hogy kellene megoldani ? Nem nagyon tudom mi fán terem mégnem csináltam.....
(#) silent15 válasza kriszrap hozzászólására (») Máj 19, 2017 /
 
Csúszóablakos szűrés. A jeleket egy tömbbe gyűjtöd és ezt átlagolod, ez az átlag lesz a kimenet. Ez elsimítja a tüskéket, az ablak méretével pedig belőheted hogy mennyire.
A hozzászólás módosítva: Máj 19, 2017
(#) Bell válasza kriszrap hozzászólására (») Máj 19, 2017 /
 
Szerintem a rekurzív átlagolás kell Neked.
átlag=n/(n+1) * előző_átlag + 1/(n+1) * mért_érték, ahol n= 1,2, ...
Nagy előnye, hogy nem kell semmit tárolni, gyors és mindig az aktuális eredményt kapod.
Ráadásul mért értéket utólag is tudsz törölni az eredményből, vagy utólag módosítani.
Bővebben: Link
A hozzászólás módosítva: Máj 19, 2017
(#) proli007 válasza kriszrap hozzászólására (») Máj 19, 2017 /
 
Hello! Csak a csúcsegyenirányító kapcsoláshoz.. Ez a kapcsolás csak kettős tápfeszültséges működik. Mert a TL071 nem alkalmas féltápfeszültséges üzemhez. Ha a PIC 5V tápfeszültségéről járatod, abból nem sok jó fog kisülni. Ha LM358-at használsz, az 5V táphoz, akkor működhet, de egyszeres erősítés mellett, maximum 3V lenne a kimenő feszültsége, de közben az OPA bemenete nem kaphat a negatív táp alatti -3V feszültséget. A választott időállandó kb. 0,1sec míg a csúcsérték a 37%-ra csökken.
(#) kriszrap válasza proli007 hozzászólására (») Máj 20, 2017 /
 
Nem lm358 ha nem MCP6002 használok.
(#) silent15 hozzászólása Máj 20, 2017 /
 
Sziasztok!
Amint említettem találtam egy nekem megfelelő PIC-et, mégpedig a PIC16F1788-at, megnéztem benne van ami kell és támogatja az adatlap szerint a PICkit2. Viszont amikor programozni szerettem volna mégsem ismeri fel, megnéztem a readmeat és ott sem szerepel. Az összes LF elvileg programozható vele, de az adatlap nem írta hogy ott is csak az LF. Most akkor minek higgyek? Ha pedig nem lehet vele akkor van esély rá hogy device editorral megoldjam, vagy rendeljek egy klón pickit3-at ?
Köszönöm

progammer.JPG
    
(#) Pali79 válasza silent15 hozzászólására (») Máj 20, 2017 /
 
Elvileg megoldható. Hp41C már sok típust "megismertetett" a PK2-vel. Talán a PK2 fejlesztése témában többre mész.
(#) Bakman válasza silent15 hozzászólására (») Máj 20, 2017 /
 
A melléklet szerint támogatja.
(#) proli007 válasza kriszrap hozzászólására (») Máj 20, 2017 /
 
Akkor oké, csak oda kellet volna írni akkor a képre..
(#) kriszrap válasza proli007 hozzászólására (») Máj 20, 2017 /
 
Bocsii
A hozzászólás módosítva: Máj 20, 2017
(#) kriszrap válasza Bell hozzászólására (») Máj 20, 2017 /
 
Kedves Bell es mennyi milisec legyen a minta veteli ido ??? Vagy mennyi idokozonket kerjem le az eredmenyt??
Ha jol emlekszem a MikroC nem szereti a rekruziot
A hozzászólás módosítva: Máj 20, 2017
(#) Hp41C válasza silent15 hozzászólására (») Máj 21, 2017 /
 
Te a gyári programozási dokumentációt nézed, ami helytelenül írja, hogy programozható a PICkit2 -vel, mert nem készítették fel rá. A telepítési könyvtárban a PICkit 2 Readme.txt sorolja fel a kezelhető típusokat.
Bakman már a továbbfejlesztett PICkit2 -ről ír, amikor a "PicKit2 DeviceSupport_20130308.txt" állományt emlegeti. Ilyen formátumot nem ad a PICkit2 v2.61.xx.
Egyébként felkészíthető rá a PICkit2...
A hozzászólás módosítva: Máj 21, 2017
(#) Hp41C válasza Hp41C hozzászólására (») Máj 21, 2017 /
 
Dajnos, mire megtaláltam, már nem tudtam módosítani a hozzászólást.
Bővebben: Link
(#) silent15 válasza Hp41C hozzászólására (») Máj 21, 2017 /
 
Köszönöm a linket! Megcsináltam amit ott leírtál, viszont problémába ütköztem, de ezt már ott mert már kezdek nagyon offolni.
(#) pajti2 hozzászólása Máj 22, 2017 / 3
 
Üzenem mindenkinek aki a jövőben azzal járna erre, hogy pic-ek mennyire felhasználóbarátságtalanok, és hogy az avr-ek mennyivel jobbak, hogy elmehetnek a sunyiba! Az egész avr community süket ágyúk gyülekezete a he-n is, meg az avrfreak-en is. A beginner tutorialok egy halom 404 link és rég nem működő / fel sem települő tool-ok halmaza. Minden, amit kerestem volna, egy nyavajás attiny10 assembler, és képtelenség keríteni. Az atmel studio 7 például fel sem települ. (Olyan windows frissítéseket kér, amire az a csomag azt írja ki, hogy nem telepíthető erre a windows-ra.) Ami assemblert találtam, nincsen hozzá header / pragma gyűjtemény. Ami egyáltalán supportolja az attiny10-et, eddig 10 gigát nyomott a winchesteremre (VS10 + extra csomagok egy gombostűfejnyi pici vacak avr kedvéért), és még mindig nem megy olajozottan. És ez még csak a fordítás, a programozás még mindig egy halom pofonnal fog érkezni. A pic-ek után az avr egy rémálom!
(#) nedudgi válasza pajti2 hozzászólására (») Máj 22, 2017 /
 
Jó hogy ezt ideírtad. Már éppen elkezdtem foglalkozni a gondolattal, hogy minekutána a legújabb PIC-eket nem támogatja az MPLab 8.92, tizedszerre is megpróbálom az MPLabX használatát. Inkább lemondok az újdonságokról ezek után. Sok időt megspóroltál nekem. .
(#) usane válasza pajti2 hozzászólására (») Máj 22, 2017 /
 
Ilyenekkel én is szívtam mikor kipróbáltam. Marad a PIc, meg majd lassan lassan kóstolgatom az ARM-eket.
(#) Hp41C válasza pajti2 hozzászólására (») Máj 22, 2017 /
 
Ne aggódj, a PICkit2 az AtTiny10 -et is programozhatja. Már az is Microchip gyártmány.

A Studio 6 szétverte a VC8 -amat, térhettem át a VC10 -re. Az MpLab X a próbák során feltett két példány Java -t, mos sír, hogy elavult...
A hozzászólás módosítva: Máj 22, 2017
(#) hapci hozzászólása Máj 22, 2017 /
 
Szervusztok!
Fűtés-szabályozó adatait szeretném soros vonalon kiolvasni, de az adatfeldolgozó egységet csak alkalmanként csatlakoztatnám.
Hogyan szokás "civilizáltan" lekérdezni, hogy él-e a csatlakozás? Szabad lábam nem maradt (PIC16F628A), az RX és a TX lábak állnak rendelkezésre. (A rövidzár dugó nem tetszik: nyitott csatlakozóról kellene felismerni, hogy ne kommunikáljon, és viszont.)
(#) pajti2 válasza hapci hozzászólására (») Máj 22, 2017 /
 
A soros vonal ttl konvertált állapotában folyamatosan magas, ha "üres". (Ha érkezik valami, a start bit garantáltan alacsony.) Szimplán felhúzod gyengén egy ellenállással, és ha bármi érkezik, azt átveszed, ha pedig nem tudtál semmit sem átvenni, akkor nem érkezett semmi. Az uart ki van találva, nem lesz vele problémád.

De az csak a pic oldalán byte szervezettség szintjén. A fűtés szabályozód bármit is küld, remélem, meg van oldva a frame szervezés. Ha hot-plugolnád, akkor könnyen lehet, hogy valami adatcsomagnak a kellős közepén kezded el a vételt. Azt az esetet tudni kell kiszűrni valahogy, ha nem akarsz adat integritási hibákba beleszaladni.
A hozzászólás módosítva: Máj 22, 2017
Következő: »»   952 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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