S3C44B0X寄存器描述

2007-12-25 09:06:08

字体变小 字体变大
三星的S3C44B0X 16/32位RISC处理器被设计来为手持设备等提供一个低成本高性能的方案。
S3C44B0X 提供以下配置:2.5V ARM7TDMI 内核带有8Kcache ;可选的internal SRAM;LCD Controller(最大支持256色STN,使用LCD专用DMA);2-ch UART with handshake(IrDA1.0, 16-byte FIFO) / 1-ch SIO; 2-ch general DMAs / 2-ch peripheral DMAs with external request pins; External memory controller (chip select logic, FP/ EDO/SDRAM controller); 5-ch PWM timers & 1-ch internal timer;Watch Dog Timer;71 general purpose I/O ports / 8-ch external interrupt source; RTC with calendar function; 8-ch 10-bit ADC; 1-ch multi-master IIC-BUS controller; 1-ch IIS-BUS controller; Sync. SIO interface and On-chip clock generator with PLL.。
S3C44B0X采用一种新的三星ARM CPU嵌入总线结构-SAMBA2,最大达66MHZ。
电源管理支持:Normal, Slow, Idle, and Stop mode。
系统管理功能:
1 Little/Big endian support.
2 Address space: 32Mbytes per each bank. (Total 256Mbyte)
3 Supports programmable 8/16/32-bit data bus width for each bank.
4 Fixed bank start address and programmable bank size for 7 banks.
5 . 8 memory banks.
- 6 memory banks for ROM, SRAM etc.
- 2 memory banks for ROM/SRAM/DRAM(Fast Page, EDO, and Synchronous DRAM)
6. Fully Programmable access cycles for all memory banks.
7 Supports external wait signal to expend the bus cycle.
8. Supports self-refresh mode in DRAM/SDRAM for power-down.
9. Supports asymmetric/symmetric address of DRAM.
Cache 和内部存储器功能:
&S226; 4-way set associative ID(Unified)-cache with 8Kbyte.
&S226; The 0/4/8 Kbytes internal SRAM using unused cache memory.
&S226; Pseudo LRU(Least Recently Used) Replace Algorithm.
&S226; Write through policy to maintain the coherence between main memory and cache content.
&S226; Write buffer with four depth.
&S226; Request data first fill technique when cache miss occurs.
时钟和电源管理
&S226; Low power
&S226; The on-chip PLL makes the clock for operating MCU at maximum 66MHz.
&S226; Clock can be fed selectively to each function block by software.
&S226; Power mode: Normal, Slow, Idle and Stop mode.
Normal mode: Normal operating mode.
Slow mode: Low frequency clock without PLL
Idle mode: Stop the clock for only CPU
Stop mode: All clocks are stopped
&S226; Wake up by EINT[7:0] or RTC alarm interrupt from
idle mode.
中断控制器
&S226; 30 Interrupt sources( Watch-dog timer, 6 Timer, 6 UART, 8 External interrupts, 4 DMA , 2 RTC, 1 ADC, 1 IIC, 1 SIO )
&S226; Vectored IRQ interrupt mode to reduce interrupt latency.
&S226; Level/edge mode on the external interrupt sources
&S226; Programmable polarity of edge and level
&S226; Supports FIQ (Fast Interrupt request) for very urgent interrupt request
定时器功能
&S226; 5-ch 16-bit Timer with PWM / 1-ch 16-bit internal timer with DMA-based or interrupt-based
operation
&S226; Programmable duty cycle, frequency, and polarity
&S226; Dead-zone generation.
&S226; Supports external clock source.
RTC 功能:
&S226; Full clock feature: msec, sec, min, hour, day,week, month, year.
&S226; 32.768 KHz operation.
&S226; Alarm interrupt for CPU wake-up.
&S226; Time tick interrupt
通用输入输出口功能:
&S226; 8 external interrupt ports
&S226; 71 multiplexed input/output ports
UART 功能:
&S226; 2-channel UART with DMA-based or interrupt-based operation
&S226; Supports 5-bit, 6-bit, 7-bit, or 8-bit serial data transmit/receive
&S226; Supports H/W handshaking during transmit/receive
&S226; Programmable baud rate
&S226; Supports IrDA 1.0 (115.2kbps)
&S226; Loop back mode for testing
&S226; Each channel have two internal 32-byte FIFO for Rx and Tx.
DMA控制器功能:
&S226; 2 channel general purpose Direct Memory Access controller without CPU intervention.
&S226; 2 channel Bridge DMA (peripheral DMA) controller.
&S226; Support IO to memory, memory to IO, IO to IO with the Bridge DMA which has 6 type's DMA requestor: Software, 4 internal function blocks (UART, SIO, Timer, IIS), and External pins.
&S226; Programmable priority order between DMAs (fixed or round-robin mode)
&S226; Burst transfer mode to enhance the transfer rate on the FPDRAM, EDODRAM and SDRAM.
&S226; Supports fly-by mode on the memory to external device and external device to memory t ransfer mode
A/D 转换器:
&S226; 8-ch multiplexed ADC.
&S226; Max. 100KSPS/10-bit.
LCD控制器:
&S226; Supports color/monochrome/gray LCD panel
&S226; Supports single scan and dual scan displays
&S226; Supports virtual screen function
&S226; System memory is used as display memory
&S226; Dedicated DMA for fetching image data from system memory
&S226; Programmable screen size
&S226; Gray level: 16 gray levels
&S226; 256 Color levels
看门狗定时器:
&S226; 16-bit Watchdog Timer
&S226; Interrupt request or system reset at time-out
IIC-BUS 接口
&S226; 1-ch Multi-Master IIC-Bus with interrupt-based operation.
&S226; Serial, 8-bit oriented, bi-directional data transfers can be made at up to 100 Kbit/s in the standard mode or up to 400 Kbit/s in the fast mode.
IIS-BUS接口
&S226; 1-ch IIS-bus for audio interface with DMA-based operation.
&S226; Serial, 8/16bit per channel data transfers
&S226; Supports MSB-justified data format
SIO (同步串口):
&S226; 1-ch SIO with DMA-based or interrupt –based operation.
&S226; Programmable baud rates.
&S226; Supports serial data transmit/receive operations 8-bit in SIO.
操作电压范围:
&S226; 核电压: 2.5V I/O电压: 3.0 V to 3.6 V
工作频率:
&S226; Up to 66 MHz
封装:
&S226; 160 LQFP / 160 FBGA
2 管脚描述
om[1:0]: 输入om[1:0]设置S3C44B0X在测试模式和确定nGCS0的总线宽度,逻辑电平在复位期间由这些管脚的上拉下拉电阻确定.
00:8-bit 01:16-bit 10:32-bit 11:Test mode
ADDR[24:0] 输出: 地址总线输出相应段的存储器地址.
DATA[31:0] 输入输出:数据总线,总线宽度可编程为8/16/32 位
nGCS[7:0] 输出:芯片选择,当存储器地址在相应段的地址区域时被激活.存取周期和段尺寸可编程.
nWE 输出:写允许信号,指示当前的总线周期为写周期.
nWBE[3:0] 输出: 写字节允许信号
nBE[3:0] 输出:在使用SRAM情况下字节允许信号.
nOE输出:读允许信号,指示当前的总线周期为读周期.
nXBREQ 输入: nXBREQ 总线控制请求信号,允许另一个总线控制器请求控制本地总线,nXBACK信号激活指示已经得到总线控制权。
nXBACK 输出:总线应答信号。
nWAIT 输入:nWAIT请求延长当前的总线周期,只要nWAIT为低,当前的总线周期不能完成。
ENDIAN 输入:它确定数据类型是little endian还是big endian,逻辑电平在复位期间由该管脚的上拉下拉电阻确定.
0:little endian 1:big endian
nRAS[1:0] 输出:行地址选通信号。
nCAS[3:0] 输出: 列地址选通信号。
nSRAS输出:SDRAM行地址选通信号。
nSCAS输出:SDRAM列地址选通信号。
nSCS[1:0] 输出:SDRAM芯片选择信号。
DQM[3:0] 输出:SDRAM数据屏蔽信号。
SCLK输出:SDRAM时钟信号。
SCKE输出:SDRAM时钟允许信号。
VD[7:0]输出:LCD数据线,在驱动4位双扫描的LCD时,VD[3:0]为上部显示区数据,VD[7:4]为下部显示区数据。
VFRAME输出:LCD场信号,指示一帧的开始,在开始的第一行有效。
VM输出:VM极性变换信号,变化LCD行场扫描电压的极性,可以每帧或可编程多少个VLINE信号打开。
VLINE输出:LCD行信号,在一行数据左移进LCD驱动器后有效。
VCLK输出:LCD点时钟信号,数据在VCLK的上升沿发送,在下降沿被LCD驱动器采样。
TOUT[4:0]输出:定时器输出信号。
TCLK输入:外部时钟信号输入。
EINT[7:0]输入:外部中断请求信号。
nXDREQ[1:0]输入:外部DMA请求信号。
nXDACK[1:0]输出:外部DMA应答信号。
RxD[1:0]输入:UART接收数据输入线。
TxD[1:0]输出:UART发送数据线。
nCTS[1:0]输入:UART清除发送输入信号。
nRTS[1:0]输出:UART请求发送输出信号。
IICSDA输入输出:IIC总线数据线。
IICSCL输入输出:IIC总线时钟线。
IISLRCK输入输出:IIS总线通道时钟选择信号线。
IISDO输出:IIS总线串行数据输出信号。
IISDI输入:IIS总线串行数据输入信号。
IISCLK输入输出:IIS总线串行时钟。
CODECLK输出:CODEC系统时钟。
SIORXD输入:SIO接收数据输入线。
SIOTXD输出:SIO发送数据线。
SIOCK输入输出:SIO时钟信号。
SIORDY输入输出:当SIO的DMA完成SIO操作时的握手信号。
AIN[7:0] : ADC模拟信号输入
AREFT输入:ADC顶参考电压输入。
AREFB输入:ADC底参考电压输入。
AVCOM输入:ADC公共参考电压输入。
P[70:0]输入输出:通用I/O口(一些口只有输出模式)。
nRESET:复位信号,nRESET挂起程序,放S3C44B0X进复位状态。在电源打开已经稳定时,nRESET必须保持低电平至少4个MCLK周期。
OM[3:2]输入:OM[3:2]确定时钟模式。
00 = Crystal(XTAL0,EXTAL0), PLL on 01 = EXTCLK, PLL on
10, 11 = Chip test mode.
EXTCLK输入:当OM[3:2]选择外部时钟时的外部时钟输入信号线,不用时必须接高(3.3V).
XTAL0模拟输入:系统时钟内部振荡线路的晶体输入脚。不用时必须接高(3.3V).
EXTAL0模拟输出:系统时钟内部振荡线路的晶体输出脚,它是XTAL0的反转输出信号。不用时必须悬空。
PLLCAP模拟输入:接系统时钟的环路滤波电容(700PF)。
XTAL1模拟输入:RTC时钟的晶体输入脚。
EXTAL1模拟输出:RTC时钟的晶体输出脚。它是XTAL1的反转输出信号。
CLKout输出:时钟输出信号
nTRST输入:TAP控制器复位信号,nTRST在TAP启动时复位TAP控制器。若使用debugger,必须连接一个10K上拉电阻,否则nTRST必须为低电平。
TMS输入:TAP控制器模式选择信号,控制TAP控制器的状态次序,必须连接一个10K上拉电阻。
TCK输入:TAP控制器时钟信号,提供JTAG逻辑的时钟信号源,必须连接一个10K上拉电阻。
TDI输入:TAP控制器数据输入信号,是测试指令和数据的串行输入脚,必须连接一个10K上拉电阻。
TDO输出:TAP控制器数据输出信号,是测试指令和数据的串行输出脚。
VDD :S3C44B0X内核逻辑电压(2.5V)
VSS: S3C44B0X内核逻辑地.
VDDIO: S3C44B0X I/O口电源(3.3V).
VSSIO: S3C44B0X I/O地.
RTCVDD:RTC电压(2.5V或3V,不支持3.3V).
VDDADC:ADC电压(2.5V).
VSSADC:ADC地.
3 指令集
4 存储管理
1 BWSCON 0x01C80000 R/W 总线宽度与等待状态控制寄存器初始值为0
位名称BIT 功能
ST7 31 该位确定BANK7上的SRAM 是否使用UB/LB
0- 不使用(PIN[14:11] 作为nWBE[3:0])
1- 使用(PIN[14:11] 作为nBE[3:0])
WS7 30 该位确定BANK7上的SRAM存储器的等待状态
0- WAIT disable 1 = WAIT enable
DW7 [29:28] 该两位确定BANK7的数据总县宽度
00 = 8-bit 01 = 16-bit, 10 = 32-bit
ST6 27 该位确定BANK6上的SRAM 是否使用UB/LB
2- 不使用(PIN[14:11] 作为nWBE[3:0])
3- 使用(PIN[14:11] 作为nBE[3:0])
WS6 26 该位确定BANK6上的SRAM存储器的等待状态
0- WAIT disable 1 = WAIT enable
DW6 [25:24] 该两位确定BANK6的数据总县宽度
00 = 8-bit 01 = 16-bit, 10 = 32-bit
ST5 23 该位确定BANK5上的SRAM 是否使用UB/LB
4- 不使用(PIN[14:11] 作为nWBE[3:0])
5- 使用(PIN[14:11] 作为nBE[3:0])
WS5 22 该位确定BANK5上的存储器的等待状态
0- WAIT disable 1 = WAIT enable
DW5 [21:20] 该两位确定BANK5的数据总县宽度
00 = 8-bit 01 = 16-bit, 10 = 32-bit
ST4 19 该位确定BANK4上的SRAM 是否使用UB/LB
6- 不使用(PIN[14:11] 作为nWBE[3:0])
7- 使用(PIN[14:11] 作为nBE[3:0])
WS4 18 该位确定BANK4上的存储器的等待状态
0- WAIT disable 1 = WAIT enable
DW4 [17:16] 该两位确定BANK4的数据总县宽度
00 = 8-bit 01 = 16-bit, 10 = 32-bit
ST3 15 该位确定BANK3上的SRAM 是否使用UB/LB
8- 不使用(PIN[14:11] 作为nWBE[3:0])
9- 使用(PIN[14:11] 作为nBE[3:0])
WS3 14 该位确定BANK3上的存储器的等待状态
0- WAIT disable 1 = WAIT enable
DW3 [13:12] 该两位确定BANK3的数据总县宽度
00 = 8-bit 01 = 16-bit, 10 = 32-bit
ST2 11 该位确定BANK2上的SRAM 是否使用UB/LB
10- 不使用(PIN[14:11] 作为nWBE[3:0])
11- 使用(PIN[14:11] 作为nBE[3:0])
WS2 10 该位确定BANK2上的存储器的等待状态
0- WAIT disable 1 = WAIT enable
DW2 [9:8] 该两位确定BANK2的数据总县宽度
00 = 8-bit 01 = 16-bit, 10 = 32-bit
ST1 7 该位确定BANK1上的SRAM 是否使用UB/LB
12- 不使用(PIN[14:11] 作为nWBE[3:0])
13- 使用(PIN[14:11] 作为nBE[3:0])
WS1 6 该位确定BANK1上的存储器的等待状态
0- WAIT disable 1 = WAIT enable
DW1 [5:4] 该两位确定BANK1的数据总县宽度
00 = 8-bit 01 = 16-bit, 10 = 32-bit
DW0 [2:1] 该两位指示BANK0的数据总县宽度(ONLY READ,由OM[1:0] 脚确定)
00 = 8-bit 01 = 16-bit, 10 = 32-bit
ENDIAN 0 该位指示endian mode (read only 状态由ENDIAN pins确定)
0 = Little endian 1 = Big endian
2
BANKCON0 0x01C80004 R/W Bank 0 control register 0x0700
BANKCON1 0x01C80008 R/W Bank 1 control register 0x0700
BANKCON2 0x01C8000C R/W Bank 2 control register 0x0700
BANKCON3 0x01C80010 R/W Bank 3 control register 0x0700
BANKCON4 0x01C80014 R/W Bank 4 control register 0x0700
BANKCON5 0x01C80018 R/W Bank 5 control register 0x0700
位名称BIT 功能
Tacs [14:13] 在nGCSn 有效之前地址建立时间
00 = 0 clock 01 = 1 clock
10 = 2 clocks 11 = 4 clocks
Tcos [12:11] 在nOE上芯片选择建立时间
00 = 0 clock 01 = 1 clock
10 = 2 clocks 11 = 4 clocks
Tacc [10:8] 存取周期
000 = 1 clock 001 = 2 clocks
010 = 3 clocks 011 = 4 clocks
100 = 6 clocks 101 = 8 clocks
110 = 10 clocks 111 = 14 clocks
Toch [7:6] 在nOE上芯片选择保持时间
00 = 0 clock 01 = 1 clock
10 = 2 clocks 11 = 4 clocks
Tcah [5:4] 在nGCSn有效地址保持时间
00 = 0 clock 01 = 1 clock
10 = 2 clocks 11 = 4 clocks
Tpac [3:2] 页模式存取周期
00 = 2 clocks 01 = 3 clocks
10 = 4 clocks 11 = 6 clocks
PMC [1:0] 页模式配置
00 = normal (1 data) 01 = 4 data
10 = 8 data 11 = 16 data
寄存器名称地址描述初始值
BANKCON6 0x01C8001C R/W Bank 6 control register 0x18008
BANKCON7 0x01C80020 R/W Bank 7 control register 0x18008
位名称BIT 功能
MT [16:15] 这两位确定bank6 和bank7存储器类型
00 = ROM or SRAM 01 = FP DRAM
10 = EDO DRAM 11 = Sync. DRAM
对于ROM和SRAM类型
Tacs [14:13] 在nGCSn 有效之前地址建立时间
00 = 0 clock 01 =
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个 Verilog 语言编的模块,命名为 XCT3。这个模块有三个输入端口,分别是时钟 clk、复位 rst 和输出端口 lamp,还有一个输出端口也叫 lamp,数据位宽为 8。 接下来是一些寄存器的声明,其中 reg 关键字表示这是一个寄存器类型,[7:0] 表示这个寄存器的数据位宽为 8,即一个字节,lamp 表示这个寄存器的名字。 ``` reg [7:0] lamp; reg clk_1hz; reg [31:0] cnt; reg [3:0] cnt_st; reg [1:0] st; ``` 这里还定义了一些参数,用于表示状态机的状态。其中,S0、S1、S2 和 S3 是 2 位二进制数,分别表示 00、01、10 和 11。 ``` parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11; ``` 下面是一个 always 块,用于检测时钟信号的上升沿。如果复位信号 rst 为高电平,则将 clk_1hz 置为 0,cnt 置为 0。否则,如果计数器 cnt 达到了 12499999,则将 clk_1hz 取反,cnt 置为 0;否则,clk_1hz 不变,cnt 加 1。 ``` always@(posedge clk) if(rst) begin clk_1hz<=1'b0; cnt<=32'b0; end else if (cnt>=32'd12499999) begin clk_1hz<=~clk_1hz; cnt<=32'b0; end else begin clk_1hz<=clk_1hz; cnt<=cnt+1'b1; end ``` 下面是另一个 always 块,用于检测 1Hz 时钟信号的上升沿。如果复位信号 rst 为高电平,则将状态机的计数器 cnt_st 置为 0,输出端口 lamp 置为 0,状态 st 置为 S0。否则,根据状态机的状态,对输出端口 lamp 进行相应的操作。 ``` always@(posedge clk_1hz) if(rst) begin cnt_st<=4'b0; lamp<=8'b00000000; st<=S0; end else case(st) S0: begin if(lamp<=8'b00000000) lamp<=8'b10000000; else if(cnt_st>=4'd7) begin lamp<=8'b00000001; st<=S1; cnt_st<=4'b0; end else begin lamp<={lamp[0],lamp[7:1]}; cnt_st<=cnt_st+1'b1; end end S1: begin if(cnt_st>=4'd7) begin lamp<=8'b10000001; st<=S2; cnt_st<=4'b0; end else begin lamp<={lamp[6:0],lamp[7]}; cnt_st<=cnt_st+1'b1; end end S2: begin if(cnt_st>=4'd3) begin lamp<=8'b00011000; st<=S3; cnt_st<=4'b0; end else begin lamp[7:4]<={lamp[4],lamp[7:5]}; lamp[3:0]<={lamp[2:0],lamp[3]}; cnt_st<=cnt_st+1'b1; end end S3: begin if(cnt_st>=4'd3) begin st<=S0; cnt_st<=4'b0; lamp<=8'b10000000; end else begin lamp[7:4]<={lamp[6:4],lamp[7]}; lamp[3:0]<={lamp[0],lamp[3:1]}; cnt_st<=cnt_st+1'b1; end end default: begin st<=S0; lamp<=8'b0; cnt_st<=4'b0; end endcase ``` 这个模块的作用是控制一个 8 位 LED 灯的亮灭,按照一定的模式闪烁。这个模块的实现使用了一个状态机,通过时钟信号和计数器的控制来实现模式的切换和 LED 灯的控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值