Change the System and I/O Clock Ratio ................49 6.3.2 Change the External Memory Clock Ratio ................49 Change PLL Frequency......................51 Power Mode ..........................52 Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 1 -...
Page 3
I/O Mode Transmit by Polling FIFO Status ............... 105 12.4.3 DMA Transmitting Mode....................105 12.5 USP Receiving Operation ..................... 107 12.5.1 I/O Mode Receiving by Interrupt ..................107 Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 2 -...
Page 4
I/O Operation ........................145 15.5 DMA Operation ........................147 15.6 Quick Reference ........................149 Host Port Interface ...........................150 16.1 Operation Overview ......................150 16.2 Address Mapping ........................151 Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 3 -...
Page 5
Pixel Clock Divider ......................179 19.6.2 FIFO Request Watermark Control ..................179 19.7 Power Sequence / Back Light Control for LCD Displays............179 Revision History ..........................180 Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 4 -...
Page 6
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE List of Figures Figure 1. Atlas™ Block Diagram ......................9 Figure 2. DSP Byte Select Mode......................22 Figure 3. Data Mapping in 8-bit External Data Bus ................37 Figure 4. Data Mapping in 16-bit External Data Bus ................37 Figure 5.
This document detailed descriptions and examples of programming and developing using the Centrality Communications’ Atlas™ Processor. It is intended for the use of Centrality customers, partners, and other interested parties to gain a detailed understanding of Centrality’s technology and architecture for design purposes.
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 1.2 Referenced Documents The following documents can be obtained from Centrality Communications to enhance the supplement of the Atlas™ Processor. Table 1. Reference Documents File Name Description ARM922T.PDF ARM922T processor core technical reference manual.
• RISC Core Atlas™ has an integrated ARM922T core with the AMBA ASB bus. The RISC acts as a controller, which controls the other functional blocks via writing/reading memory-mapped registers. The RISC accesses external memory via the memory bus and acts as a bus master.
Page 11
All of these interface blocks have the same functionality: they each provide a means to transfer data between Atlas™ and an external device. There are two types of transfer: I/O read/write and DMA. Some blocks only support I/O read/write, such as the Bluetooth and GPS blocks. Some blocks support both I/O read/write and DMA, such as the serial port, CMOS sensor, NAND Flash/Smartmedia, Flash/ROM, SD/MMC and USB interface.
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 1.4 Key Features Unlike other application processors on the market today, the Atlas™ processor provides the following key features integrated on-chip. 240MHz ARM922T RISC core 8KB I-Cache 8KB D-Cache Memory Management Unit...
The RISC Subsystem includes an ARM922T RISC core (with 8KB I-Cache and 8KB D-Cache) and a RISC interface. The RISC interface can translate the ARM922T bus cycles into Atlas™ internal system bus cycles. There are two types of basic bus cycle of ARM922T: I/O cycle and Memory cycle. It’s decided by the address to define if a RISC bus cycle is I/O or Memory cycle.
Page 14
Internal Registers 5000_0000~7FFF_FFFF Reserved 768MB 4800_0000~4FFF_FFFF 128MB DSP Shared Memory 4000_0000~47FF_FFFF Extension Port 128MB 3000_0000~3FFF_FFFF PCMCIA Socket 1 256MB 2000_0000~2FFF_FFFF PCMCIA Socket 0 256MB 0000_0000~1FFF_FFFF Flash/ROM 512MB Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 13 -...
Due to the pipeline nature of the RISC core, after the Boot-up register been set, user CANNOT access the ROM address space at once. It needs to insert at least one NOP between them. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
2.4 Wait State Control Most peripherals in Atlas™ are in I/O clock domain (please refer to the section 6 “Clocks and Power Manager”), while the RISC Subsystem is running at a higher system clock domain. So there is need for inserting wait states when the RISC read those slow I/O devices.
RISCINT_WIDTH = 0x10; • When I/O clock is ¼ of the system clock domain, the write enable pulse should be 4 system clock cycles: RISCINT_WIDTH = 0x30; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 16 -...
When Timeout check is enabled and the device response is longer than the Timeout value, the RISC interface will generate an interrupt to the CPU in RISCINT_TIMEOUT_INT register. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 17 -...
3 DSP Subsystem 3.1 Operation Overview The DSP used in Atlas™ processor acts as a acceleration computational parts for GPS, MP3, Image processing etc. The DSP core is provided by Faraday Technology Corp. and is instruction compatible with ADI’s ADSP2181 except for minor differences.
DSP, for PM, address offset is the same seen by DSP. Address offset is from the beginning of the buffer, so address offset 0 in DMX-swap means address 0x400, address offset 1 means address 0x402 etc. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 20 -...
It has a limitation that DSP has to load data from four-byte boundary. By set BYTE_MODE bit to 1 in register DSP_BYTE_MODE, byte select mode is enabled. Byte select mode use Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
SDRAM, the first transfer passes the end of buffer and the second transfer concatenate the first one from the beginning of the buffer), the second DMA should not discard the first read in data and data in storage registers. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 22 -...
Peripheral can interrupt the DSP, the interrupt are connected to the DSP’s IRQ2 input and can be set to either level trigger or edge trigger. For details of how to operate each peripheral, refer to the programming guide of corresponding peripheral. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 23 -...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 3.5 DSP and RISC Cooperation The DSP acts as an independent unit in the Atlas™ processor. It runs parallel with the RISC. Some communication methods are available between the DSP and the RISC. The DSP and the RISC can interrupt each other.
Page 26
= 0; dm(GEN_REG2_L) = ar; dis sec_reg; rti; Subroutine: /* execute program */ /* when completed return by executing the following sentence */ jump return_addr; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 25 -...
DSP and do a few WORDs of data exchange when the DSP is running. When large amount of data need to be exchanged between the RISC and the DSP, use the DSP’s DMA function Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
The address and meaning of memory mapped registers are totally different from ADSP2181. The description of those registers are listed in “F2016 16-bit DSP Microcomputer specification” and other Atlas™ specified registers are listed in “Atlas™ Developer’s Manual” 3.6.6 Critical path limitation There is critical path in the DSP on following instruction combination: I register read from data memory followed by a data memory access using this I register.
Page 29
The existing of critical path limites program with such instruction combination can not run over 120MHz. Programmer should eleminate critical path instructions by inserting NOP or changing instruction sequence. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 28 -...
4 Dynamic Memory Interface 4.1 Operation Overview Atlas™ supports the SDRAM interface at a maximum frequency of 100 MHz. The SDRAM Interface supports up to four groups of SDRAMs. All the SDRAMs used should be of the same type, operate at the same clock frequency and voltage.
The following sample code is used to enable the SDRAM controller’s control over these pins. RSC_PIN_MUX |= 0x1e0; //use MCKE<2:3>,MCS_B<2:3> as SDRAM pins PWR_PIN_RELEASE = 1; //release power manage pin holding //Configure system clock; … //Configure SDRAM; … Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 30 -...
MEMC_CONFIG<8> = 1 2) MEMC_CONFIG<9> should be written as 1 3) All other register are for test purpose and should be written as 0 For MEMC_SDCFG Register: Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 31 -...
Page 33
If program is booting on static memory interface or NAND flash, the SDRAM can be configured as following. The MEMC_POWER register needs to be programmed to initialize SDRAM. //Configure System clock. … MEMC_SDTIM=0xB85D7222; MEMC_CONFIG=0x200; MEMC_SDCFG=0xc; MEMC_POWER=0x4F; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 32 -...
For the example used previously, the SDRAM should be initialized like following: //Configure System clock. … MEMC_SDTIM=0xB85D7222; MEMC_CONFIG=0x200; MEMC_SDCFG=0xc; PWR_SLEEP_STATUS = 0x8; // clear SDRAM_HOLD bit if wakeup from sleep mode MEMC_POWER=0x4F; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 33 -...
//Change other timing value in MEMC_SDTIM for performance only. … //Change other timing value in MEMC_SDTIM to fit the new system clock. … //Switch clock to new system clock … Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 34 -...
In the previous sample code there are 4 chip-select signals being used. But even if there are only 1, 2 or 3 chip-select signals being used, the code can still be used. The unused chip-select will not affect anything if they are programmed to be GPIO. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 35 -...
Memory Interface. The following table shows the mapping from different internal address to different chip selects. Table 6. Staitic Memory Chip Select Mapping Chip select 0 0x1000_0000~ 0x13FF_FFFF Chip select 1 0x1400_0000 ~ 0x17FF_FFFF Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 36 -...
External Data Bus (16-bit) Figure 4. Data Mapping in 16-bit External Data Bus In Instruction Access Mode any write command from RISC is ignored by the Static Memory Interface. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 37 -...
FlashData = (*((volatile unsigned short *)(0x18000000 + FlashAddress))); // Perform a direct write to offset 0x01 in chip select 1 (*((volatile unsigned short *)(0x18000000 + FlashAddress)))= FlashData ; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 38 -...
User should program ROM_WRITE_CTRL with • TWC= actual write cycle time; • NWC= 1; • ADINT=0; • NSEQ=0; The Interface timing diagram is should in the following figure. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 40 -...
ROM_DMA_IO_CTRL_REG=0x0;//dma, write to static memory , no flush ROM_FIFO_CTRL_REG=0x00; ROM_FIFO_LEVEL_CHK_REG=(0xb);//fifo level check //twc is the actually write cycyle time, user needs to change the vaule to //fit the actual system twc=0xff; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 41 -...
Page 43
ROM_WRITE_SEQ1 with data stored in ROM_WRITE_SEQ1. The last write operation write to current address stored in ROM_START_ADDR with data from FIFO. The address in ROM_START_ADD will increase automatically according to different Interface width. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 42 -...
ROM_CFG_CS01= ROM_CFG_CS01 | 0x10000; ROM_DMA_IO_LEN_REG = 32*2; //16 bit width, Transfer 32 DWORD ROM_START_ADD = = 0x2000000; //start from offset 0 ROM_DMA_IO_CTRL_REG=0x0;//dma, write to static memory , no flush Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 43 -...
Page 45
The Third write operation will read one 32-bit from FIFO, only LSB 28-bit are used as write address. After that it will read another 32-bit from FIFO, only LSB 16/8-bit(depending on interface width) are used as write data. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 44 -...
//16 bit width, Transfer 32 DWORD, both data and address are get from FIFO ROM_DMA_IO_LEN_REG = 32*2*2; ROM_START_ADD = = 0x2000000; //start from offset 0 ROM_DMA_IO_CTRL_REG=0x0;//dma, write to static memory, no flush ROM_FIFO_CTRL_REG=0x00; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 45 -...
Page 47
//twc is the actually write cycyle time, user needs to change the vaule to //fit the actual system twc=0xff; ROM_WRITE_CTRL= (((0)&(0x3))<<12 | ((1)&(0x1))<<11 | ((3)&(0x7))<<8 | (twc)&(0xff)); //start dma ROM_FIFO_OP_REG=0x1; //waiting for done status while( (ROM_INT_STATUS&ROM_INT_MASK_DONE)==0 ); Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 46 -...
Domain. The reason is that the CPU has two clock inputs: one for core clock and the other for bus clock. The bus clock is always the same as Atlas™ system clock (i.e. in System Clock Domain); the core clock is in CPU Clock Domain.
6.2 Change Clock Source The Atlas™ system can be programmed to use either PLL1 or PLL2 as the clock source. In addition, it can also select the oscillator (12MHZ or 32.768KHz) outputs as the clock source. The switching of the clocks can take place in real-time while Atlas™...
MEMC_CFG = 0x300; for (i=1;i<=10;i++); ARM922T has three different clocking modes: Fast Bus mode, Synchronous mode, and Asynchronous mode. Please refer to the ARM922T datasheet for more details. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 49 -...
Page 51
NOTE: To change the external memory clock ratio must be done when program is running either on Flash/ROM or in Instruction Cache. Otherwise, unexpected result may happen. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 50 -...
NOTE: Due to the PLL limitation, the output frequency has to be the multiple of 6 MHz (half of the 12 MHz Crystal input). Or, in another words, the pre-divider (MS<5:0>) has to be set to 1 or 2. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
6.5.1 Normal Mode Normal mode is the normal operating mode of the Atlas™: all power supplies are enabled, all clocks are running, and every on-chip resource is functional. And the CPU runs at the same clock rate as the other part of the system (except for the I/O peripherals).
PWR_EN pin indicating to the external system that the Atlas™ is in sleep mode. Running off the 32.768 kHz Oscillator, the sleep state machine watches for a preprogrammed wake-up event to occur, after which it asserts PWR_EN pin, and steps through an orderly wake-up sequence.
Page 55
While the hardware sleep is for another usage: when the system battery or power source is fail to provide enough current to Atlas™, the Atlas™ will go to sleep mode automatically to save the power consumption. This is done by the BATT_FAULT or VDD_FAULT pin. The power-down sequence is almost the same as the software sleep, except user does not need to set the force sleep bit in PWR_CTRL register.
7 GPIO 7.1 Operation Overview The Generous Purpose Input Output (GPIO) logic of the Atlas™ processor controls 28 pins through the use of 16 registers which control the pin direction (input or output) pin function, pin state (outputs only), pin level detection (inputs only).
=2’b10 on reset). Otherwise those pins are used as GPIO pins. • GPIO<15:8> are shared with the LCD Controller. RSC_PIN_MUX &= 0xfffffffe; //use LDD<8:15> as GPIO<8:15> PWR_PIN_RELEASE = 1; //release power manage pin holding Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 56 -...
GPIO_INT_EN |= 0X01; //enable GPIO interrupt on gpio0 To get the current value of GPIO0, user can access register GPIO_DATA_IN: value = GPIO_DATA_IN & 0x01; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 57 -...
GPIO_OUT_EN |= 0x01; //configure GPIO0 as output If GPIO0 is already set as output, user only need to change GPIO_DATA_OUT to desired value. GPIO_DATA_OUT |= 0x01; //set GPIO0 output value as 1 Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 58 -...
GPIO_INT_LT &= 0xfffffffe; //disable falling-edge on GPIO0 to generate interrupt. GPIO_INT_STATUS &= 0x01; //clear GPIO0 interrupt before enable the interrupt GPIO_INT_EN |= 0X01; //enable GPIO interrupt on gpio0 Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 59 -...
GPIO in sleep mode. In sleep mode the pin sharing of GPIO is not needed, all the pin are controlled by GPIO. The following codes set all the GPIO as input in sleep mode, use GPIO0 high to wake-up the Atlas™. GPIO_SL_VAL=0x0;...
GPIO except for this one. RISC needs to clear this register before it needs to access the corresponding GPIO. GPIO_DSP_EN |= 0x01; // set GPIO0 to be controlled by DSP Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 61 -...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 8 Resource Sharing Controller 8.1 Operation Overview The Resource Sharing Controller (RSC) manages the two major resources of Atlas™: one is the peripheral pin; the other is the DMA channel. Atlas™ Programming Guide...
The DMA channel 6, 7 & 9, 10 are shared between the four Universal Serial Ports and the Audio CODEC. The following table shows the DMA channel multiplex managed by RSC: Table 8. Atlas™ DMA Channel Multiplex USP0 USP1 USP2...
User can switch the pins to the second (or third) function by configuring the RSC register RSC_PIN_MUX. The Atlas™ multiplexed pins managed by the RSC are shown in the next table (the memory interface pin multiplex is not managed by RSC): Table 9.
Page 66
, JTAG, or Scan chain test besides of the functions listed above. Among those functions, the TIC/BIST, JTAG, or Scan chain has the highest priority. When Atlas™ is configured to those special test modes, those pins cannot be used by the normal functions any more.
Normally DMA has a start address and length. When the specified number of data is transferred, the DMA will stop. But there are some applications need to transfer data to a specified memory area repeatedly without stop (like Audio). So Atlas™ DMA Controller has a special loop mode for this type of applications.
Besides of the above register set up, user also needs to set up some peripheral FIFO parameters such Some of these registers have defaults values that can already be used. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
Page 69
DMA_CH4_CTRL = ((BURST<<3) | (DIR<<2) | WIDTH); DMA_CH4_XLEN = XLEN; DMA_CH4_YLEN = YLEN; DMA_CH4_ADDR = SDRAM_ADDR; Except for the loop mode (please refer to section 9.6) Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 68 -...
& 0x04) == DMA_MASK_FROM_SDRAM) bDMAReadDone = 1; The interrupt handling for loop mode DMA is a little bit different. Please refer to section 9.6 for the details. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 69 -...
(Because the system bus does not allow the non-aligned burst transfer) and the bus efficiency will be desperately low. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
9.5 1-D and 2-D DMA The Atlas™ DMA controller supports both 1-D and 2-D DMA. In 2-D DMA, the system memory space is considered as a 2-D layout instead of linear layout. In another word, the system memory is considered as many data lines.
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE DMA X-Length DMA Width Extra data Extra data Figure 10. 2-D DMA Wrap Around (X-Length > Width) Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 72 -...
BUFA until the valid bit of BUFB is set. Here is a simple example showing the loop DMA from SDRAM to Flash Memory: //configure and start dma Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 73 -...
Page 75
// if in loop mode, swap the buffer valid DMA_CH_LOOP_CTRL &= 0xfff0fef; DMA_CH_LOOP_CTRL |= 0x100000; else if (DMA_CH_LOOP_CTRL & 0x100000) { DMA_CH_LOOP_CTRL &= 0xfef0fff; DMA_CH_LOOP_CTRL |= 0x10; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 74 -...
Page 76
To finish a loop DMA, user needs to write the DMA_CH_VALID register. For example, if user wants to stop the DMA channel 4 which is a loop-mode DMA: // stop loop mode DMA DMA_CH_VALID = 0x10; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 75 -...
DMA control registers need to be separated for RISC and DSP. Those registers include: • DMA Width Registers (DMA_WIDTH0, 1, 2, 3) • DMA Interrupt Enable Register (DMA_INT_EN) • DMA Loop Control Register (DMA_CH_LOOP_CTRL) Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 76 -...
PCMCIA interface. The pin_mux programming can access the following registers: 1. PWR_CLK_EN, see Atlas developer’s manual section 5.6.3 for details register description. Set bit 14 of PWR_CLK_EN to be 1’b1.
Extension registers. Within this Extension registers is an Extended Index register and Extended Data register that provides access to more registers. The registers accessed through extended index and data registers are thus double indexed. For M6730 its base address in Atlas is fixed to be 0x2000_0000, the address for index register in Atlas is 0x2000_0000, for data register it’s 0x2000_0001.
Page 81
*((volatile unsigned short *) PCMCIA_IO_PHYSICAL_BASE) = (unsigned short)value_short; *((volatile unsigned char *) PCMCIA_IO_PHYSICAL_BASE ) = (unsigned char) 0x2F; value_short = *((volatile unsigned short *) PCMCIA_IO_PHYSICAL_BASE); register_data = (value_short & 0xFF00) >>8; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 80 -...
GPIO or extended GPIO to control the power supply logic and switch the power on /off. After PCMCIA I/F detects the PC Card insertion, the power logic must be initialized before the other logic Since the auto power scheme in M6730 doesn’t work in Atlas PCMCIA interface, the power logic register programming should follow the steps below: 1.1 After the PCMCIA card insertion is detected, CPU reads External Data Register (extended index...
Address register, the address [23:12] is compared with Start Address Register and End Address Register, if the access address is within the range of programmed memory window, M6730 will respond to the RISC access. Also M6730 will convert the Atlas address into physical PC card address. The...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 10.6 I/O Window Configuration There are two I/O windows in PCMCIA interface. The PCMCIA I/O space in Atlas is 64K and ranges from 0x2000_0000 to 0x2400_0000. Before the Atlas PCMCIA I/O address reaches to M6730 megacell, the Atlas address 0x2xxx_xxxx is converted to M6730 I/O addresss 0x0xxx_xxxx.
If N is the programmed value in recovery timer register, T is PCMCIA I/F recovery PCMCIA internal clock period (PCMCIA I/F internal clock is always equal to Atlas I/O clock), the recovery time is: = 2* (N +1) * T recovery...
Page 86
Status Change register indicates the source of a management interrupt generated by the M6730. For the management interrupts to be generated, the corresponding enables should be set in the Management Interrupt Configuration register. So is the other management interrupt. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 85 -...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 10.9 Card Interrupt Operation The Socket or Card interrupt is initiated by the I/O type PC card activating the rdy/nireq signal. In Atlas we assign IRQ9 for M6730 Card interrupt and only the external signaling mode is supported.The card interrupt is only valid for I/O type PC card.
4. Configure one memory window to be attribute memory window, the memory space is for external I/O device. 5. Select the timer for attribute memory window. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 87 -...
I/Odevice in fixed-latency or variable latency mode. But the DMA mode is realizeded through Atlas internal bus protocol, external glue logic is needed to implement the DMA data transfer. Here only the I/O mode operation is described. The pin of extension port is muxed with PCMCIA and host port.
The pin_mux programming can access the following registers: PWR_CLK_EN, see Atlas developer’s manual section 5.6.3 for details register description. Set bit 14 of PWR_CLK_EN to be 1’b1.
The setup register controls how many cycles there are from ext_sel_b assertion to control signals (ext_rd_b or ext_wt_b) assertion in terms of Atlas I/O clock. The recovery timers controls the clock cycles from control signal de-assertion to ext_sel_b (and address) de-assertion. The setup and recovery timer registers are valid for both fixed-latency and variable latency mode.
2. Configure EXT_RISC_CTRL register to enable EXT_EN, RISC_EN, set WAIT_MODE to be internal wait mode. EXT_RISC_CTRL = 0x3; 3. Programe EXT_TIMER1 and EXT_TIMER2 register according to external device AC specification. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 91 -...
2. Configure EXT_RISC_CTRL register to enable EXT_EN, RISC_EN, set WAIT_MODE to be internal wait mode. EXT_RISC_CTRL = 0x13; 3. Programe EXT_TIMER2 register to set setup and recovery time according to external device AC specification. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 92 -...
2. Configure EXT_DSP_CTRL register to enable EXT_EN, DSP_EN, set WAIT_MODE to be internal wait state. 3. If necessary, configure EXT_DSP_HI_ADDR to extend the high 8-bit address. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 93 -...
In some application, USP must be configure to several kind of serial bus, so before the USP is used, it need to be reconfigured to the corresponding mode. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 94 -...
Before USP0 work, clear all pending interrupts USP0_INT_STATUS = USP_INT_MASK_ALL; If the DMA is used for data transferring, software must enable the DMA controller PWR_CLK_EN | = DMA_EN; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 95 -...
The USP initialization has something to do with the work mode of it. Before initializing the USP registers, please read the relative section in the Atlas™ Developers Manual to make sure how to describe the frame characteristics all the USP. The configuration procedure has been described in the Chapter 6.5.7 USP Frame Configuration detailedly.
Page 98
3. RX data delay length after RFS/TFS is valid or frame starts 4. RX data shifter length when receiving All the characteristics above are mapped to by the fowllowing register bits. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 97 -...
Page 99
Then you must set the FIFO_WIDTH bit in the (TX_FIFO/RX_FIFO) control register to decide exchange a byte/word/dowrd data with the FIFO. If the DMA mode is select, FIFO_WIDTH must be set to 0x2. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 98 -...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 12.4 USP Transmitting Operation There are three methods for the Atlas™ to access the TX_FIFO and transmit the data out, please refer the chapter 6.5.5.2 of Developers Manual, for detailed information of method division and description.
Page 107
DMA transmitting finishes. 10. If software needs to start another DMA transmitting operation, it can return to step 7. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 106 -...
Software can use not only the EMPTY flag, but also the FULL, or one capacity threshold of RX_FIFO to decide whether to read new data from RX_FIFO. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 107 -...
DMA receiving. 11. If software needs to start another DMA transmitting operation, it can return to step 7. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 108 -...
Data Register, and if the pin is set to input mode, the value of pin is reflected on the corresponding bit of USP Pin I/O Data Register. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 109 -...
Page 111
The following example is set the RXD pin of USP0 to input mode After the USP is reset and read value of RXD pin to a integer of rfs_in . … USP_MODE1 | = 0x42000; … rfs_in = USP_PIN_IO_DATA & 0x1; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 110 -...
Reinitialize the USP to second mode USP transmit/receive data under the second work mode After USP finishes the data transfer, disable the USP_EN bit Reinitialize the USP to three mode … Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 111 -...
SIB_TXFIFO_OP = 0x1; //reset the FIFO SIB_RXFIFO_OP = 0x1; //reset the FIFO SIB_TXFIFO_OP = 0x2; //start the FIFO SIB_RXFIFO_OP = 0x2; //start the FIFO //USP3 FIFO initialize Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 112 -...
Page 114
//reset the FIFO USP3_RXFIFO_OP = 0x1; //reset the FIFO USP3_TXFIFO_OP = 0x2; //start the FIFO USP3_RXFIFO_OP = 0x2; //start the FIFO //SIB bus enable SIB_ENA = SIB_PORT_ENABLE; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 113 -...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 12.10 SIB Operations After the SIB module is initialized, Atlas™ can write or read the register data of the external SIB device, UCB1200/1300 etc. The interrupt of the UCB1200 can be connected to the GPIO of Atlas™.
SIB bus to stop the telecom data transfer. Audio data can select either SIB FIFO or USP3 FIFO as the data buffer, and then telecom data will use another one. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 115 -...
AC’97 audio CODEC initialization AC’97 register operation AC’97 record AC’97 playback 3. I2S CODEC configuration I2S dual-channel record and playback I2S single channel record and playback L3 mode implementation Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 116 -...
Before configure the AC’97 or I2S interface, use needs to initialize the audio CODEC controller first. The audio CODEC controller initialization includes: 1. Program PWR_CLK_EN to provide clock to Atlas audio CODEC interface and DMA interface (the audio data transfer can only be in DMA mode), and then give a software reset to audio CODEC interface;...
After AC’97 CODEC is powered up, Atlas needs to reset AC’97 audio CODEC by pulling down reset pin of AC’97 audio CODEC for about 80ms. The hardware reset can be realized by Atlas GPIO or extended GPIO. Wait for another 80ms;...
Page 120
DMA x-length will be 0, and Y-length must be a non-zero value. Enable DMA interrupt; (Please refer to DMA interface for more information) Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 119 -...
Page 121
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 5) Initialize Atlas AC’97 controller interface; Reset and initialize audio record FIFO; Program CODEC_SHARE register to enable AC’97 record channel; The play channel may also be enabled for AC’97 codec register control.
Page 122
5) Instruct DMA audio play channel to run by writing DMA channel 7 start address register. 6) Start audio playback FIFO; Set AC97_START bit to start AC’97 interface CODEC_TX_FIFO_OP_REG = 0x01; CODEC_AC97_CTRL |= AC97_START; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 121 -...
The following steps describe the procedures necessary for I2S audio record program 1) Atlas audio CODEC interface initialization and select the I2S interface; 2) Intialise Atlas I2S CODEC ctroller a) Enable Atlas b) Program CODEC_UDA_CONTROL to set I2S BIT_CLK frequency...
Page 124
DMA x-length will be 0, and Y-length must be a non-zero value. DMA interrupt enable (Please refer to DMA interface for more information) 4) Initialize external I2S Codec through L3 interface by programming Atlas GPIO Reset I2S Codec; Program I2S Codec control register to set gain etc.
14 Camera Interface 14.1 Operation Overview In sensor control interface, support following operation mode: Slave mode, external sensor provide VSYNC, HSYNC and PIXCLK to the Atlas™ processor. Master mode, Atlas™ processor provides VSYNC, HSYNC and PIXCLK signal to the external sensor.
(iStatus & 0x00008000) // Disable the camera interrupt INT_RISC_MASK &= (~0x00008000); iStatus = CAM_INT_CTRL; // Check which interrupt happens if (iStatus & 0x01) // Clear the interrupt Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 125 -...
Page 127
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE CAM_INT_CTRL = 0x01; // Add similar code here to check other interrupts … // Enable the camera interrupt. INT_RISC_MASK |= 0x00008000; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 126 -...
// Check which interrupt happens if (iStatus & 0x04) // Clear the interrupt. DMA_CH_INT = 0x04; // Set a flag here such as following code. bDMADone = 1; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 127 -...
DMA_CH2_CTRL |= 0x0000; //normal DMA mode DMA_CH2_CTRL |= 0x0008; //burst DMA mode // Start dma channel2 operation, this data must be the DWORD address. DMA_CH2_ADDR = 0x20000/4; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 128 -...
Sensor Clock Operation 14.4.2.1 Step-by-step register programming Sensor clock can be provided by the CKO of Atlas™-1 except the external oscillator. If using CKO, following register must be configured. Set the PWR_PLL2_CONFIG to select a need frequency. Turn on the PLL2.
In this mode, PIXEL clock, HSYNC and VSYNC are generated by external sensor, so set bit8,9,10 of register CAM_CTRL to 0. Capture the video image as 14.4.3 list. 14.4.4.2 Common examples of use Following example code are based on following conditions: Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 130 -...
DMA_CH2_YLEN = 480-1; // Set the burst DMA mode. DMA_CH2_CTRL = 0x0008; // Start the DMA operation. DMA_CH2_ADDR = 0x20000/4; // Set the active region of the image. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 131 -...
CAM_CTRL register. It must be sure that IOCLK frequency is at least 6 multiple of PIXCLK. Capture the video image as 14.4.3 list. 14.4.7.1 Common examples of use Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 132 -...
// Set CAM_CTRL register to enable the PIXCLK, HSYNC and VSYNC output. CAM_CTRL |= 0x0700; // Set the CAM_DMA_LEN to 640*480*2; CAM_DMA_LEN = 640*480*2; // Reset the FIFO Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 133 -...
Page 135
CAM_YINT = 480-1; CAM_START = 0x00000000; // Start the capture operation CAM_FIFO_OP |= 0x01; After receiving DMA interrupt, it means the receive picture has stored to SDRAM. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 134 -...
If success interrupt happens, clear this interrupt and transmission is ok. Otherwise, if fail interrupt happens, you must check your hardware connection and try it again. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 135 -...
If success interrupt happens, Read data from CAM_I2C_MASTER_IN. Bit0—bit15 is the valid byte. Clear I C master success interrupt bit. If fail_interrupt happens, you must check your hardware connection and try it again. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 136 -...
CAM_I2C_SALVE_CTRL if bit8 of this register equals to 0. 14.6.2.2 Common examples of use Following example code are based on following conditions: Process register0x0b, suppose its default value = 0x7788. Slave ID of Atlas -1 is 7’h4C. // Set the slave ID to I C slave unit.
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 15 USB 1.1 Device Interface 15.1 Operation Overview The Atlas™ USB device is USB version 1.1 compatible. Knowledge of USB standard is helpful to developers. The specification is available at http://www.usb.org. Atlas™ Programming Guide...
Page 141
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 140 -...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 15.2 Initialization The USB device register space in Atlas™ is from 0x80040000. Offset 0x0~0x7c are USB core registers; 0x80~0x90 are USB interface registers; after 0xf00 are DMA FIFO control registers. Please refer to Atlas™...
Page 143
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 142 -...
Device generates an EP0 TX Interrupt. • Select endpoint. USB_EPINDX = ep_num; • Flush transmition FIFO. (if need) USB_EP0CTL |= 0x10; • Write the data into USB TX data register. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 143 -...
Page 145
USB_EPTXDAT = data; • Set EP0 control register bit2. USB_EP0CTL |= 0x20; • Clears the EP0 TX interrupt bit and returns from the interrupt service routine. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 144 -...
Get byte count for the data packet. pkt_len = USB_EPRXCNTL; • Read data from USB. data = USB_EPRXDAT; • Set RX data valid bit after read all data. USB_EPRXCTL |= USB_EP_TX_RX_VALID; Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 145 -...
Page 147
Clears the EP1~3 RX interrupt bit and returns from the interrupt service routine. For isochronous transfer, the sequence sames to bulk transfer except the interrupt event is SOF interrupt Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 146 -...
USB_CTRL = (dma_len << 8) | 0x06;(if OUT Token) • Set USB BULK mode registers (if USB data flow is BULK). USB_BULK_DMA = 0x01; • Wait until DMA finishes (interrupt from DMA controller) Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 147 -...
Page 149
Clears the SOF interrupt bit and returns from the interrupt service routine. (if USB data flow is ISO) For ISO transfer, length of each DMA operation cannot exceed 256 bytes. Please refer to charpter 9 for details of DMA operation. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 148 -...
8-byte 8-byte Interrupt or bulk or isochronous 16-byte 32-byte x2 Interrupt or bulk or isochronous 64-byte 128-byte x2 Interrupt or bulk or isochronous 256-byte 512-byte x2 Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 149 -...
16.1 Operation Overview The Host Port is used when Atlas™ acts as a PCMCIA slave to an external host (such as a PDA or Notebook PC). The Host Port operations are compatible with PC Card Standard 2.1. And the Host Port has some registers that can be accessed by both Atlas™...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 16.2 Address Mapping The Host port register space in Atlas™ is from 0x8009_0000. Offset 0x0~0x3FF are CIS space; 0x400~0x53F are Function Configuration Registers; after 0x540 are other Host port control registers. For more details, please refer to the related section in Atlas™...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 16.3 Initialization The initialization has two parts: one for the Atlas™, the other for the external PCMCIA host. For Atlas™, the initialization sequence is: • Enable Host Port clock and pins #define PWRCLK_HOST_EN 0x00002000 PWR_PIN_RELEASE = 1;...
Page 155
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE For the external PCMCIA host, please refer to the PCMCIA host’s spec. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 154 -...
There is a 64x8 FIFO SRAM in the Host Port. All the data transfer are done throught this FIFO. The FIFO can be accessed by either RISC or DMA Controller (please refer to the FIFO section in Atlas™ Developer’s Manual). If RISC accesses the FIFO, the data transfer is in I/O mode; if the DMA Controller accesses the FIFO, then the data transfer is in DMA mode.
Page 157
Wait until data transfer finishes (HP_PCMCIA_STATUS) while (HP_PCMCIA_STATUS & 0x1); • Reset the FIFO controller HP_FIFO_OP = 0x02 ; After that, the Host port is ready for the next DMA trasnfer. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 156 -...
The Atlas™ Host Port can communicate with the external host by two ways: polling and interrupt. Because some registers in the Host Port can be access by both Atlas™ and external host, these registers can be used for handshaking between the Atlas™ Host Port and the external host. The external host can poll the specific register bit of these registers to see if there is any change.
SD interface registers. The SD interface accomplish the command by writing the data in registers, and get the responding and status by reading data from registers. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
SD host internal registers, the SD interface put the SDREG_RDY in the bit 16 of IO data. So user can distinguish the success reading by the bit 16 of IO data. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
If SD_DMA_IO_CTRL is 0x01, the SD interface is in IO writing mode. Program can write data to SD Card by SD_DATA_BUFFERS. If SD_DMA_IO_CTRL is 0x03, the SD interface is in IO reading mode. Program can read data from SD Card by SD_DATA_BUFFERS. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 160 -...
Then the SD interface will read or write data between DMA and FIFO. When the DMA finish the data transfer, the bit 0 of SD_INT_STATUS will be set 1. The program will set the bit 0 of SD_DMA_IO_CTRL for choosing IO mode. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 161 -...
90M. So the SD_CLK_RATE register must be set to provide the different devision of IO clock to work with the SD card. If the program wants to use the interrupt mode, the SD_INT_CNTL and the SD_INTERRUPT_MASK will be set correct value. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 162 -...
After the CMD_DAT_CONT register is written, the application is required not to change the set of registers until the status register indicates that the command response has finished and the response is in the response FIFO for the application to read. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 163 -...
After the application read the response from the response FIFO registers, it must wait for the DATA_TRAN_DONE signal in the status register, and then reads the data transfer FIFO buffer. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
BUF_RDY register. After the adapter from the card has received the last block, the adapter stops the clock. After the last data block is received, the application sends the stop transmission command. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
Before the last block, the application informs the adapter that the next block is the last block in the BUF_RDY register. After the adapter from the card has received the last block, the adapter stops the clock. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 166 -...
18 Nand Flash Memory Interface 18.1 Operation Overview The Atlas™ Nand flash controller support five types of data transfer: DMA read, DMA write, RISC read data from FIFO, RISC write data to FIFO, RISC directly read data from Nand flash controller’s data register.
1. Set DMA_IO_CTRL_REG to 5’b00110 for DMA read or 5’b00100 for DMA write. 2. Write LOW_ADDRESS_REG and HIGH_ADDRESS_REG according to the address you want to read. 3. Write DMA_IO_LEN_REG register and FIFO_LEVEL_CHK_REG register. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 168 -...
Nand Flash card is. Software can write ADD_NUM_REG register to charge this case, but this step will have no influence on reading performance. Following is structure diagram of Nand boot. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 170 -...
When RISC boots up, it shadows Nand flash memory space to 0, read code directly from Nand flash. In this stage, RISC performs all the initialization required before branching to the main C application code. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE...
There is 2 bytes in the page spare area to indicate the next block location, according this information read all the “NK.BIN” to SDRAM, then parse it. For detail Nand Boot specifacation, please read Nand Boot software document. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 172 -...
For example, original address is data<31:0>, software driver need write data<31:9> and data<7:0> to LOW_ADDRESS_REG. HIGH_ADDRESS_REG is needed only in SAMSUNG Nand Flash more than 256MB. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 173 -...
**Preliminary and Confidential under NDA, DO NOT DISTRIBUTE 19 LCD Controller Interface 19.1 Operation Overview The Atlas™ graphic LCD controller is used for applications like: GPS Navigation/Telematics systems, PDAs and Smartphones. The Atlas™ LCD Controller supports two types of displays: •...
Page 176
Frame Valid bit after the DMA starts. For LCD controller interrupt, there are two levels of interrupts (one is in the level of Atlas™-1Interrupt Controller, the other is in the level of LCD controller). To enable the LCD controller interrupts, both the two levels of interrupts must be enabled.
Single DMA can be used to load frame data only when the frame picture is updated (for example, when Atlas™-1 is connected with some Hitachi LCD modules such as TX06D12VM1CAA). As fewer data are loaded, it can save the bus bandwidth and the power a lot.
STN displays. For 16bit per pixel color mode, the image data bypass the color palette, and directly output to LCD pins, thus the palette needn’t be configured. Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 177 -...
19.7 Power Sequence / Back Light Control for LCD Displays Many LCD panels need proper power sequence for normal display. In Atlas™-1, we can use some GPIOs or external logic to implement the power sequence. Generally, if two GPIOs are required (named as ENV1 and ENV2), in panel power-up sequence, ENV1 is asserted first, and ENV2 is asserted last, while in panel power-down sequence, ENV2 is de-asserted first, and ENV1 is de-asserted last.
Interface, Memory Interface, and GPIO Mo and Qingyi Sheng 4/15/03 Added more details for LCD controller Hongyu Zhang, Xiaoyi and NAND Flash controller Qin, and Tiefeng Liu Atlas™ Programming Guide **Preliminary and Confidential under NDA, DO NOT DISTRIBUTE - 180 -...