[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