Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1212 / 1320
(#) Droot válasza Wezuv hozzászólására (») Feb 26, 2016 /
 
Ezekkel nálam is megy a szenvedés. Mikrocsippék nem könnyítik meg az életünket!
(#) pajti2 válasza Wezuv hozzászólására (») Feb 26, 2016 /
 
Amennyire a saját tapasztalataim utalnak a várható végkifejletre, ha sikerül találni azzal az eszközzel breakout boardot, akkor talán lesz belőle valami, ha nem, el lehet felejteni. Bga tokkal játszadozni nem amatőr világba való. Esetleg írj a gyártónak, és kérdezd meg tőlük, van-e tudomásuk róla, hogy arra az eszközre prototípus panelek léteznének.
(#) pajti2 válasza Droot hozzászólására (») Feb 26, 2016 /
 
Az a kettő cucc mx alatt a mag saját headerjében van benne, és elvileg makrók. Szimpla 32 bites regiszter hozzáférés asm includeolva. Hogy nálad mit tud az órajel, milyen oszcillátorod van, fogalmam sincs róla, de a beállításaid szerint lesz majd egy rendszer órajeled, azt beosztod 2-vel, és a cp0,9-ben az az ütemjel fog számolni. Beállítod a korlátot úgy, hogy kb 1 másodpercnyit azámoljon, és negálgatsz egy led meghajtást. Vagy valami olyasmi. Legyél kicsit kreatív, ez elvileg a haladó topic

Az mx-hez én c32-vel fordítottam, annak a környezete ismerte a makrót, az mz-hez az xc32 vagy akármicsodát sohasem használtam, de majd szorítok neked.
(#) Wezuv válasza Droot hozzászólására (») Feb 26, 2016 /
 
Azt sejtem mitől van, de nem találom a megoldást. Az MX nél kellett egy SYSTEMConfigPerformance(SYS_CLK ); beállítás, ami beállította a gyorsítótárat, a prefect puffert, a flash várakozási időt és a SRAM várakozási időt. Ezt nem tudom, hogy az MZ-nél is be kell-e, de tény, hogy lassabban fut, mint kéne, ezt már én is tapasztalom...
Ha valaki tudja ez alapján a választ, az ne tartsa vissza!
(#) Droot válasza Wezuv hozzászólására (») Feb 26, 2016 /
 
Nem akarom magam ismételni, nem könnyítik meg az ember életét. Mindjárt kipróbálom.
Ezt elégha csak sima xc32 projektbe beírom? Vagy csak harmony-val megy?
(#) Wezuv válasza Droot hozzászólására (») Feb 26, 2016 /
 
NE írd be, mert nem működik. A harmonyval kínlódok, de nem értem mit miért csinálnak és csak egy útvesztőbe kerül az ember, ha elindul egy szálon a kódjukban. Azt hiszem az adatlapban kell megkeressem ezeket a dolgokat is...
(#) Droot válasza pajti2 hozzászólására (») Feb 26, 2016 /
 
  1. while(_CP0_GET_COUNT() < 100000000);
  2.             PORTDbits.RD1 = 1;


Ez a feltétel 25 másodperc alatt teljesül. Valami itt nagyon nem kerek. Most akkor mekkora frekvencián is jár?

Szerk:
Tehát 100 millió 25 másodperc alatt. Akkor 100mill/25 másodperc = 4000000/másodperc. Ezt megszorzom kettővel mert a felével számolta, tehát 8000000Hz = 8MHz?
Hogy a túróban járhat 8MHz-n ezekkel a PLL beállításokkal?
A hozzászólás módosítva: Feb 26, 2016
(#) Wezuv válasza Droot hozzászólására (») Feb 26, 2016 /
 
Én olyan 150MHz-re saccolnék inkább abból, hogy aminek másodpercenként kéne, kb. 1,5sec-enként villog. Ugyanezt játszottam végig az MX-el, de ott gyorsabban megvolt a megoldás C32-ben...
A hozzászólás módosítva: Feb 26, 2016
(#) Droot válasza Wezuv hozzászólására (») Feb 26, 2016 /
 
Igen, de most a 100 milliónak 0,5 másodperc alatt kellene meglennie, nem?
Ha 200MHz-en fut, akkor 200 millió egy másodperc alatt.
Ezaz, hogy a timer meg kb. 1,5 másodperc alatt számolt 1 másodpercet, lehet ott is elrontottam valamit. Először az órajelet akarom rendbetenni. De hogy?
A hozzászólás módosítva: Feb 26, 2016
(#) pajti2 válasza Droot hozzászólására (») Feb 26, 2016 /
 
Az elején ne felejtsd el kinullázni azt a timert de egyébként igen, ha 100 misit 25 sec alatt számolt végig, akkor az 8 mhz rendszerórajelnek tűnik, nincsen ottan tévedés. Lehet, hogy valami irgalmatlanul nem kerek az áramkörödben, de az nem a cp0,9 regisztered működése, szóval a rendszer órajeled 8 mhz, abban biztos lehetsz.
(#) Droot válasza pajti2 hozzászólására (») Feb 26, 2016 /
 
Azóta már biztos vagyok benne. Minden frankón van pedig beállítva.
Egyedül ezt találtam, de ez sem biztos, hogy rám vonatkozik, mert én PIC32MZ2048EFH100-at használok:
Bővebben: Link
Esetleg ha volna időd átfutnád ezeket a konfig biteket?
  1. // DEVCFG3
  2. // USERID = No Setting
  3. #pragma config FMIIEN = ON              // Ethernet RMII/MII Enable (MII Enabled)
  4. #pragma config FETHIO = ON              // Ethernet I/O Pin Select (Default Ethernet I/O)
  5. #pragma config PGL1WAY = ON             // Permission Group Lock One Way Configuration (Allow only one reconfiguration)
  6. #pragma config PMDL1WAY = ON            // Peripheral Module Disable Configuration (Allow only one reconfiguration)
  7. #pragma config IOL1WAY = ON             // Peripheral Pin Select Configuration (Allow only one reconfiguration)
  8. #pragma config FUSBIDIO = ON            // USB USBID Selection (Controlled by the USB Module)
  9.  
  10. // DEVCFG2
  11. #pragma config FPLLIDIV = DIV_3         // System PLL Input Divider (3x Divider)
  12. #pragma config FPLLRNG = RANGE_5_10_MHZ // System PLL Input Range (5-10 MHz Input)
  13. #pragma config FPLLICLK = PLL_POSC      // System PLL Input Clock Selection (POSC is input to the System PLL)
  14. #pragma config FPLLMULT = MUL_50        // System PLL Multiplier (PLL Multiply by 50)
  15. #pragma config FPLLODIV = DIV_2         // System PLL Output Clock Divider (2x Divider)
  16. #pragma config UPLLFSEL = FREQ_24MHZ    // USB PLL Input Frequency Selection (USB PLL input is 24 MHz)
  17.  
  18. // DEVCFG1
  19. #pragma config FNOSC = SPLL             // Oscillator Selection Bits (System PLL)
  20. #pragma config DMTINTV = WIN_127_128    // DMT Count Window Interval (Window/Interval value is 127/128 counter value)
  21. #pragma config FSOSCEN = OFF            // Secondary Oscillator Enable (Disable SOSC)
  22. #pragma config IESO = ON                // Internal/External Switch Over (Enabled)
  23. #pragma config POSCMOD = HS             // Primary Oscillator Configuration (HS osc mode)
  24. #pragma config OSCIOFNC = OFF           // CLKO Output Signal Active on the OSCO Pin (Disabled)
  25. #pragma config FCKSM = CSECME           // Clock Switching and Monitor Selection (Clock Switch Enabled, FSCM Enabled)
  26. #pragma config WDTPS = PS1048576        // Watchdog Timer Postscaler (1:1048576)
  27. #pragma config WDTSPGM = STOP           // Watchdog Timer Stop During Flash Programming (WDT stops during Flash programming)
  28. #pragma config WINDIS = NORMAL          // Watchdog Timer Window Mode (Watchdog Timer is in non-Window mode)
  29. #pragma config FWDTEN = OFF              // Watchdog Timer Enable (WDT Disabled)
  30. #pragma config FWDTWINSZ = WINSZ_25     // Watchdog Timer Window Size (Window size is 25%)
  31. #pragma config DMTCNT = DMT31           // Deadman Timer Count Selection (2^31 (2147483648))
  32. #pragma config FDMTEN = ON              // Deadman Timer Enable (Deadman Timer is enabled)
  33.  
  34. // DEVCFG0
  35. #pragma config DEBUG = OFF              // Background Debugger Enable (Debugger is disabled)
  36. #pragma config JTAGEN = OFF             // JTAG Enable (JTAG Disabled)
  37. #pragma config ICESEL = ICS_PGx1        // ICE/ICD Comm Channel Select (Communicate on PGEC1/PGED1)
  38. #pragma config TRCEN = ON               // Trace Enable (Trace features in the CPU are enabled)
  39. #pragma config BOOTISA = MIPS32         // Boot ISA Selection (Boot code and Exception code is MIPS32)
  40. #pragma config FECCCON = OFF_UNLOCKED   // Dynamic Flash ECC Configuration (ECC and Dynamic ECC are disabled (ECCCON bits are writable))
  41. #pragma config FSLEEP = OFF             // Flash Sleep Mode (Flash is powered down when the device is in Sleep mode)
  42. #pragma config DBGPER = ALLOW_PG2       // Debug Mode CPU Access Permission (Allow CPU access to Permission Group 2 permission regions)
  43. #pragma config SMCLR = MCLR_NORM        // Soft Master Clear Enable bit (MCLR pin generates a normal system Reset)
  44. #pragma config SOSCGAIN = GAIN_2X       // Secondary Oscillator Gain Control bits (2x gain setting)
  45. #pragma config SOSCBOOST = ON           // Secondary Oscillator Boost Kick Start Enable bit (Boost the kick start of the oscillator)
  46. #pragma config POSCGAIN = GAIN_2X       // Primary Oscillator Gain Control bits (2x gain setting)
  47. #pragma config POSCBOOST = ON           // Primary Oscillator Boost Kick Start Enable bit (Boost the kick start of the oscillator)
  48. #pragma config EJTAGBEN = NORMAL        // EJTAG Boot (Normal EJTAG functionality)
  49.  
  50. // DEVCP0
  51. #pragma config CP = OFF                 // Code Protect (Protection Disabled)
  52.  
  53. // SEQ3


Szerk:
Ha ilyen oszcillátorról jár, akkor csak simán bekötöm az OSCI-be és az OSCO-t szabadon hagyom, ugye?
A hozzászólás módosítva: Feb 26, 2016
(#) Wezuv válasza Droot hozzászólására (») Feb 26, 2016 /
 
Nálam már megvan, miért nem megy 200MHz-el, azért mert nem működik az oszi, ezért átvált Back-up Fast RC (BFRC) Oscillatorra, ami 8MHz elvileg, viszont ahhoz képest meg túl gyorsan villognak a LED-ek... Na majd holnap.
(#) Droot válasza Wezuv hozzászólására (») Feb 26, 2016 /
 
Nálam elvileg működik, de nem biztos, hogy 24MHz-en. Most nem tudok rászkópolni, de a kimenetén a tápfesz felét mérem, ami elvileg jó. Igen, a back up oszcillátor 8MHz.
(#) Wezuv válasza Droot hozzászólására (») Feb 27, 2016 /
 
Nekem is működött, csak mivel HS-re állítottam én is a konfigot, nem ment, ezért átkapcsolt Back-up Fast RC (BFRC) Oscillatorra, ahogy neked is. Tedd át te is EC-re(External Clock Mode)
Most az a baj, hogy túl gyorsan villognak a LED-ek. Valamit még nem jól állítok be a Timer2-n, de már egyenesben vagyunk...
Ja igen, mondtam, hogy holnap!
A hozzászólás módosítva: Feb 27, 2016
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Nekem EC-ről egyáltalán nem indul el.
EC beállítással biztos, hogy az OSCI-re kell kötni az órajelgenerátor kimenetét?
A hozzászólás módosítva: Feb 27, 2016
(#) Wezuv válasza Droot hozzászólására (») Feb 27, 2016 /
 
Igen, 49. láb. Ha nem indul el, az gond, mert lehet, hogy nem megy az oszci. Érdekes, hogy nem lép vészüzemmódra és vált át RC oszcira...
Nekem most az a bajom, hogy a PB3DIVbits.PBDIV-et nem tudom módosítani! Mindig 1 van benne, hiába írok bele mást. Azt keresem, mi tiltotta le, vagy milyen procedura kell, hogy át lehessen írni...
(#) Wezuv válasza Droot hozzászólására (») Feb 27, 2016 /
 
Ez a módja az PBDIV-ek állításának:
  1. SYSKEY = 0x0; // Ensure OSCCON is locked
  2.     SYSKEY = 0xAA996655; // Write Key1 to SYSKEY
  3.     SYSKEY = 0x556699AA; // Write Key2 to SYSKEY
  4.     PB3DIVbits.PBDIV = 31; //
  5.     // Relock the SYSKEY
  6.     SYSKEY = 0x0; // Write any value other than Key1 or Key2
  7.     // OSCCON is relocked

Az PIC32 Family Reference Manual, Sect. 42 Oscillators with Enhanced PLL.pdf fájlban találod a Example 42-1: Enabling the SOSC példánál.

Nekem már minden a helyére került szerencsére. Neked akkor az oszcidat kell életre kelteni! Jó éjszakát!
A hozzászólás módosítva: Feb 27, 2016
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Én úgy tudom, hogy simán át lehet írni.

Hát igen, de HS-el meg elindul a backup frc. Hihetetlen, hogy 8 órája ezt keresem és egyszerűen semmi.
Rá fogok tenni egy sima 25MHz-es mezei kvarcot...
De egyébként FRC-vel is mennie kéne a PLL-nek, sőt 200MHz-et is tudnia kéne, és mégsem...
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Köszi! Jó éjt!
(#) Wezuv válasza Droot hozzászólására (») Feb 27, 2016 /
 
Kvarccal egyáltalán nem megy, ezt olvastam az erratában!!
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Köszi, hogy szóltál! És neked is köszi, mikrocsip...!
(#) Wezuv válasza Droot hozzászólására (») Feb 27, 2016 /
 
Jaja! Ezért vettem a farnelen keresztül oszcit, aztán mire megjött, már a chipcadnél is lett raktáron.
Holnap TFT lesz gőzerővel!
(#) Wezuv hozzászólása Feb 27, 2016 /
 
A mába nyúló probláma megoldása szült pár olyan eredményt, amit szívesen megosztok, miután sokat segítettetek, amit köszönök!
Ez itt a PIC32MZ "tuningolása", inkább finom hangolása. Nem emiatt volt veszettül lassú, de érdemesnek tartom használni a lehetőségeket:
  1. #define UNCASHED 0x02
  2. #define WB_WA 0x03
  3. #define WT_WA 0x01
  4. #define WT_NWA 0x00
  5.  
  6. void set_ceche_policy(void){
  7.     unsigned int cp0;
  8.     /*
  9.         K0<2:0> (CONFIG: CP0 Reg 16, Select 0)
  10.         011= Cacheable, non-coherent, write-back, write allocate
  11.         010= Uncached
  12.         001= Cacheable, non-coherent, write-through, write allocate
  13.         000= Cacheable, non-coherent, write-through, no write allocate
  14.     */
  15.  
  16.     cp0= _mfc0(16,0);
  17.     cp0 &= ~0x03;
  18.     cp0 |= WB_WA;
  19.     _mtc0(16,0,cp0);  
  20.    
  21.     /*
  22.         PREFEN<1:0> (PRECON<5:4>)
  23.         11= Enable predictive prefetch for any address
  24.         10= Enable predictive prefetch for CPU instructions and CPU
  25.         data
  26.         01= Enable predictive prefetch for CPU instructions only
  27.         00= Disable predictive prefetch
  28.      */
  29.     PRECONbits.PREFEN=3; //Enable predictive prefetch for any address
  30.    
  31.     /*
  32.         PFMWS<2:0> (PRECON<2:0>)
  33.         111= Seven Wait states
  34.         •
  35.         •
  36.         •
  37.         011= Three Wait states
  38.         010= Two Wait states (133-200 MHz)
  39.         001= One Wait state (66-133 MHz)
  40.         000= Zero Wait states (0-66 MHz)    
  41.      */
  42.     PRECONbits.PFMWS=2; //
  43. }
A hozzászólás módosítva: Feb 27, 2016
(#) Wezuv hozzászólása Feb 27, 2016 /
 
Kérdésem is lenne. Az MPLAB X nem detektálja a telepített XC32 include könyvtárait, pirossal aláhúzza a vélt hibákat a forrásban. De ennek ellenére hiba nélkül lefordítja. Ha a project beállításaiban felveszem az elérési utakat, akkor minden rendben lesz.
Szeretném ezt véglegesíteni, nem tudjátok hol lehetne beállítani mélyebben, hogy ne kelljen állandóan linkelgetni? Köszi!
(#) pajti2 válasza Droot hozzászólására (») Feb 27, 2016 /
 
Ahogy elnézem, tegnap még akkor is nyomtátok, amikor én már rég az igazak álmát aludtam. Ha jól látom, azóta már nyomon vagytok a problémában. Ja igen, a teljes pic32mz család nem olyasmi, ami kiforrottnak mondható. Nagyon sok a baj vele minden téren. Részemről nem foglalkozom azzal a pic családdal.
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Nekem nem kell semmit sem állítani a projekt beállításaiban. Ha aláhúzza akkor lefordítom és észhez tér. Általában akkor csinálja amikor megnyitom a projektet.
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Nekem is jöhet a TFT. Ugyanis megoldódott!
Egy, ismétlem EGY Vdd láb nem volt beforrasztva, emiatt nem indult el a PLL és hidegítő kondi sem volt azon az egy Vdd-n.
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Ez pontosan miket csinál? Mi az a Cache és prefetch?

Tök jó, hogy megtaláltad a PBDIV korrekt beállítását, de a SYSKEY-ről hol olvastál? Én az adatlapban is rákerestem, csak két helyen volt említve, ahol csak a neve volt meg hogy 32 bites regiszter...
(#) Wezuv válasza Droot hozzászólására (») Feb 27, 2016 /
 
Szia!
A chase-ről itt találsz bővebbet: AN1600
A SYSKEY-t a példakódban találtam itt: Section 42. Oscillators with Enhanced PLL
Olvasom, neked már megy és korrekt időkkel, ahogy kell! Én szenvedek, mert nem egyszerű átgyúrni MX-s C32-es kódot XC32-re. Köszönjük microchip!
A hozzászólás módosítva: Feb 27, 2016
(#) Droot válasza Wezuv hozzászólására (») Feb 27, 2016 /
 
Mi a gond? Hátha tudok valami ötleted adni.

Nem tudsz véletlenül az MZ-hez egy működő i2c master nem harmony-s library-t? Kellene a touch controller-hez? Csak nem akarok új i2c libet írni.
Következő: »»   1212 / 1320
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