Example #1
0
// *****************************************************************************
// *****************************************************************************
// Section: Instance 0 static driver functions
// *****************************************************************************
// *****************************************************************************
void DRV_PMP0_Initialize(void)
{	

    PLIB_PMP_Disable(PMP_ID_0);
    PLIB_PMP_Enable(PMP_ID_0);   

}
/**
 * @brief You must set mode configuration after initial driver.
 * @param void
 * @return void
 */
void DRV_PMP0_ModeConfig(void)
{
    PLIB_PMP_Disable(PMP_ID_0);

    //Configure Main Communication Mode
    PLIB_PMP_OperationModeSelect(PMP_ID_0, PMP_MASTER_READ_WRITE_STROBES_INDEPENDENT);

    // Set the multiplexing to PMP_MUX_LINES_16_ADDRESS_16_DATA. Address and data lines are multiplexed.
    PLIB_PMP_MultiplexModeSelect( PMP_ID_0, PMP_MUX_LINES_16_ADDRESS_16_DATA );

    // Select the interrupt mode
    PLIB_PMP_InterruptModeSelect( PMP_ID_0, PMP_INTERRUPT_NONE );

    // disable the auto increment/decrement of address after each read/write
    PLIB_PMP_AddressIncrementModeSelect( PMP_ID_0, PMP_ADDRESS_AUTO_INCREMENT );

    // Enable stop in Idle mode.
    PLIB_PMP_ExistsStopInIdleControl( PMP_ID_0 );

    //Set the data width size
    PLIB_PMP_DataSizeSelect(PMP_ID_0, PMP_DATA_SIZE_16_BITS);

    //Setup Read Strobe Registers
    PLIB_PMP_ReadWriteStrobePortEnable(PMP_ID_0);
    PLIB_PMP_ReadWriteStrobePolaritySelect(PMP_ID_0, PMP_POLARITY_ACTIVE_LOW);

    //Setup Write Strobe Registers
    PLIB_PMP_WriteEnableStrobePortEnable(PMP_ID_0);
    PLIB_PMP_WriteEnableStrobePolaritySelect(PMP_ID_0, PMP_POLARITY_ACTIVE_LOW);

    // Configure the wait states
    PLIB_PMP_WaitStatesDataSetUpSelect(PMP_ID_0, PMP_DATA_WAIT_TWO);
    PLIB_PMP_WaitStatesStrobeSelect(PMP_ID_0, PMP_STROBE_WAIT_3);
    PLIB_PMP_WaitStatesDataHoldSelect(PMP_ID_0, PMP_DATA_HOLD_2);

    // Enable address latch pin
    PLIB_PMP_AddressLatchStrobeEnable( PMP_ID_0, PMP_ADDRESS_LATCH_HIGH | PMP_ADDRESS_LATCH_LOW);

    PLIB_PMP_Enable(PMP_ID_0);
}