void Init_Ext_Mem() {
  // Initialize SPI
  SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, 64, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE);
  Delay_ms(10);

  // Initialize MMC
  if (!Mmc_Fat_Init()) {
    // Reinitialize SPI at higher speed
    SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, 4, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE);

    // Open resource file for read
    Mmc_Fat_Assign("CozyFire.RES", 0);
    Mmc_Fat_Reset(&res_file_size);
  }
}
예제 #2
0
static void radio_bus_init()
{
    status = RF_IDLE;

    SPI2_Init_Advanced( _SPI_FPCLK_DIV64, _SPI_MASTER | _SPI_8_BIT
                        | _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION
                        | _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE
                        | _SPI_SSI_1, &_GPIO_MODULE_SPI2_PB13_14_15 );

    GPIO_Digital_Output( &GPIOG_BASE, _GPIO_PINMASK_12 | _GPIO_PINMASK_9 );
    GPIO_Digital_Input( &GPIOG_BASE, _GPIO_PINMASK_10 );  // Set input for IRQ

    // Enable clock for alternate pin functions
    RCC_APB2ENR |= ( 1 << RCC_APB2ENR );  //SYSCFGEN_bit = 1;

    // Map external interrupt on PG10
    SYSCFG_EXTICR3 |= ( 1 << EXTI81 ) | ( 1 << EXTI82 );

    EXTI_RTSR &= ~( 1 << TR10 );     // Set interrupt on Rising edge (none)

    EXTI_FTSR |= ( 1 << TR10 );      // Set Interrupt on Falling edge (PG10)

    EXTI_IMR |= ( 1 << MR10 );       // Set mask

    NVIC_IntEnable( IVT_INT_EXTI15_10 );   // Enable External interrupt

    bus_initialized = true;
    // Note: Radio - By default all IRQ sources are enabled.
}
void Init_Ext_Mem() {
  // Initialize SPI
  SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, _SPI_PRESCALE_SEC_1, _SPI_PRESCALE_PRI_64,
                    _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_IDLE_2_ACTIVE);
  Delay_ms(10);

  // Initialize MMC
  if (!Mmc_Fat_Init()) {
    // Reinitialize SPI at higher speed
    SPI2_Init_Advanced(_SPI_MASTER, _SPI_8_BIT, _SPI_PRESCALE_SEC_1, _SPI_PRESCALE_PRI_4,
                      _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_IDLE_2_ACTIVE);

    // Open resource file for read
    Mmc_Fat_Assign("mmbInput.RES", 0);
    Mmc_Fat_Reset(&res_file_size);
  }
}