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   786 / 1210
(#) Elektro.on válasza kissi hozzászólására (») Máj 4, 2016 /
 
Magyarországon sehol nem találtam. Elég új dolog, Kínai fejlesztés. Vagy a gyártó oldalán vagy Ebay -ről beszerezhető.
Az FTDI cégtől Ft80x es széria van itthon is de sokkal drágábbak ennél.
(#) kissi válasza Elektro.on hozzászólására (») Máj 4, 2016 /
 
OK, köszönöm az infót !
(#) kaito83 válasza pajti2 hozzászólására (») Máj 4, 2016 /
 
Ez amit generál a fájlból a bin2hex és a microbrn.exe-nek ez nem tetszik próbáltam más hex-et azt simán beégeti

  1. :2000000010280234FFFFFFFFA000030883120313A1000A08A2000408A3008A110A1200293C
  2. :20002000D420031DFF2F98138316813099002430980003178801890103138312181698174F
  3. :200040003130B200403084008C1E242818193428981834281A0880002E3C031938284F3003
  4. :200060000402031D840A24281A0818121816242842300406031D222841083202031D2228ED
  5. :2000800049304002031D4A280120D0002E30D100C920222850304002031D22280310DE2083
A hozzászólás módosítva: Máj 4, 2016
(#) pajti2 válasza kaito83 hozzászólására (») Máj 4, 2016 /
 
Amit beéget a microbrn normálisan, ott is 0x20 hosszú sorok vannak? Nézz bele abba a hex-be is. Én jellemzően csak 0x10-es hosszúsággal találkozom az MC kimeneteken. Ezt a hex-et milyen bin2hex tool csinálta?

Ha mást nem, át lehet konvertálni azt a hex állományt, de pepecselni kell majd vele külön programot írni rá, hogy szétszedni a sort kettőbe, és cím + ellenőrző érték módosítással egy másik file-ba úgy írni bele.

Edit:
Hmm ez a kérdés inkább @Hp41C-nek szól, lehet, neki kellett volna inkább címeznem. Furcsak az a bin2hex tool, amit fellinkelt. Honnét van az?
A hozzászólás módosítva: Máj 4, 2016
(#) eSDi válasza elektroszala hozzászólására (») Máj 4, 2016 /
 
16f1824-es PIC esetén az 500kHz-es belső oszci akár ±5%-os eltéréssel is dolgozhat a hőmérsékelt függvényében. Az EUSART BRG16 beállításának engedélyezésével a 2400-as baud 1% alatti hibával működik a fent említett eltérés esetén. Ha így sem működik neked, akkor ott valami más probléma lesz.

SYNC = False
BRGH = True
BRG16 = True
SPBRG = 48
(#) Elektro.on válasza eSDi hozzászólására (») Máj 4, 2016 /
 
Én 16F690 -el belső oszcillátorral meg... tam. Az UART mindig szétesett. Véletlen szerűen vagy vitt át adatot vagy nem. (9600bps...)
(#) elektroszala válasza eSDi hozzászólására (») Máj 4, 2016 /
 
Szóval akkor elvileg 16bites brg-vel gond nélkül kell menjen különféle hőmérsékleteknél is? Vagy mi van akkor , ha a Mester egyik pwm kimenetét használnám a slave-en órajelnek? Az nem segít?
A hozzászólás módosítva: Máj 4, 2016
(#) Lamprologus válasza Elektro.on hozzászólására (») Máj 4, 2016 /
 
Erről a HMI-ről érdemes lenne egy új fórum témát nyitni!


Egy kérdés fel is merült bennem PIC-es felhasználásával kapcsolatban: ha a PIC-nek egy soros portja van, és azon már lóg mondjuk egy ESP8266 modul, akkor hogyan lehet rákötni a HMI-t?
(#) Elektro.on válasza Lamprologus hozzászólására (») Máj 4, 2016 /
 
Igazad van!

Nyitottam: Nextion HMI topik
(#) Elektro.on válasza Lamprologus hozzászólására (») Máj 4, 2016 /
 
Azért, hogy a PIC -es kérdésre válaszoljak.
Vagy másik típust választassz amiben legalább 2 UART van, vagy ha belefér akkor szoftveres uart.
(#) Hp41C válasza pajti2 hozzászólására (») Máj 4, 2016 /
 
Hogy egyes programok milyen válogatósak.... Az eszem megáll. A PICkit2 simán beolvassa a 32 byte -os verziót is. Ha netán ez meg túl hosszú lenne, a FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF adatot tartalmazó sorok törölhetők.
A hozzászólás módosítva: Máj 4, 2016
(#) eSDi válasza elektroszala hozzászólására (») Máj 4, 2016 /
 
Igen mennie kell. Ha behúzol még egy vezetéket órajelnek, akkor inkább használd valamelyik szinkron sorosadatátvitelt.
(#) nedudgi válasza Elektro.on hozzászólására (») Máj 4, 2016 /
 
Annyit lehet tenni, hogy figyeljük, mikor keletkezik átviteli hiba a soros vonalon. Ez megadhat egy karakterszámot, aminél rövidebb bokkokra bonjuk az átvitelt. A START bit újraszinkronizálja az UARTokat.
Másfajta megoldás lehet az aszinkron mód helyett szinkron üzemmód használata, amikor az órajelet a master adja, a slave pedig fogadja. Ilyenkor, ha induktív, kapacitív tényezők nem nagyon torzítják a jelet, nagyobb átviteli sebességet is el lehet érni két kontroller között.
(#) elektroszala válasza eSDi hozzászólására (») Máj 4, 2016 /
 
Nekiálltam Spi-vel. Ha elakadok (valószínű), jelentkezem...Addig is köszönet!
(#) kissi válasza Elektro.on hozzászólására (») Máj 4, 2016 /
 
A linkre az jön be, hogy a téma nem található !?
(#) Elektro.on válasza kissi hozzászólására (») Máj 4, 2016 /
 
Törölték a topikot. Ezekszerint itt megy tovább...
(#) pajti2 válasza kaito83 hozzászólására (») Máj 4, 2016 /
 
@Hp41C nekem linkelt egy választ a rövidített-soros .hex file-al, töltsd le azt a verziót is, és tájékoztass bennünket róla, mit jelez róla a microburner.
(#) pajti2 válasza Hp41C hozzászólására (») Máj 4, 2016 /
 
Ne engem szidj, én is pk2/3-at használok
(#) nedudgi válasza Elektro.on hozzászólására (») Máj 4, 2016 /
 
A linkeddel lehet valami, mert a topik él és virul...
Bővebben: Link
Pontosabban... valami zavar van az erőben. Ha a fórum elejéről keresem, akkor ott van, a Figyelőbe berakható, de ha [Link]-et csinálunk róla, akkor eltűnik.
A hozzászólás módosítva: Máj 4, 2016
(#) Elektro.on válasza nedudgi hozzászólására (») Máj 5, 2016 /
 
A szerkesztők törölték a topikot! Amit létre hoztam a Nextion TFT -nek.
Pedig az nem ide a PIC -es topikba tartozik. De ha szerintük igen akkor itt írunk róla.
(#) nedudgi válasza Elektro.on hozzászólására (») Máj 5, 2016 /
 
Itt valami félreértés lehet. Nem anyáztál, vagy valami politikai színezetű megjegyzést tettél a topiknyitóban?
Nem hiszem, hogy kínai elvársaink saját fejlesztésű termékcsaládja embargós lenne.
(#) Elektro.on válasza nedudgi hozzászólására (») Máj 5, 2016 /
 
Csak annyit írtam. hogy" Akkor itt folytathatjuk a Nextion HMI témát".
Erre valaki írt egy olyan választ, hogy nem ilyen módon kéne megnyitni egy topikot. Pár óra mulva kaptam a rendszer üzenetet miszerint a szerkesztők törölték a topikot.


Most találtam rá, másnak engedték az uj topikot létre hozni ITT megtaláljátok.
A hozzászólás módosítva: Máj 5, 2016
(#) nedudgi válasza Elektro.on hozzászólására (») Máj 5, 2016 /
 
Bővebben: Link Valószínűsítem, hogy azért, mert a moderátor nem értékelte eléggé, hogy hamar be akartad fejezni az offolást ebben a topikban.
A hozzászólás módosítva: Máj 5, 2016
(#) benjami válasza Elektro.on hozzászólására (») Máj 5, 2016 /
 
Valószínűleg azért törölték, mert semmi érdemi infót/linket nem közöltél arról, hogy miről is szólna a téma, így aki nem innen tévedt oda, az csak a "nagy fehér folttal" találkozhatott.
(#) gyoran válasza nedudgi hozzászólására (») Máj 5, 2016 /
 
Sziasztok,
az nem úgy van, hogy a soros átvitel minden start bit elején újraszinkronizálja magát? Szóval sima időzítési gond már egy byte-on belül is problémát okoz, vagy elvben sohasem? De semmiképpen nem gyűlik?
(#) pajti2 válasza gyoran hozzászólására (») Máj 5, 2016 /
 
A soros protokolban az adat a start bittel kezdődik, van ott egy lefutó él, és igen, ahhoz szinkronizálnak a soros vételi elektronikák, plussz a saját órajelükhöz utána.

A belső órajel jellemzően nem igazodik a bit idő pontos frekvenciájához (nagyon ritka esetben képes tökéletesen igazodni), így a start bit után folyamatosan "elcsúszik" a bit szinkron.

Amennyire lehet, beállítják a mintavételi időpontot bit közép időre, ami az elején még viszonylag pontosan ott lesz. Az utolsó bit időre viszont már akkora tud lenni a hiba, hogy közelíti a negyed bit időt, és kvázi nem képes utána több bitet érdemben pontosan mintavételezni. Csakhogy addigra már nem is kell neki, mert addigra már a stop bitet találja ott, és a vételi állapotgép újra a start bit szinkront várja, ami majd megint helyrebillenti az időzítést. És az megy minden egyes byte időben újra meg újra.

Sőt, mindaz nem csak vételnél, de adásnál is, azért nem érheti el a hiba a negyed bit időt sem az utolsó bitnyi időzítésben sem, mert az a hiba duplán jelenik majd meg: az adó is meg a vevő is tévesztenek.

Némelyik pic adatlapon a soros port szekcióban találsz táblázatot olyan érték számításokkal, mint % hiba bit időnként. Na az úgy értendő, hogy start + 8 adat bit, az összesen 9 (hiba *9), és mindazt duplán számold, mert adó és vevő is tévesztenek (hiba *18). Valójában a stop bit már nem fog sokat zavarni, elég csak az utolsó értékes bitig számolni (hiba *16), de ugye ráhagyásnak az a biztos, ha maradsz a nagyobb számoknál (hiba *18). Ha a hiba úgy végül el tudta érni az 50%-ot, akkor a bitközépidő mintavételezésed már átcsúszott a végén bit középről a következő bit határára, és a soros portod nem lesz képes hibamentesen kommunikálni.

Oké, ez nem lett éppen rövid, de remélem, a lényeget sikerült leírnom.
A hozzászólás módosítva: Máj 5, 2016
(#) Hp41C válasza nedudgi hozzászólására (») Máj 6, 2016 /
 
A soros átvitelnél nem a szinkronizáció szokott lenni a baj, hanem a "gyári" függvények. Ugyanis ezek a függvények megvárják (100 % cpu idő elkötésével) a karakter érkezését vagy elküldését.
Sokkab jobb megoldás, ha egy-egy körforgó buffert hozink létre az adáshoz és a vételhez is, melyek mérete meghaladja az táküldeni kívált táviratok hosszát. A vevő megszakítást kiszoplgáló rész csak kiolvassa a RXSTA regisztert, lekezeli a hibát, kiolvassa a RCREG -et és beírja a tárba, jelzi, hogy egyel több várakozó karakter van benne. Az adás megszkítás kiszolálója megnézi, hogy van-e még küldeni való adat. Ha van kivaszi a tárból és elküldi a TXREG -be, ha nincs letiltja a TX megszakítás kérést.
A többi a főprogram dolga. Így nincs akkora várakozás, hogy lekéssük a vételt.
(#) sonajkniz válasza pajti2 hozzászólására (») Máj 6, 2016 /
 
Szia!

Meg szeretném kérdezni, melyik adatkommunikációról van szó? Kezdő vagyok ezen a téren, de én úgy tudtam, hogy csak az 1-wire idő alapú.
Ráadásul, bár mindenki arra hívta fel a figyelmemet, hogy nagyon pontos időzítésekre van szükség, én egyáltalán nem ezt tapasztaltam. Sőt, számomra úgy tűnik, hogy az 1-wire bitenként szinkronizál.
Ez volt az első rutinom, amivel a DS1821-es hőszenzort kezeltem:
  1. INIT_DS
  2.     VONAL_H                
  3.     VONAL_L
  4.     WAIT_10US   D'50'
  5.     VONAL_H
  6.     WAIT_10US   D'10'
  7.     BTFSC   ADATBIT
  8.     BSF     HIBA
  9.     WAIT_10US   D'40'
  10.     BTFSS   ADATBIT
  11.     BSF     HIBA    
  12.     RETURN  
  13. OUTBYTE
  14.     MOVLW   8
  15.     MOVWF   CIKLUS
  16. OUTBYTE_1
  17.     RRF     O_BYTE
  18.     BTFSC   STATUS,C
  19.     GOTO    OUT_1
  20.     VONAL_L
  21.     WAIT_10US   6
  22.     VONAL_H
  23.     NOP
  24.     NOP
  25.     DECFSZ  CIKLUS
  26.     GOTO    OUTBYTE_1
  27.     RETURN
  28. OUT_1
  29.     VONAL_L
  30.     NOP
  31.     NOP
  32.     VONAL_H
  33.     WAIT_10US   6
  34.     DECFSZ  CIKLUS
  35.     GOTO    OUTBYTE_1
  36.     RETURN
  37. INBYTE
  38.     MOVLW   8
  39.     MOVWF   CIKLUS
  40. INBYTE_1    
  41.     VONAL_L
  42.     NOP
  43.     NOP
  44.     VONAL_H
  45.     NOP
  46.     NOP
  47.     NOP
  48.     NOP
  49.     NOP
  50.     NOP
  51.     BCF     STATUS,C
  52.     BTFSC   ADATBIT
  53.     BSF     STATUS,C
  54.     RRF    I_BYTE
  55.     WAIT_10US   6
  56.     DECFSZ  CIKLUS
  57.     GOTO    INBYTE_1
  58.     RETURN

Kísérletképpen elállítgattam az időzítéseket. Ráadásul még csak nem is szinkronban, hanem eléggé össze-vissza. Itt látható.
  1. INIT_DS
  2.     VONAL_H                
  3.     VONAL_L
  4.     WAIT_10US   D'85'
  5.     VONAL_H
  6.     WAIT_10US   D'10'
  7.     BTFSC   ADATBIT
  8.     BSF     HIBA
  9.     WAIT_10US   D'60'
  10.     BTFSS   ADATBIT
  11.     BSF     HIBA    
  12.     RETURN  
  13. OUTBYTE
  14.     MOVLW   8
  15.     MOVWF   CIKLUS
  16. OUTBYTE_1
  17.     RRF     O_BYTE
  18.     BTFSC   STATUS,C
  19.     GOTO    OUT_1
  20.     VONAL_L
  21.     WAIT_10US   9
  22.     VONAL_H
  23.     NOP
  24.     NOP
  25.     NOP
  26.     NOP
  27.     NOP
  28.     NOP
  29.     DECFSZ  CIKLUS
  30.     GOTO    OUTBYTE_1
  31.     RETURN
  32. OUT_1
  33.     VONAL_L
  34.     VONAL_H
  35.     WAIT_10US   6
  36.     DECFSZ  CIKLUS
  37.     GOTO    OUTBYTE_1
  38.     RETURN
  39. INBYTE
  40.     MOVLW   8
  41.     MOVWF   CIKLUS
  42. INBYTE_1    
  43.     VONAL_L
  44.     NOP
  45.     NOP
  46.     VONAL_H
  47.     NOP
  48.     NOP
  49.     NOP
  50.     NOP
  51.     NOP
  52.     NOP
  53.     NOP
  54.     NOP
  55.     NOP
  56.     NOP
  57.     NOP
  58.     NOP
  59.     BCF     STATUS,C
  60.     BTFSC   ADATBIT
  61.     BSF     STATUS,C
  62.     RRF    I_BYTE
  63.     WAIT_10US   8
  64.     DECFSZ  CIKLUS
  65.     GOTO    INBYTE_1
  66.     RETURN

Zökkenőmentesen működött tovább. Pedig némely időzítést több mint 50%-al állítottam el.
De mint írtam, kezdő vagyok ezen a téren, és a csapdák elkerülése végett szeretném tudni, melyek még az idő alapú kommunikációk.
Köszönöm.
(#) icserny válasza sonajkniz hozzászólására (») Máj 6, 2016 /
 
Az aszinkron soros kommunikáció (UART) is időalapú. Bár half-duplex módban az is 1-wire...
(#) sonajkniz válasza icserny hozzászólására (») Máj 6, 2016 /
 
Ez hány vezetékes kommunikáció, és PIC-ek esetében hol használatos?
Következő: »»   786 / 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