[elektro] PIC32, PMP wait state

Fuzesi Arnold arnold.fuzesi.lista at gmail.com
Wed Dec 29 21:37:12 CET 2010


nem ez szivat?

"Whenever WAITM<3:0> = 0000, WAITB and WAITE bits are ignored and forced to 1 
TPBCLK cycle for a
write operation; WAITB = 1 TPBCLK cycle, WAITE = 0 TPBCLK cycles for a read 
operation."

A.
On 2010.12.29. 21:23, Moczik Gabor wrote:
> Hali!
>
> Nem stimmelnek a wait state-ek.
>
> SYSCLK = 80MHz
> PBDIV  = 4
> PBCLK  = 20MHz -->  Tpb = 50ns
>
> Ha beállítom hogy WAITB=0, WAITM=0, WAITE=0, akkor azt várnám, hogy 50ns
> széles WR pulzus jelenjen meg 100ns-onként. Azért ennyi, mert ha M=0 -ra
> van állítva, akkor M=1, B=1, E=1, tehát 3 Tpb egy írási ciklus (adatlap
> szerint).
>
> A szélessége valóban 50ns, de a szünet 200ns, azaz a ciklus 5 Tpb.
>
> Ha átállítom a WAITM=1 -re (ami 2 Tpb-t jelent), akkor a jel valóban
> 100ns széles, de a szünet is megnő 250ns-re, a teljes ciklus 7 Tpb lett,
> a 4 helyett.
>
> Már egy ideje görcsölök vele, szerintetek mit hagyok figyelmen kívül?
>
>
>       PMCONCLR=BIT_15;                // PMP OFF
>       Nop();
>       PMCON=0x0300;                   // PTWREN, PTRDEN
>       PMMODE=0x0600;                  // 16-bit, master mode 2
>       PMAEN=0;                        // PMA.. address pins disabled
>       PMCONSET=BIT_15;                // PMP ON
>       Nop();
>
>       PMMODEbits.WAITB=0;
>       PMMODEbits.WAITM=1;
>       PMMODEbits.WAITE=0;
>
>       do{
>           // write
>           while(PMMODEbits.BUSY);
>           PMDIN=0x0000;
>       }while(1);
>
>



More information about the Elektro mailing list