Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1178 / 1320
(#) watt válasza Kisvé hozzászólására (») Máj 28, 2014 /
 
Szia! Szerintem valami beállítási probléma lesz. Ez a működés hibásnak tűnik, ahogy te is gondolod. Nézz bele az erratákba, hátha van valami erről!
(#) Kisvé válasza watt hozzászólására (») Máj 28, 2014 /
 
Ott még nem tartok, hogy működjön. Csak az adatlap nézegetés szintjén vagyok...
(#) Hp41C válasza watt hozzászólására (») Máj 28, 2014 /
 
A példám nem RS485 -re készült, hanem RS232 -re. Itt mehet a válasz, amikor már van belőle karakter. Full-duplex RS485 -re is jó. Egyébként egy teljes üzenet vétele után kerül csak sor a válasz összeállítására és a karakterek bufferbe pakolására. Így RS485 -re is jó lehet.
Két apró módosítással lehet még javítani:
ISR: Ha most engedélyeztük az adást, két karakter is beírható közvetlenül egymás után (ha van kettő a bufferben).
Beírás: Ha le volt tiltva az adás, csak a második karakter után (ha lesz kettő) engedélyezni a megszakítást.
Szerintem csak bonyolítja a programot.
(#) ha1drp válasza Kisvé hozzászólására (») Máj 28, 2014 /
 
Van olyan DAC ami FRAME módban működik (pl. DAC8311) , de szinte az összes audio DAC is ezt a protokollt használja.
DAC8802: Mivel a cs felhúzása is lehet impulzus szerű, a FRAME mód használható lenne a felhúzására, probléma csak az, hogy ez az impulzus a szabvány szerint a keret elején van. Ez nálad azt jelenti, hogy akkor jut érvényre a kiküldött adat, mikor a következő adat küldése elindul. (Az FRMDLY értékét is valószínű 1-re kell állítani).
Sajnos, ha nem működik le kell mondani a DMA átvitelről, marad a megszakításos megoldás.
(#) Kisvé válasza ha1drp hozzászólására (») Máj 28, 2014 /
 
Én is gondoltam arra, amit írtál és majdnem jó is. Az a baj, hogy frame módban, az órajel folyamatosan megy, a D/A pedig az utolsó x bitet veszi be, így sajnos nem, hogy később jön a felfutás
Viszont a DAC8311 akár jó is lehet első ránézésre. Köszi szépen!
Egyébként, hogy tudsz rákeresni arra, hogy ilyen frame-es SPI-jal működjön?
(#) dani9228 válasza Hp41C hozzászólására (») Máj 28, 2014 /
 
Most néztem, a 16F887-hez mit szólsz? Azt tudom mikro C-ben programozni, meg az ára is jó.
(#) Hp41C válasza dani9228 hozzászólására (») Máj 28, 2014 /
 
16F887 : 40 láb, 8kword Program memória, 384 byte RAM, 256 byte EEProm: 510Ft+Áfa
16F1939: 40 láb, 16kword Program memória, 1k RAM, 256 byte EEProm: 560Ft+Áfa
18F46K20: 64kbyte Program memória, 3968 byte RAM, 256 byte EEProm: 630Ft+Áfa
A hozzászólás módosítva: Máj 28, 2014
(#) ha1drp válasza Kisvé hozzászólására (») Máj 28, 2014 /
 
Idézet:
„Egyébként, hogy tudsz rákeresni arra, hogy ilyen frame-es SPI-jal működjön?”

Nem tudtam rákeresni, csak az első próba pont ilyet dobott ki.
(#) icserny válasza dani9228 hozzászólására (») Máj 28, 2014 / 1
 
Ha már a "jó ár" szóba került, csak az érdekesség és összehasonlítás miatt:

- Nuvoton NUC100 széria hasonló árfekvésben kapható, csak 32 bites, 50 MHz-es (és nem Fosc/4 az utasításciklus!), akár 128 kB flash és 16 K RAM, s a NUC120 vagy 140-ban USB is van. Nem utolsó szempont, hogy 3,3 V-on és 5 V-on is megy (egyszerűbb az illesztés). Ráadásul gyárilag belecsinált bootloadere is van (USB-n vagy soros porton). Bővebben: Link

- Cypress akció: CY8C4245AXI-483 PSOC4 mikrovezérlő (44 láb, 32 bites, 48 Mhz, 32 kB flash, 4 kB RAM (át)programozható logikai és analóg áramkörökkel most 1 dollár (~230 Ft), ingyenes házhozszállítássa!!! Bővebben: Link
Ebben sajnos, nincs bootloader, de elég jól dokumentált a programozása. Kellemes, hogy ez is megy 3,3 és 5 V-on is, és átprogramozható, hogy mi hol menjen ki. Van 28 lábú tokozásban is (SSOP, azaz 0,65 mm lábtávolsággal).

Érdemes tehát körülnézni a nagyvilágban típusválasztással kapcsolatos keresgélések kapcsán.
A hozzászólás módosítva: Máj 28, 2014
(#) icserny válasza (Felhasználó 15355) hozzászólására (») Máj 28, 2014 /
 
Idézet:
„18F46K20 ...csak ez már 3Voltos.”
Az "ikertestvére" (PIC18F46K22) megy 5V-ról is (VDD = 1,8 - 5,5 V).
(#) watt hozzászólása Máj 31, 2014 /
 
Sziasztok!
Szenvedek a PK3-al. MPLAB 8.92, Debugger módban minden rendben. Átváltok Programmer módra és nem fut a kód, csak ritkán, pár reset le-fel után, de akkor jól. Aztán még pár reset és megint nem fut. (Beakad a magas priorítású megszakításba a soros küldés után, de elkad a CCP megszakítása is, nem tudom hol akad el, miután debugger módban nem csinálja.)
Nincs ötletetek mi okozza? (18F87J94)
(#) watt hozzászólása Máj 31, 2014 /
 
A másik probléma az RTCC elindítása. Nem jövök rá, miért nem elég, ha bekapcsolom! Írni kell, majd reset, utána ketyeg. Áramtalanítom, nem ketyeg, csak ha újra írom és reset. A külső oszci jól működik, ellenőriztem. Ha beteszem az elemet, és egyszer elindítom ,akkor nem áll le, de néha, debuggolás után, ha nem váltom vissza nem fut, de ezt még elnézném neki...
(#) watt válasza watt hozzászólására (») Máj 31, 2014 /
 
Ez utóbbira megtaláltam a választ.
  1. EECON2=0x55;
  2. EECON2=0xAA;   
  3. RTCCON1bits.RTCWREN=Be; //RTCC value regiszterek írási jog engedélyezése   
  4. RTCCON1bits.RTCEN=Be;   //RTCC bekapcs

Ha az RTCWREN nincs bekapcsolva a fenti módon, akkor nem veszi figyelembe az RTCEN-re vonatkozó beállítást. Az érdekesség, hogy ennek ellenére volt, amikor elindult!!!
A hozzászólás módosítva: Máj 31, 2014
(#) watt válasza watt hozzászólására (») Jún 5, 2014 /
 
Ez is kiderült... A PIC-ben hibás a PLL! 96MHz-en nem indul stabilan. 80MHz-re visszavéve stabil.
(#) potyo válasza watt hozzászólására (») Jún 5, 2014 /
 
Melyik típus?
(#) watt válasza potyo hozzászólására (») Jún 5, 2014 /
 
írtam: (18F87J94)
(#) Hp41C válasza watt hozzászólására (») Jún 5, 2014 /
 
Az Errata -ban az első pont a megkerülés módja.
A hozzászólás módosítva: Jún 5, 2014
(#) watt válasza Hp41C hozzászólására (») Jún 5, 2014 /
 
Próbáltam, de vagy nem jól értem amit akarnak, vagy nem működik. Ha segítenél értelmezni, megköszönném!
(#) potyo válasza watt hozzászólására (») Jún 5, 2014 /
 
Ha jól értem, akkor azt mondja, hogy ne használj kétsebességű indulást (tehát hogy másik, gyorsabban induló oszcillátorról indul a chip, és csak amikor a PLL stabilizálódik, akkor kapcsol át erre), ne használj Fail-Safe clock monitort, és ne kapcsolgasd az órajelet az FRC500kHz kivételével a többi órajelforrás és az FRCPLL között. Tehát ha jól értem, akkor a CONFIG2L IESO bitjét tedd nullára, FSCO biteket állítsd 011-be, CONFIG3L FSCM biteket tedd 1x állásba, POSCMD-t pedig 10 vagy 01-be, attól függően, hogy milyen kvarcot használsz. És persze a CONFIG2H PLLDIV bitjeit is állítsd a kvarcnak megfelelőre.
A hozzászólás módosítva: Jún 5, 2014
(#) watt válasza potyo hozzászólására (») Jún 6, 2014 /
 
Szia! Köszönöm a megerősítést!
Beállítás 20MHz: POSCMD = HS, FOSC = PRIPLL, PLLDIV 5-ös, IESO=OFF, FSCM = CSDCMD
Jelenség, bekapcsolás, vagy hardver reset után nem mindig indul el rendesen. Ilyenkor a watchdog nem okoz resetet! Érdekesség, hogy az óra megszakítások működni látszanak, de a fő szál nem fut. A program holt egyszerű, nem okozhatja, csak két LED az indikáláshoz egy az óra megszakításban, egy a fő loop-ban...
Ha átteszem a PLLDIV-et 6-ba, minden hibátlan lesz!
A debugg mód azért nem mutatta a hibát, mert addig el sem indult a folyamat, amíg nem rázódott helyre a PLL.
Szerencsére nem kell az USB(bár jó lett volna firmware frissítés miatt), és elég az 53,33MHz-is. Fontosnak látom, hogy ne kelljen be-ki-be kapcsolgatnia a felhasználónak a készüléket. Egy reset áramkör talán megoldás lenne, de ez elég gáz. Kezdek kiábrándulni...
(#) potyo válasza watt hozzászólására (») Jún 6, 2014 /
 
Van több ilyen típusod is? Lehet, hogy az adott példány a hibás.
(#) watt válasza potyo hozzászólására (») Jún 6, 2014 /
 
Van még egy, de nem sok kedvem van kiforrasztani(le van lakkozva). A következő példányoknál megnézem ugyanígy viselkedik-e és ha nem, akkor kicserélem a komlett panelt. De csak az USB-s bootloader miatt lenne érdekes, anélkül meg lehet élni.
(#) Attila86 hozzászólása Jún 17, 2014 /
 
Egy 250Hz frekvenciájú, 50% kitöltési tényezőjű jelet szeretnék kicsikarni egy 4MHz-en futó PIC18F25K80 mikrovezérlő CCP5 moduljából, a TMR4 felhasználásával, az alábbi módon:
  1. movlw   b'00001100'  ;PWM mód
  2. movwf   CCP5CON
  3. bsf     CCPTMRS, C5TSEL
  4. movlw   b'00000111'
  5. movwf   T4CON
  6. movlw   b'11111001'
  7. movwf   PR4
  8. movlw   b'10000000'
  9. movwf   CCPR5L
  10. bcf     CCP5CON, DC5B1
  11. bcf     CCP5CON, DC5B0
  12. ;---------------------------
  13. movlw   b'11011111'            
  14. movwf   TRISB   ;PORTB minden lába bemenet, kivéve RB5
  15. ;---------------------------
  16. movlw   b'01011100'     ;4MHz
  17. movwf   OSCCON
  18. bcf     OSCTUNE, PLLEN

De sajnos nem sikerül. Mit rontok el?
(#) ktamas66 válasza Attila86 hozzászólására (») Jún 17, 2014 /
 
Ha ezt szeretnéd beállítani, akkor a CCPR5L nem jó. Az órajel beállítást én kitenném a program elejére.
A hozzászólás módosítva: Jún 17, 2014

PWM.JPG
    
(#) Attila86 válasza ktamas66 hozzászólására (») Jún 17, 2014 /
 
Átírtam 0x7D-re a CCPR5L-t de így sem jó. Az órajel beállítás valójában legelöl van.
(#) ktamas66 válasza Attila86 hozzászólására (») Jún 17, 2014 /
 
Egyáltalán semmi nem jön ki belőle? Programból tudod billegtetni a lábat, ODCON beállítva.
(#) Attila86 válasza ktamas66 hozzászólására (») Jún 17, 2014 /
 
Billegtetni tudom manuálisan, az ODCON pedig 0x00.
(#) ktamas66 válasza Attila86 hozzászólására (») Jún 17, 2014 /
 
A TMR4 fut? (Egyszer jártam úgy, hogy az TMRxCON-ban 1x-ben az x mégsem lehetett akármi ).
(#) Attila86 válasza ktamas66 hozzászólására (») Jún 17, 2014 /
 
Igen, fut.
(#) ktamas66 válasza Attila86 hozzászólására (») Jún 17, 2014 /
 
Emlékszem szenvedtem vele én is, ha jól emlékszem valami portbeállítás baja volt. Ez van még az enyémben:
  1. movlw   b'11001111'
  2.         movwf   WPUB            ;PORTB FELHÚZÓ ELL.
  3.         BCF             INTCON2,7
  4.         CLRF    ODCON
Következő: »»   1178 / 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