Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1092 / 1319
(#) Norberto válasza cassis hozzászólására (») Szept 2, 2012 /
 
Egyébként, ha szabad érdeklődni, milyen MODBUS eszközt élesztesz majd a PIC segítségével? Slave-et vagy Master-t? Vagy csak egyszerű próbálkozás egyelőre?
(#) _vl_ válasza cassis hozzászólására (») Szept 2, 2012 /
 
Ezt bármelyik PIC tudja. A paritást lehet, hogy kézzel kell számolnod (és 9. bitként küldeni/fogadni), ha nem "okos" modellt választasz.
Én a 75LBC176/184-et szeretem (a sima 176 buta, a Maxim cuccai meg aránytalanul drágák), de nyilván ízlések és pofonok.
(#) Hp41C válasza cassis hozzászólására (») Szept 2, 2012 / 1
 
Szia!

Do sokszor linkeltem már be: http://www.piclist.com/techref/microchip/math/bit/parity.htm

  1. swapf    X, w    ; John's idea: reducing byte to nibble
  2.          xorwf    X, w
  3.          addlw    41H    ; bit 1 becomes B0^B1 and bit 7 becomes B6^B7
  4.          iorlw    7CH    ; for carry propagation from bit 1 to bit 7
  5.          addlw    2    ; Done! the parity bit is bit 7 of W
  6.          andlw    80H    ; set NZ if odd parity, and leave 00 or 80 in W
  7.          return

  1. #define PARITY(b) ((((((b)^(((b)<<4)|((b)>>4))) + 0x41) | 0x7C ) +2 ) & 0x80)


(#) cassis válasza _vl_ hozzászólására (») Szept 2, 2012 /
 
Ez egy Slave eszköz lenne a ModBus on. Egyenlőre próbálkozás, de ha összejön egy nagyobb projekt része lenne. Sajnos tesztelni nem tudom, csak doksiból tudok dolgozni, és beépítés után derül ki működik -e? --nincs ModeBus a közelemben--

Már használtam USART ot PIC 18 on, igaz No Paritas sal, de szerintem be lehet állítani Odd/Even -t is a uP -on, és akkor nem kell számolnom, de ennek utánnézek. Egy doksiból olvasom, hogy az RTU módban alap az Even paritas, de majd elkérem a mester paramétereit.
Idézet:
„Én a 75LBC176/184-et szeretem (a sima 176 buta, a Maxim cuccai meg aránytalanul drágák), de nyilván ízlések és pofonok.”

Ezt is meg kell néznem, egyenlőre nem tudom miért nevezed "butának" a 176 ot.
A hozzászólás módosítva: Szept 2, 2012
(#) Hp41C válasza cassis hozzászólására (») Szept 2, 2012 /
 
Szia!
Teszteléshez használhatod a ModScan nevű programot. Sajnos a 18F -eken nincs hardver paritás lehetőség, csak programozott. Az előbb linkeltem be egy paritásképzó rutint...
A hozzászólás módosítva: Szept 2, 2012
(#) cassis válasza Hp41C hozzászólására (») Szept 2, 2012 /
 
hát akkor az én ModBus os CRC rutinom ennyi lett:

  1. CRC_Init:
  2.         movlw   0xFF
  3.         movwf   CRC_H
  4.         movwf   CRC_L
  5.  
  6.  
  7. CRC_char:
  8.         movlw   d'8'                                    ;8X fusson le
  9.         movwf   CRC_num
  10.         movf    CRC_byte,w,access               ; CRC_byte reg. ben legyen az átadott érték
  11.         xorwf   CRC_L,f,access
  12. CRC_char_2
  13.         bcf     STATUS,C,access
  14.         rrcf    CRC_H,f,access 
  15.         rrcf    CRC_L,f,access
  16.         bnc     CRC_char_1              ;ugrik, ha carry = 0
  17.         movlw   0xA0                    ; ha C=1, akkor XOR  0xA001 el
  18.         xorwf   CRC_H,f,access
  19.         movlw   0x01
  20.         xorwf   CRC_L,f,access
  21. CRC_char_1:
  22.         decfsz  CRC_num,f,access                         
  23.         bra     CRC_char_2
  24.         return



A ModScan -t megnézem, remélem használható lesz.

A hozzászólás módosítva: Szept 2, 2012
(#) Hp41C válasza cassis hozzászólására (») Szept 2, 2012 / 1
 
Félreértettél: Nem a táviratokban levő CRC16 képzésébez, ellenőrzéséhez való rutinról írtam, hanem az UART -tal küldendő, fogadandó (8 adatbit + parity) kezeléséhez. A PIC18F (E)UART -jában van lehetőség 9 bites üzemmódra: Vett karakter esetén a RCSTA kiolvasásával megkapható az Rx9D (az RXSTA -t kell előbb kiolvasni, és csak egyszer szabad kiolvasni, aztán az RCREG -et. Az RCREG olvasása lépteti a vételi fifo -t.). Adáskor a TXSTA -ba előbb be kell állítani a Tx9D bitet, aztán írni a TXREG -et.
(#) cassis válasza Hp41C hozzászólására (») Szept 2, 2012 /
 
Jaj értettem, csak gyorsabban járt a kezem mint az agyam...
De már nem akartam kitörölni.
Egyébként köszi!
(#) Hp41C hozzászólása Szept 5, 2012 / 2
 
Sziasztok!
Azoknak, akik még az MpLab 8 -at használják: Megjelent a 8.87 és előjött a 8.86 egyik hibája.
8 bit compilers disappear when moving from MPLAB 8.86.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nod...007002
A hozzászólás módosítva: Szept 5, 2012
(#) Attila86 hozzászólása Szept 5, 2012 /
 
Nemrég többen furcsállottátok hogy 2x16-os LCD kijelzőből adatot akarok kiolvasni nem pedig írni rá. Nos igenis van értelme, most készültem el vele:
Bővebben: Youtube
A hozzászólás módosítva: Szept 5, 2012
(#) potyo válasza Attila86 hozzászólására (») Szept 5, 2012 /
 
Azért ez eléggé ritka igény, azt ismerd el
(#) trudnai válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Mit tarolsz amugy az LCD kijelzon? Vagy miert kell onnan olvasni? (nem kotozkodeskeppen, csak tenyleg kivancsi vagyok ra)

UI: Amugy ugyes, hogy LCD es LED kijelzo modulokat lehet csere-berelni es akarmelyikkel mukodik!
A hozzászólás módosítva: Szept 6, 2012
(#) Attila86 válasza trudnai hozzászólására (») Szept 6, 2012 /
 
Idézet:
„Mit tarolsz amugy az LCD kijelzon? Vagy miert kell onnan olvasni?”

Hát a tesztkaraktert! Bekapcsolás után kiküldök egy karaktert aztán azt próbálom visszaolvasni. Ha LCD van rákötve a PIC-re akkor a visszaolvasott karakter egyezik. Ha LED akkor pedig nem. Innen tudja a PIC hogy milyen kijelző van rákötve és aszerint működik tovább.
(#) trudnai válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Otletes!
(#) Attila86 hozzászólása Szept 6, 2012 /
 
Csináltatok már olyat hogy az A/D hardveres felbontását szoftveresen megnövelitek? Én most a 12 bites PIC18F25K80 A/D-ját tettem 13 bitessé hogy a panelmérőm ne 4000-ig mérjen hanem 8000-ig. Jelenleg 320db mintát vesz a jelből amelyből a 32db legkisebbet és a 32db legnagyobbat eldobja, majd a maradék 256-ot kerekíti és átlagolja. Az átlagolásnál csak annyi van hogy nem 256-al osztom a 256 mintát hanem csak 128-al és máris kétszer akkora a méréshatár. Épp most tesztelem, a PIC-es panelmérő II szoftverét tuningoltam fel ezzel az új mintavételi algoritmussal. Egyenlőre ahogy nézem teljesen jól működik a dolog. Az utolsó digit nem ugrál, vagy ha ugrál is akkor az az eredeti algoritmus és külső műszer szerint is ugrál két érték közt. Szóval úgy néz ki hogy teljesen rendben van.

De kicsit furcsa hogy így megerőszakoltam a PIC-et. Csinált már valaki hasonlót? Ha igen, nem tapasztalt esetleg valamilyen anomáliát?
(#) _vl_ válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Ez klasszikus oversampling, és ilyen paramétereknél (x256 minta, +1 bit) ennek stabilan működnie kell. Ha jól emlékszem, akkor +1 bitenként x4 minta kell minimum. Szerintem ennyi mintánál még a +2 bitnek is stabilan kéne mennie.
(#) icserny válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Igen, csináltak:

Microchip: AN1152 alkalmazási mintapélda

ATMEL: AVR121 alkalmazási mintapélda
(#) Attila86 válasza icserny hozzászólására (») Szept 6, 2012 /
 
Hűűűha... most úgy érzem magam mint amikor kb egy hete barátkoztam a PIC-ekkel és büszkén dicsekedtem itt nektek hogy írtam egy programot ami átalakít egy két bájtos számot négy decimálissá. Úgy látszik most sem találtam fel a spanyol viaszt.
(#) Attila86 válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Készítettem róla egy videót is:
Youtube
(#) helektro válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Nekem is van több készülékem, ami évek óta így dolgozik.
Én is dupláztam a PIC-es AD felbontását és teljesen jól működő dolog, szóval nyugodtan használhatod.
(#) Attila86 hozzászólása Szept 6, 2012 /
 
Szeretnék a memóriában lefoglalni 768 bájtot. Hogyan lehet ezt megtenni?
Így nem sikerül:
  1. csoport3        UDATA 0x300
  2.         minta_tábla                            res .768
(#) Attila86 válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Nem túl elegáns, de így sikerült megoldanom:
  1. csoport3        UDATA 0x300
  2.         minta_tábla                            res .256
  3. csoport3_2      UDATA 0x400
  4.         minta_tábla_2                  res .256
  5. csoport3_3      UDATA 0x500
  6.         minta_tábla_3                  res .256
A hozzászólás módosítva: Szept 6, 2012
(#) trudnai válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Na igen, ahhoz, hogy az ember ujat talaljon ki nagyon benne kell legyen a dolgokban es szerencse is kell hozza, hogy epp az adott temaval foglalkozz es ratalalj. Gondolj bele hany profi mernok van vilagszerte es hany hobbista... Az alacsonyan logo furtoket mar mind leszureteltek elotted...

Ami jo az internetben, hogy ha valamit meg szeretnel csinalni (es tudod, hogy pontosan mit), akkor arra rakeresel es nagy a valoszinuesege, hogy azt valaki mar megcsinalta elotted, tehat neked csak ki kell olloznod, vagy a leiras alapjan le kell programoznod.
(#) p_istvan válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Szervusz!
Már 1946-ban is alkalmazták az elvet: http://www.feltalaloink.hu/tudosok/bayzoltan/html/bayzoltal2.htm
Ha a felbontást akarod növelni és nem zavarszűrés a cél, akkor minden mintát fel kell dolgozni és nem szabad kihagyni belőle semit sem (némi "zavarjel" szükséges is a megfelelő működéshez). PIC-kel pár ezres mintavétellel elérhető akár 4-5 bites felbontásnövekedés is, de a linearitáshibán nem lehet így javítani, erre gondolni kell a mérési eredmény kiértékelésekor.
A hozzászólás módosítva: Szept 6, 2012
(#) watt válasza Attila86 hozzászólására (») Szept 6, 2012 / 1
 
A linker scriptet kell átírni, kialakítani egy tartományt és az udata után hivatkozni kell rá a nevével.
pl:
  1. DATABANK   NAME=b512      START=0x600    END=0x7FF  PROTECTED
  2. SECTION NAME=BUF512 RAM=b512


Használata:
  1. #pragma udata BUF512
  2.         unsigned char SD_Buffer_512[512];

Ez csak 512-es, de értelemszerűen növelhető, ha van elég memória a PIC-ben.
Az eredeti fájlt másold, módosítsd, nevezd át és erre hivatkozzál a fordítási beállításokban.
A módosított eredeti területekre vonatkozó sorokat kommentezd ki.
A hozzászólás módosítva: Szept 6, 2012
(#) zolee1209 válasza Attila86 hozzászólására (») Szept 6, 2012 /
 
Én nemrég kezdtem a témával foglalkozni, saját mérő kapcsán a készülő tápegységembe. Az AVR 10 bites mérőjét húztam fel 16 bitre. Kellően gyors még, de pontatlan, nincs még linearizálva a mérés. Csodálkoztam is kissé, miért nem foglalkoztál még a témával...
(#) icserny válasza zolee1209 hozzászólására (») Szept 6, 2012 /
 
Én inkább azon csodálkozom, hogy Attila miért nem figyelt még fel a PIC18F87J72 típusra, amelyet kifejezetten a nagypontosságú mérésekhez fejlesztettek ki.
(#) pjg válasza icserny hozzászólására (») Szept 6, 2012 /
 
Nagyon jó IC, nagyon jó áron.
Csak az a 80 TQFP 12x12x1mm..... Ááááá!
(#) Attila86 válasza icserny hozzászólására (») Szept 6, 2012 /
 
Ez izgalmas! Csak tudnám mi az az AFE. De ahogy látom valami teljesítmény-mérő izé. Miért jó ez nekem ha egy sima A/D-vel is tudok feszültséget és áramot mérni, majd ezeket összeszorozni? Mert ahogy nézem ennek a PIC-nek az A/D-ja nem sokban tér el az általam jelenleg használtétól (18F25K80). A plusz akkor gondolom ez az AFE modul de ez nem tudom mire lenne jó. A TQFP nem is lenne annyira probléma.
(#) trudnai válasza pjg hozzászólására (») Szept 7, 2012 /
 
Idézet:
„Nagyon jó IC, nagyon jó áron.
Csak az a 80 TQFP 12x12x1mm..... Ááááá!”


Ha nincs lehetoseged laser printerrel nyakot rajzolni, akkor vehetsz akar ilyen foglalatokat is -- forrasztas meg nem annyira bonyas, mint amennyire tunik meg akkor sem, ha nincs SMD pakad -- harisnyaval eleg gyorsan szep munkat lehet vegezni, de nezz korul a reszletekert az SMD forrasztas topikban...

http://www.futurlec.com/SMD_Adapters.shtml
Következő: »»   1092 / 1319
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