MCIMX286CVM4B Freescale Semiconductor, MCIMX286CVM4B Datasheet - Page 1748

no-image

MCIMX286CVM4B

Manufacturer Part Number
MCIMX286CVM4B
Description
IC MPU I.MX286 289MAPBGA
Manufacturer
Freescale Semiconductor
Series
i.MX28r

Specifications of MCIMX286CVM4B

Core Processor
ARM9
Core Size
32-Bit
Speed
454MHz
Connectivity
CAN, EBI/EMI, Ethernet, I²C, MMC, SmartCard, SPI, SSI, UART/USART, USB OTG
Peripherals
DMA, I²S, LCD, POR, PWM, WDT
Program Memory Size
128KB (32K x 32)
Program Memory Type
Mask ROM
Ram Size
32K x 32
Voltage - Supply (vcc/vdd)
1.25 V ~ 5.25 V
Data Converters
A/D 17x12b
Oscillator Type
External
Operating Temperature
-40°C ~ 85°C
Package / Case
289-LFBGA
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Number Of I /o
-
Eeprom Size
-
Lead Free Status / Rohs Status
Compliant
Operation
};
const static reg32_t
{
};
/////////////////////////////////////////////////////
//Read256BytesFromEEPROM returns 1 for errors and 0 for OK
/////////////////////////////////////////////////////
int Read256BytesFromEEPROM(unsigned short usAddress){
1748
// insert eePROM addres param into dma command buffer
// Reset the APBX dma channels associated with I2C.
reset_mask = BF_APBX_CTRL0_RESET_CHANNEL((1 << I2C_CHANNEL_NUM));
HW_APBX_CTRL0_SET(reset_mask);
// Poll for reset to clear the channel.
for (retries = 0; retries < RESET_TIMEOUT; retries++)
if (retries == RESET_TIMEOUT)exit(1);
// Setup dma channel configuration.
BF_WRn(APBX_CHn_NXTCMDAR,I2C_CHANNEL_NUM,
BF_WR(APBX_CTRL1, CH3_CMDCMPLT_IRQ, 0);
// Start the dma channel by incrementing semaphore.
BF_WRn(APBX_CHn_SEMA, I2C_CHANNEL_NUM, INCREMENT_SEMA, 1);
// Poll for the semaphore to decrement to zero on the DMA channel.
for (retries = 0; retries < SEMAPHORE_TIMEOUT; retries++){
}
if(ferreters == SEMAPHORE_TIMEOUT) exit(2);
// the 256 bytes were read from the eePROM so return with no Error
BF_I2C_CTRL0_PRE_SEND_START(BV_I2C_CTRL0_PRE_SEND_START_SEND_START) |
BF_I2C_CTRL0_MASTER_MODE(BV_I2C_CTRL0_MASTER_MODE_MASTER)
BF_I2C_CTRL0_DIRECTION(BV_I2C_CTRL0_DIRECTION_TRANSMIT)
BF_I2C_CTRL0_XFER_COUNT(3)
I2C_CMD_BUFFER[1] = (unsigned char) (usAddress
I2C_CMD_BUFFER[2] = (unsigned char) ((usAddress>>8) &0x00ff);
BF_I2C_CTRL0_RETAIN_CLOCK(BV_I2C_CTRL0_RETAIN_CLOCK_HOLD_LOW)
BF_I2C_CTRL0_PRE_SEND_START(BV_I2C_CTRL0_PRE_SEND_START_SEND_START)|
BF_I2C_CTRL0_MASTER_MODE(BV_I2C_CTRL0_MASTER_MODE_MASTER)
BF_I2C_CTRL0_DIRECTION(BV_I2C_CTRL0_DIRECTION_TRANSMIT)
BF_I2C_CTRL0_XFER_COUNT(1)
(reg32_t) &eeprom_command_buffer[3],
(reg32_t)
(BF_APBX_CHn_CMD_XFER_COUNT(3) |
(reg32_t) &eeprom_command_buffer[0],
BF_APBX_CHn_CMD_CMDWORDS(1)
BF_APBX_CHn_CMD_WAIT4ENDCMD(1)|
BF_APBX_CHn_CMD_CHAIN(1)
BV_FLD(APBX_CHn_CMD, COMMAND, DMA_READ)),
BF_APBX_CHn_CMD_CMDWORDS(1)
BF_APBX_CHn_CMD_WAIT4ENDCMD(1)|
BF_APBX_CHn_CMD_CHAIN(1)
BV_FLD(APBX_CHn_CMD, COMMAND, DMA_READ)),
if ((reset_mask & HW_APBX_CTRL0_RD()) == 0)
if (0 == BF_RDn(APBX_CHn_SEMA, I2C_CHANNEL_NUM, PHORE))
if (1 == HW_I2C_CTRL1.MASTER_LOSS_IRQ)
if (1 == HW_I2C_CTRL1.NO_SLAVE_ACK_IRQ)
if (1 == HW_I2C_CTRL1.EARLY_TERM_IRQ)
CMD_ADDR,(reg32_t) I2C_DMA_CMD1);
break;
break;
I2C_DMA_CMD2,
i.MX28 Applications Processor Reference Manual, Rev. 1, 2010
I2C_DMA_CMD1[4] =
|
|
|
|
return 1; // error
return 1; // error
return 1; // error
&0x00ff);
|
|
|
|
|
Freescale Semiconductor, Inc.

Related parts for MCIMX286CVM4B