Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   568 / 1318
(#) watt válasza belganarancs hozzászólására (») Szept 7, 2009 /
 
(Van egy PICKit2 topic!)
A Vdd-t akkor, ha be akarod kapcsolni a Vdd-t a csatlakoztatott céláramkörön.
A MCLR-t akkor, ha reset állapotba akarod hozni a csatlakoztattott céláramkört.
(#) watt válasza jenebala hozzászólására (») Szept 7, 2009 /
 
Miből gondolod, hogy ez PIC kérdés?
(#) icserny válasza watt hozzászólására (») Szept 7, 2009 /
 
Lásd itt!
(#) watt válasza icserny hozzászólására (») Szept 7, 2009 /
 
A pokolba vezető út is jószándékkal van kikövezve.
(#) szilva válasza watt hozzászólására (») Szept 7, 2009 /
 
5V-os motorvezérlőről volt szó (aminek a típusa számomra egyelőre ismeretlen), és csak azért javasoltam a HCT illesztést, mert elképzelhető, hogy a motorvezérlőnek nem elég a 3.3V-os kimenet. Legalábbis azt gondolom, ha elég lenne, akkor nem keresne gulasoft kollega illesztést közéjük... Ettől persze könnyen meglehet, hogy Neked van igazad, és nem is kell oda semmiféle illesztés, ahogy a MAX232-nél sem kell.

A MAX-nak egyébként szerintem egyedül az volt a baja, hogy nem 5V-os tápfeszről próbálta, és 3.3V-ról el sem indult a feszültséggenerátora, ezért TTL->RS232 irányba nem ment. A vételhez nincs szüksége erre, ott egy egyszerű, 1.4V körül billenő bemenet van, ami a digitális irányra illeszt, egyedül az a különleges benne, hogy elviseli a +/-25V-ot, amit az RS232 szabvány enged.
(#) szilva válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
Ha még a MAX előtt, a digitális TX és RX lábait kötöd "visszahurokba" a PIC-nek, akkor is fennáll a hiba?
(#) watt válasza szilva hozzászólására (») Szept 7, 2009 /
 
Én már nem tudom és nem is akarom követni mit, mivel és főleg miért akar illeszteni!
A MAX-al kapcsolatosan én is ugyenerre a következtetésre jutottam, de neki hiába írtam volna le.
(#) gulasoft válasza szilva hozzászólására (») Szept 7, 2009 /
 
Ezt a részét nem tudom, mert akkor meg nincs konzol ahol látnám az eredményt. Viszont valami csak a kóddal lesz, mert az eredeti explorer16-oson a Di Jasio cd-ről betöltött program is ugyan azt csinálja.
Ha a max3232 rx tx lábjait összerakom, akkor ami megy az jön vissza, tehát az álatalam készített 3.3V-os panel is jó, meg a soros kábel, de most kipróbálom egy usbs-s soros kábellel hátha mégis ott van a gubanc.
Jó lenne egy működő C-s uart progi ami semmi mást nem csinál csak amit kap azt visszaküldi.
Ha van egy ilyened pic24-hez, azt örömmel fogadnám, de ha nincs az sem gond keresek a neten.
A max232 valóban azért nem ment, mert nem 5V-ot kapott, azt kipróbáltam 5V-al és jó lett.
Illesztést a pic és a motorvezérlő közé azért keresek, mert semmiképpen nem akarom megsütni a pic-emet.
A motorvezérlő kap 12V-ot, meg stabil 5-öt. (Igazából egy elég összetett panel valami laborelektronikából nyerték ki, van rajta pwm generátor, hőmérő meg még a fene tudja mi, + egy motorvezérlő, és egy stabil 5V-ot előállító áramkör.)
Én igazából csak ezt használom az egészből, 2 óra alatt kimértem mi hova megy egy 20 pólusú tüskesoron, elvágtam a földre húzott mikrostep1-es lábat (kétoldalas panel, kénytelen voltam kireszelni, mert kiforrasztani lehetetlen ilyenekből egy 18 lábú csipet.) Eddig egy 18f452-vel hajtottam, az 5V-os az elektronika szintén, muszáj 0-rá és 1-be húzni a lábakat mert különben bizonytalan a működése. Nagyon nem szeretném ha a pic felé akárhol 5V jönne, még ha el is viseli, ezeket azért le szokták választani a motoroktól, és ugyan itt van közte egy motorvezérlő, de nagyon nehezen tudtam a 80 lábút beforrasztani, az általad adott ic meg 35Ft volt, nekem ennyit megér, hogy a 3.3 a pic oldalán 3.3 maradjon, szóval inkább csak watt szerint fölösleges elővigyázatosság miatt szeretném a 3.3V-ot és az 5V-ot elválasztani.
(#) belganarancs válasza watt hozzászólására (») Szept 7, 2009 /
 
Köszi!
(#) szilva válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
Nincs PIC24-es mintám, de a leírt jelenségből én arra következtetnék, hogy a vételi és adási formátum vagy sebesség nem egyezik meg. Nem tudom, lehet-e ilyen eltérést beállítani a PIC24-en, de első körben errefelé keresném a hibát. A másik, ami hibalehetőség, hogy vagy nem üríted időben a vételi puffert, és egy következő bejövő karakter megrongálja azt, vagy a kimeneti oldalon történik hasonló, túl hamar írnál a kimeneti regiszterbe, amikor még nem ment ki minden onnan.
(#) gulasoft válasza szilva hozzászólására (») Szept 7, 2009 /
 
A gyorsaság lehetne hiba, ha nem csak egy egy karaktért szeretnék küldeni.
A sebesség gond meg akkor lenne tuti, ha y-ra sem y-t kapnák, de a-ra mindig y-t kapok vissza, s-re s-jön, de d-re meg r. Az irány konzol küld egy karaktert a pic-nek az visszaküldi, és konzol megjeleníti. Szerencsére a Di Jasio féle az debugolható, ha nem jutok vele dűlőre, akkor keresek a neten valami példát, csak hát ugya azt senki nem garantálja, hogy az működik.
(#) potyo válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
Idézet:
„akkor keresek a neten valami példát, csak hát ugya azt senki nem garantálja, hogy az működik.”


És miért nem veszed elő az adatlapot?
(#) watt válasza potyo hozzászólására (») Szept 7, 2009 /
 
Mert nincs rá ideje! (idézhetném is, de nincs kedvem keresgélni). De arra van, hogy hiábavaló nyüszkölését leírja és szépen lassan mindenkit megbolondítson, mert írni tud, olvasni nem, és hallgatni sem hallgat a javaslatokra. Nekem már fizikai fájdalmat okoz amiket összehord. Tudom ne olvasam, én vagyok a bolond!
(#) gulasoft válasza potyo hozzászólására (») Szept 7, 2009 /
 
Előveszem én azt, csak nem biztos hogy mindent megértek belőle. A Di Jasio könyv pont azzal a boardal dolgozik ami nekem most itt van. Van hozzá soros példa is, most ha egy ilyen ember ír egy programot és az nem megy, akkor Én az adatlapból hámozzam ki, hogy miért is nem, és ültessem azt át C-be? Hát ez az ami meghaladja a tudásom.
Nagyon örülök, hogy vannak olyan emberek, akik mondjuk kapásból tudják a 190 oldalas adatlapból mit hol kell keresni, és Én is megtaláltam a microchip oldalán olyan doksit ahol az uart-ról ír, de az is olyan tömény vaskos angol szakirodalom, hogy azért ahhoz nagyon a toppon kell lenni angolból, hogy azt 1-2 hét alatt átrágja az ember.
Ezt az egy két hetet szeretném megspórolni azzal, hogy ha tud valaki rá választ akkor segítsen!
Azt hogy adatlap Én is tudom mondani minden kérdésre!
Ha nem tudod a választ, akkor ne válaszolj! Senki nem mondta, hogy watt, vagy potyó nézz ennek utána helyettem.
Mind a ketten számos soros portos dolgot csináltatok (gondolom abból ahogy lenézitek azt akinek ez az első), ha ennek ellenére nem tudtok magyarázatot, arra hogy y-ra miért jön y vissza, a-ra miért jön y vissza, s-re miért jön s, és d-re miért jön r, akkor nem kell válaszolni. Nézzétek meg szilva hozzászólásait, egyszer nem mondja, hogy nézd az adatlapot, hanem konkrét javaslatokat tesz, ettől még persze nézni kell az adatlapot.
Egyébként lövésem sincs arról hogy a fenti hiba okát az adatlapon megtalálnám e, sőt még arról sem, hol keressem. Ha sebesség gond lenne, akkor y-ra nem y jönne, ezt ki is próbáltam direkt elállítottam a sebességet.
Amit szilva írt azt ki tudom próbálni debuggal, amit Ti írtatok azt nem tudom felhasználni.
Tudom adatlapot kell nézni, és tudom watt bátran rányomja a 80 lábú vérrel verítékkel beforrasztott pic-ét egy 5V-os eszközre, szerinte felesleges. Ez egy vélemény. Van egy ismerősöm aki szerint akár optocsatolóval kéne csinálni, hogy a zavarok ne tudjanak visszajönni semmiképp, mert ő már csinált profi gépeket és látott motortól visszajövő zavar miatt kiresetelő pic-et, ez egy másik vélemény. A fém italos (sörös doboz) visszaváltó automatikát pl. ez az ismerős csinálta, tehát nem kutyaütő. (elektronikától a mechanikáig, programozást szóval az egészet)

Az hogy Én a biztonságosabbat óhajtom megcsinálni és ez wattot idegesíti azt egyszerűen nem is értem, de eddig lenyeltem a beszólásait, azt hogy valaki tőlem kérdez, és arra is beszól, de kezd ebből nagyon elegem lenni.
Ha idegesít azok kérdése akik nem vérprofik, vagy nem a Te általad javasolt megoldást választják akkor minek válaszolsz?
Ha tudok én segítek, ha más megoldást választ valaki, akkor az az ő dolga.
Persze megértelek valamilyen szinten, hiszen neked ez így ment, miért nem csinálom úgy és punktum, de Te is értsd meg végre, hogy Én meg két véleményt kaptam, inkább a biztonságosra megyek.
Mennem kell meló van, próbálj kicsit türelmesebb lenni.
(#) trudnai válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
En teljesen elveszitettem mar a fonalat hol a problema es mirol is beszelunk, de egy megjegyzest ha megengedsz -- es ezt tenyleg segito szandekkal osztanam meg Veled!

Az adatlap a PIC-ek (es mas elektronikai alkatreszek) bibliaja. Lehet, hogy elsore 1-2 het atragni magad rajta, sot az is lehet (biztos) hogy ha Angol az anyanyelved is lennenek vele megertesi problemak -- tudom, mert olvasok Angol nyelvu forumokat, level;ezesi listakat es latom miken akadnak el Angol ill. Amerikai emberkek.

Azonban ha mar megertetted, hogy milyen az adatlap szerkezete, hogy mlyen terminusokat hasznalnak, hogy milyen parametert hol kell keresni es hogyan kell ertelmezni, akkor mar a tobbi adatlap olvasasa sokkal egyszerubb lesz. Nekem sem ment elsore, rengeteg hibat kovettem el... es nagyon sokmindent nem ertettem meg, de ma mar az adatlap olvasasa csupan nehany percet vesz igenybe, hisz anno bele fektettem a faradsagot, hogy megertsem.

Hiaba az a uti konyv amit emlegetsz, hiaba a HE vagy mas forum, hiaba a szuper fej PIC-es baratod, ha az adatlapot nem tudod olvasn akkor sajnos mindig is rengeteg problemad lesz.

Az, hogy C vagy Assembly nyelven keszul valami pedig teljesseggel mindegynek tekintheto. Attol meg a PIC felepiteset meg kell erteni -- meg akkor is ha C-ben talalsz egy send_usart funkciot vagy mas printf-es megoldast usart kommunikaciora, ertened kell mi tortenik a hatterben kulonben ha barmi hiba adodik csak sotetben fogsz tapogatozni mi lehet a problema.

Remelem tenyleg erezni fogod, hogy segitokesz szandekkal irtam le mindezt, es raszanod azt a ket hetet, hogy utana Beloled is a baratodhoz hasonlo profi lehessen.
(#) gulasoft válasza trudnai hozzászólására (») Szept 7, 2009 /
 
Ebben igazad van, és tudom hogy olvasni kéne az adatlapot, de pl. erre a hibára, nem hiszem hogy találnék benne bármit is. De persze lehet. Azért azt add hozzá, hogy azt is mondtam, hogy perfekt angollal 2 hét. Nem ez az első adatlap amit nézegettem, de gondolj utána, ahhoz hogy elinduljon a 190. oldalon volt leírva, hogyan kell kialakítani a tápot, és ez persze itt ennél speciális, hiszen a 18-as sorozatnál nem volt ilyen gond. Ez az amire azt mondtam, ha valaki tudja a választ, mert már beleütközött ebbe, akkor segítsen. Azért vesztetted el a fonalat, mert az eredeti kérdést egyszer tettem fel. Pont ezért. Ha valaki tudja mi lehet gond segítsen, ha nem tudja, akkor ez van, marad a kísérletezés, és az adatalap. De hogy az legyen a válasz mindenre, hogy adatlap (és semmi más) az nem segítség. Azt Én is tudom mondani bármire, és persze van is benne igazság. Csak akkor minek a fórum? Cseréjük le a PIC miértek és hogyanok fórumot, mutasson a microchip datasheet oldalára. Legalábbis watt és potyó mostani hozzászólásai leginkább erre mutatnak.
És mondom van benne igazság.
(#) icserny válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
Nem vagyunk gondolatolvasók! Ha tényleg segítséget vársz, akkor az a minimum, hogy becsatolsz egy lecsupaszított (minden fölösleges sallangoktól mentes) programkódot, ami pl. az Explorer16 kártyán alkalmas a hibajelenség reprodukálására.

Az adatsebesség "jósága" nem bináris, tehát az 'y' átvitele nem bizonyítja, hogy adatsebesség-eltérésből nem fakadhat a más karaktereknél észlelt kódtévesztés.

Hasonló esetben én a PICkit2-t logikai analizátorként használva (mivel oszcilloszkóp nem volt kéznél) mértem meg az adatsebességet, és hangoltam utána az oszcillátort, mert jelentős eltérést észleltem.

Érdemes lehet alacsonyabb sebességen is ellenőrizni az átvitelt.
(#) gulasoft válasza icserny hozzászólására (») Szept 7, 2009 /
 
Nem hiszem, hogy sebességgond lenne, mert kikuldok a pic felől a terminálra egy HELLO>-t (karakterenként) és az megjön.
Ami furcsa, hogy amikor beküldenék egy A betűt, akkor az U2RXREG-ban 0x0000 van, míg a változóban amibe előtte betöltöm 0x40, de ez lehet a debugnak a problémája, mindenesetre a 0x0x41 helyett 0x0040 van benne, és ez csak véletlen összecsengés, mert D esetén is 0x0040 és K esetén 0x0042, tehát az hogy egyel kevesebb az nem igaz.
Berakom a kódot meg rakok egy képet a watch ablakról amin látszik a terminálra kiküldött hello is.
Adatlapon ugye azt írja, hogy U2RXREG aló 8 bitje az adat a felső nem használt.

  1. /*
  2. ** COMM2
  3. ** UART2 RS232 asynchronous communication demonstration code
  4. */
  5.  
  6. #include <p24fj128ga010.h>
  7.  
  8. // I/O definitions for the Explorer16
  9. #define CTS     _RF12                   // Cleart To Send, input, HW handshake
  10. #define RTS     _RF13               // Request To Send, output, HW handshake
  11. #define TRTS    TRISFbits.TRISF13   // tris control for RTS pin
  12.  
  13. // timing and baud rate calculations
  14. #define BRATE   34          // 115200 baud (BREGH=1)
  15. #define U_ENABLE 0x8008         // enable the UART peripheral (BREGH=1)
  16. #define U_TX     0x0400         // enable transmission
  17.  
  18.  
  19. // initialize the UART2 serial port
  20. void initU2( void)
  21. {
  22.         U2BRG   = BRATE;    
  23.         U2MODE  = U_ENABLE;
  24.         U2STA   = U_TX;
  25.         TRTS    = 0;        // make RTS output
  26.         RTS     = 1;        // set RTS default status
  27. } // initU2
  28.  
  29.  
  30. // send a character to the UART2 serial port
  31. char putU2( char c)
  32. {
  33.         while ( CTS);                   // wait for !CTS, clear to send
  34.         while ( U2STAbits.UTXBF);   // wait while Tx buffer full
  35.         U2TXREG = c;
  36.         return c;
  37. } // putU2
  38.  
  39.  
  40. // wait for a new character to arrive to the UART2 serial port
  41. char getU2( void)
  42. {      
  43.         char rxreg;
  44.         rxreg=0;
  45.        
  46.     RTS = 0;            // assert Request To Send !RTS
  47.         while ( !U2STAbits.URXDA);      // wait for a new character to arrive
  48.         rxreg=U2RXREG;
  49.         RTS = 1;
  50.         return rxreg;           // read the character from the receive buffer
  51. }// getU2
  52.  
  53.  
  54. main()
  55. {
  56.     char c;
  57.    
  58.         // 1. init the UART2 serial port
  59.         initU2();
  60.        
  61.     // 2. prompt
  62.     putU2( 'H');
  63.         putU2( 'E');
  64.         putU2( 'L');
  65.         putU2( 'L');
  66.         putU2( 'O');
  67.         putU2( '>');
  68.  
  69.         // 3. main loop
  70.         while ( 1)
  71.         {
  72.        
  73.                 // 3.1 wait for a character
  74.                 c = getU2();
  75.  
  76.                 // 3.2 echo the character
  77.                 putU2( c);
  78.                                
  79.         } // main loop
  80.        
  81. }// main



Remélem nem túl hosszú a kód.

kep1.png
    
(#) jdani hozzászólása Szept 7, 2009 /
 
üdv. PIC16F628A helyett csak PIC16F628-at kapok. Vehetek belőle több menyiséget is akár? nem lesz gond a későiekben hogy nincs az A betű a végén? vagy az függ, hogy milyen kapcsolásban alkalmazom?
(#) potyo válasza jdani hozzászólására (») Szept 7, 2009 /
 
Függ, de jó eséllyel csak néhány konfigurációs bitet kell esetleg átállítani. Egyébként az A-s verzió az újabb, idővel az lesz elérhető, én nem vennék sokat az A nélküliből...
(#) icserny válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
Idézet:
„Nem hiszem, hogy sebességgond lenne.”

Nem hit kérdése. Mérd meg!

Ez a program így elég bizarr a konfigurációs bitek nélkül. Most akkor ki vagy mi állítja be a kívánt frekvenciát?

A kísérletezés fázisában nem 115 200 bauddal kellene kezdeni, hanem mondjuk 9600 bit/s-mal.

HyperTerminal hogy van konfigurálva? (sebesség, bitszám, paritás, stop bitek száma, adatáramlás-vezérlés)
(#) gulasoft válasza icserny hozzászólására (») Szept 7, 2009 /
 
A hyperterminál jól kell hogy legyen konfigurálva mert akkor a HELLO sem jött volna meg vagy tévedek?
Viszont a konfig biteket tényleg a projektben állítja a Di Jasio, és ugyan az egész projektet nyitottam meg ami hozta magával a config biteket is, de kódban is volt hiba amit észrevettem és javítottam, bár a weboldalon az errata-ban ők is javították.
115200,8,n,1 re van állítva a hyperterm és nincs vezérléssel is próbáltam, meg xon/xoff meg hardveressel is, változás nem volt, a jelenséget mind a 3 esetben produkálta.
Akkor most nekilátok és konfigbiteket beállítom és újraszámolom a brate-et.
(#) jenebala válasza watt hozzászólására (») Szept 7, 2009 /
 
Pc-s Dmx vezérlő forumból küldtek ide.
Amugy egyéb segitség? jó lenne...

köszi
(#) icserny válasza jenebala hozzászólására (») Szept 7, 2009 /
 
Idézet:
„Pc-s Dmx vezérlő forumból küldtek ide.”

Ez lényegtelen. Milyen PIC mikrovezérlőkre vonatkozó konkrét kérdésed van?

Idézet:
„Amugy egyéb segitség?”

Használd a keresőgombot! (K betűs ikon).
A csillag helyére írj DMX-et vagy AN1076-ot.
Bővebben: Lásd itt

Ha pedig mással akarod megcsináltatni, akkor kattints az Apróhirdetés menüpontra.
(#) icserny válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
Idézet:
„115200,8,n,1 re van állítva a hyperterm”

Ez jó.

Idézet:
„és nincs vezérléssel is próbáltam, meg xon/xoff meg hardveressel is”

Elvileg a hardveressel kellene, az RTS/CTS-re való tekintettel. Nekem viszont csak USB-s soros portom van, gőzöm nincs, mit kezd (vagy kezd-e) a vezérlőjelekkel.

Kipróbáltam az Exploreren, s az valóban jó jel, hogy a HELLO hibátlanul átmegy. A vételi irányban azonban nekem kapitális zöldségeket csinált

a -> '
b -> '
c -> b
...
Valahol, valami félre van konfigurálva/időzítve a programban a vétellel kapcsolatban. Mellesleg, ha már úgyis debuggolsz, a hibajelző biteket is figyelhetnéd!
A beállításokat a
PIC24F Family Reference Manual 21. fejezetével kellene egybevetni. Sajnos, én most csak ennyi időt tudtam rászánni...
(#) gulasoft válasza icserny hozzászólására (») Szept 7, 2009 /
 
ilyen van nálam is, és nekem is usb-s soros portom van.
Lehet hogy ez a gond?
(#) icserny válasza gulasoft hozzászólására (») Szept 7, 2009 /
 
Más programokkal menni szokott (pl. a Micrium OS/II RTOS elég szépen kommunikált ugyanezen az Explorer16-on, és ugyanezen az USB-RS232 konverteren).

De a helyedben lehet, hogy megpróbálnám kihagyni az RTS/CTS kapcsolgatást.
(#) Hp41C válasza gulasoft hozzászólására (») Szept 7, 2009 / 1
 
Sziasztok!

Inkább ezt kellett volna a figyelmedbe ajánlaniuk a többieknek, főleg a 20. pontot.

Tanulság:
- Lehet, hogy nem mindig a kérdezőben van a hiba. Én is rogyásig végigolvastam az adatlapot, az UART kibővített leírását. A program az ott leírtakat betartja.
- A mások által ajánlott sebességet egy próbára érdemesnek kellett volna tartani.
- Sajnos a Microchip-et is utolérte a piacrahozási kényszer, az új típusokban sok a hiba. Ha valami nem megy, el kell olvasni az Errata -kat is.

Sziasztok...
(#) icserny válasza Hp41C hozzászólására (») Szept 7, 2009 /
 
Idézet:
„- A mások által ajánlott sebességet egy próbára érdemesnek kellett volna tartani.”

Én már kipróbáltam helyette, de nem hozott sikert.

Inkább a BRGH=0 beállítással kellene próbálkozni (#define U_ENABLE 0x8000), BRATE megfelelő értéke pedig a már belinkelt Referencia Manual táblázataiból kiolvasható.
(#) trudnai válasza Hp41C hozzászólására (») Szept 7, 2009 /
 
Idézet:
„Tanulság:
- Lehet, hogy nem mindig a kérdezőben van a hiba. Én is rogyásig végigolvastam az adatlapot, az UART kibővített leírását. A program az ott leírtakat betartja.”


Szep fogas, bar en valtozatlanul azt mondom, hogy ezt az OP-nak kellett volna megtalalnia -- ha olvassa az adatlapot es ahogy az adatlapokban le is irjak ha koveti az Errata-kat is...

Amugy ha ennyi nyug van ezzel a peldannyal akkor javasolnam gulasoft-nak, hogy terjen at egy kiforrottabb valtozatra. Itt ugye mikor a PIC-et kivalasztjuk akkor ismet nem csupan az arat es a feltuntetett szolgaltatasokat kellene megvizslatni, hanem az adatlapot (es ugye az Errata-t is!) hogy az adott eszkoz valoban megfelel-e az alkalmazasunknak / elvarasainknak.
Következő: »»   568 / 1318
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