2.8 실시간 타이머

시간을 측정 하기 위한 RTT 가 존재 한다. SCLK클럭으로 동작 하며, 32bit 카운터 이다. 초단위 카운터 동작이 가능하며 시간을 비교해서 알람을 발생할 수 있으며 인터럽트 발생도 가능하다.

 

 

Real-time Timer Mode Register

  • RTTRST : 1설정시 32bit 카운터 16비트 분주기 0으로 초기화
  • RTTINCIEN : 1 설정시 RTTINC 가 set 되면 rtt_int로 인터럽트 요청
  • ALMIEN : 1설정시 ALMS 가 set되면 rtt_int로 인터럽트 요청
  • RTPRES : 1설정시 1~65536중 지정된 값으로 프리스케일러 동작 , 0 설정시 2에16승으로 프리스케일러 동작

 

Real-time Timer Alarm Register

  • ALMV : 32bit 카운터와 비교되는 알람발생 값

 

 

Real-time Timer Value Register

  • CRTV : 32bit 카운터

 

 

Real-time Timer Status Register

  • RTTINC : 1설정시 이전 RTT_SR을 읽은후 32bit 카운터값 증가
  • ALMS : 1설정시 이전 RTT_SR을 읽은후 알람이 발생

 

 

2.9 주기 타이머

OS에게 주기적인 인터럽트 신호를 주기 위한 타이머이며 이름은 PIT 라 한다. 정확도를 위한 MCLK를 사용한다. PIT_MR레지스터의 PITEN을 설정하여 동작시킨다. 디버그 모드에서 동작을 정지하며 CPIV값이 증가 하다가 PIV값과 동일해지면 0으로 초기화하고 PICNT 값을 1씩 증가 시킨다. 이때 인터럽트를 발생 할 수도 있으며, 인터럽트 발생을 위해 PIT_MR의 PITIEN을 설정해야 한다. 인터럽트 발생 후 PIT_PIVR을 읽으면 PICNT 값이 0이 되며 PIT_SR 레지스터의 PITS bit도 0으로 변경하면서 인터럽트가 종료 된다. PIT_PIIR 을 읽으면 PITS bit가 0이 되지 않는다.

 

Periodic Interval Timer Mode Register

  • PITIEN : 1설정 시 PITS 비트 설정 시 pit_irq로 인터럽트 요청
  • PITEN : 1설정시 타이머가 동작, 0 설정시 한번 카운터 완료되면 정지
  • PIV : CPIV와 비교하기 위한 값

 

Periodic Interval Timer Status Register

- PITS : 1시에 CPIV값이 PIV값과 동일하게 된 적이 있다.

 

Periodic Interval Timer Value Register

  • PICNT : PITS가 발생된 횟수를 기록한다.
  • CPIV : 타이머 카운터

 

Periodic Interval Timer Image Register

  • PICNT : PITS가 발생된 횟수를 기록한다.
  • CPIV : 타이머 카운터

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 10  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 9  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 7  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 5  (0) 2012.11.14

 

 

2.7 메모리

내부버스인 ASB를 관리하는 MC가 있다. 이를 이용해 내부 메모리를 읽어 들이며 사용하지 않는 영역을 읽을때는 Abort를 발생하며 Remap 같은 동작을 지원한다. 플래시 메모리를 제어하는 EFC는 flash를 쓰거나 지우거나 lock를 거는 등의 동작을 수행한다. lock기능은 flash를 지우지 못하도록 설정하는 기능이며, security 는 내부 버스를 읽는 것을 방지하는 기능이며, GPNVM은 저 전압 검출에 사용된다.

고속 DATA전송을 지원하는 DMA 는 core에 부담을 주지 않으며 고속으로 data를 전송하여 빠른 동작을 지원한다. 모두 11개의 DMA 체널이 존재한다. (DBGU*2,SPI*2,ADC*1,SCC*2,USART0*2,USART1*2)

 

  • RCB : 1를 설정시 remap을 설정 한다.

 

  • SVMST1 : ARM7TDMI abort 예외 발생
  • SVMST0 : PDC abort 예외 발생
  • MST1 : 최근 abort 예외는 ARM7TDMI에서 발생
  • MST0 : 최근 abort 예외는 PDC에서 발생
  • ABTTYP : Abort 상태 표시, 00->data read, 01->data write, 10->code fetech, 11->Nc
  • ABTSZ : Abort 사이즈, 00->byte, 01->half-word, 10->word, 11->NC
  • UNDADD : 사용하지 않는 어드레스 액세스에의한 abort

 

  • abort를 발생시킨 어드레스 저장

 

 

 

  • FMCN : NVM또는 Flash 쓰기전에 대기시간 설정,NVM->1us이상 , Flash->1.5us , 0->30us
  • FWS: flash동작 사이클설정, 00(읽기1,쓰기2대기),01(읽기2,쓰기3대기) ,01(읽기3,쓰기4대기) ,11(읽기4,쓰기4대기)
  • NEBP: 0설정 flash쓰기전에 해당페이지 삭제, 1설정 삭제 안함
  • PROGE : 1설정 flash쓰기 에러 인터럽트 발생
  • LOCKE : 1설정 lock에러 인터럽트 발생
  • FRDY: flash 준비 되었을대 인터럽트 발생

 

  • KEY: 쓰기 허용 0x5A
  • PAGEN : 사용할 페이지 번호
  • FCMD : 0000->NC, 0001->WP(페이지쓰기),0010->SLB(lock설정),0011->WPL(페이지쓰고lock설정),0100->CLB(페이지lock해제),1000->EA(전체플래시삭제),1011->SGPB(지정된 GPNVM설정),1101->CGPB(지정된GPNVM설정해제),1111->SSB(Security 설정)

 

  • LOCKSx: 메모리 lock 됨을 표시
  • GPNVM1: 1설정시 저전압 검출 리셋 신호 발생
  • GPNVM0: 1설정시 저전압 검출 사용
  • SECURITY: 1설정시 Security 지정
  • PROGE : 1상태시 최종 flash writer중 에러 발생
  • LOCKE : 1상태시 최종 flash writer를 lock 되어 있는 것을 함
  • FRDY : flash 제어기 동작 가능 다음 명령 수행 가능

 

 

  • RXPTR: DMA 전송시 수신될 어드레스 저장

 

  • RXCTR : DMA 전송시 수신 횟수 저장

 

 

  • TXPTR : DMA 전송시 송신 어드레스 저장

 

 

  • TXCTR : DMA전송시 송신될 버퍼 크기 저장

 

  • RXNPTR : 버퍼가 다차면 다음에 저장할 버퍼의 어드레서 저장

 

  • RXNCR : 데이터가 저장될 버퍼의 크기 저장

 

  • TXNPTR : 다 전송후 송신될 다음 버퍼 어드레스

 

  • TXNCR : 송신할 다음 버퍼 크기 저장

 

  • TXTDIS : 송신 전송 요청 금지
  • TXTEN : 송신 전송 요청 허용
  • RXTDIS : 수신 전송 요청 금지
  • RXTEN : 수신 전송 요청 허용

 

  • TXTEN : 송신 전송 요청 허용 가능
  • TXTEN : 수신 전송 요청 허용 가능

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 9  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 8  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 5  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 4  (0) 2012.11.14

 

2.4 워치독

잘못됫 프로그램 및 시스템에 문제가 있어 오동작하는 것을 방지한다. SCLK로 동작하는 12bit 카운터로 동작한다. 타임아웃이 되었을 때 RESET 또는 인터럽트로 동작시킬 수 있다. 디버그 모드 및 idle 모드에서 정시 시킬 수 있다.

RESET 후에 동작을 하도록 되어 있기 때문에, 사용을 하지 않는다면 WDT_MR레지스터에 WDDIS 를 1로 설정 해야 한다. WDT_MR 레지스터의 WDV에 설정한 값에서 SLCK/128 클럭으로 1씩 감소한다. 이 WDV 값을 조정해서 워치독 시간을 조정한다. WDT_MR을 RESET 후 한번만 설정 가능하다. WDT_CR 레지스터에서 WDRSTT를 1로 설정하면 WDV 값으로 카운터가 변경된다. 카운터 값이 WDD 값보다 작으면 WDRSTT 에 1로 설정하면 다시 카운터가 시작된다.

 

 

  • KEY : 0xA5 입력시 제어가능
  • WDRSTT : 워치독 카운터를 WDV 값으로 다시 설정

 

  • WDIDLEHLT : 1설정시 idle mode에서 워치독 타이머 정지
  • WDDBGHLT : 1설정시 디버그 모드에서 워치독 타이머 정지
  • WDD: 워치독 타이머를 초기화 할수 있는 시간 설정
  • WDDIS : 1설정시 위치독 타이머 동작 정지
  • WDRPROC : 1설정시 프로세서 리셋, 0 설정시 시스템 리셋
  • WDRSTEN : 1설정시 wdt_fault 신호를 RESET제어용으로 사용
  • WDFIEN : 1설정시 wdt_int 신호를 인터럽트로 사용
  • WDV : 워치독 타이머에 설정 되는값

 

 

  • WDERR : 1설정시 새로운 에러 발생
  • WDUNF : 1설정시 워치독 타임아웃 발생

 

 

2.5 전압레귤레이터

내부 1.8 레귤레이터는 정상동작에서 전류를 90uA ~ 100mA 로 출력 하고 저전력 모드에서 25uA ~ 1mA까지 사용가능 하다.

 

 

2.6 디버그

UART 통신으로 디버그 기능을 지원한다. 통신속도는 MCLK/(16*CD) 로 CD는 1~65535 까지 이다. 기본적으로는 전이중,data 8bit, step 1bit로 통신을 하며 다른 설정도 가능하다. 그 외에 자동 echo, local loop, remote loop 와 같은 특이한 기능도 지원한다. 칩 내부의 ID 와 같은 정보를 확인할 수도 있고 , 외부 ICE 동작을 막을 수도 있다.

 

  • RSTSTA : PARE,FRAME,OVRE 에러 리셋
  • TXDIS : 송신기능 정지
  • TXEN : 송신 기능 동작
  • RXDIS : 수신 기능 정지
  • RXEN : 수신 기능 동작
  • RSTTX : 송신 RESET 후 동작 정지
  • RSTRX : 수신 RESET 후 동작 정지

 

 

  • CHMODE : 체널 모드, 00->정상, 01->자동echo, 10->local loop, 11->remote loop
  • PAR : 페리티bit 설정, 000->even, 001->odd, 010->0 , 011-> 1, 1xx ->사용안함

 

  • COMMRX : COMMRX 인터럽트
  • COMMTX : COMMTX 인터럽트
  • RXBUFF : RX buffer full 인터럽트
  • TXBUFF : TX buffer empty 인터럽트
  • TXEMPTY : TX empty 인터럽트
  • RXRDY: Enable RXRDY Interrupt
  • TXRDY: Enable TXRDY Interrupt
  • ENDRX: Enable End of Receive Transfer Interrupt
  • ENDTX: Enable End of Transmit Interrupt
  • OVRE: Enable Overrun Error Interrupt
  • FRAME: Enable Framing Error Interrupt
  • PARE: Enable Parity Error Interrupt

 

 

 

 

  • COMMRX :1 -> COMMRX 신호 있음
  • COMMTX : 1-> COMMTX 신호 있음
  • RXBUFF : 1 -> PDC(DMA) 수신버퍼에 문자 있음
  • TXBUFF : 1 -> PDC(DMA) 송신버퍼가 비었음
  • TXEMPTY : 1 -> 송신버퍼,shift 레지스터 비었음
  • RXRDY: 1 -> DBGU_RHR 리드 가능
  • TXRDY: 1 -> DBGU_THR 에 쓰기 가능
  • ENDRX: 1 -> RX PDC(DMA) 전송 완료
  • ENDTX: 1 -> TX PDC(DMA) 전송 완료
  • OVRE: Overrun Error 발생
  • FRAME: Framing Error 발생
  • PARE: Parity Error 발생

 

  • 수신 버퍼

 

  • 송신 버퍼

 

  • 보레이트 설정용 CD

 

  • VERSION : Device의 버전
  • EPROC :프로세서 type

  • NVPSIZ :메모리 사이즈

- NVPSIZ2 :

  • SRAMSIZ :

  • ARCH :

  • NVPTYP

 

  • EXID : chip id

 

- FNTRST : 1 -> NTRST 가 0 으로 유지

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 8  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 7  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 5  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 4  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 3  (0) 2012.11.14

 

2.3 시스템 리셋

 

일반적인 외부 reset, 전원 감시 reset, S/W reset, Watchdog reset 을 지원 한다. 이 reset은 RSTC 라는 리셋 관련 제어 장치에서 관장을 한다. NRST pin에는 내부 PULL-UP 저항을 가지고 있어 외부에 스위치만 연결하면 되고, reset 신호 출력용으로 사용도 가능하다.

NRST에 입력된 신호는 RSTC_MR 레지스터의 URSTEN 을 설정해야만 사용이 가능하며, NRST 의 상태는 RSTC_SR의 NRSTL을 설정하면 NRSTS에서 읽어 들일 수 있다. RSTC_MR 레지스터의 URSTEN이 0 으로 URSTIEN이 1로 설정시 인터럽트로 사용할 수 있다. RSTC_MR의 ERSTL 이 설정되면 RESET 신호를 출력할수 있다.

전압이 1.68V 이하로 낮아지면 리셋 또는 인터럽트를 발생할 수 있는데 flash의 GPNVM1 bit를 1로 설정 하면 저전압 RESET 은 동작하지 않으며, RSTC_SR 레지스터의 BODSTS 을 설정하고, RSTC_MR 의 BODIEN의 을 1로 설정해서 인터럽트로 동작 시킬수 있다.

S/W reset 은 RSTC_CR 레지스터의 PROCRST,PERRST,EXTRST 가 1로 설정시 발생 한다. 위치독 리셋은 WDT_MR의 WDRSTEN 이 1로 설정되고 위치독 타이머의 타임 아웃이 발생하면 발생 한다.

 

 

Reset Controller Control Register

  • KEY : 레지스터 변경 암호 0xA5
  • EXTRST : KEY 값이 0xA5이고 1로 설정시 NRST 에 0을 출력
  • PRERST : KEY 값이 0xA5이고 1로 설정시 주변장치 RESET
  • PROCRST : KEY 값이 0xA5이고 1로 설정시 내부 reset

 

Reset Controller Status Register

  • SRCMP : 현재 S/W reset 수행중
  • NRSTL : NRST 의 입력 상태 저장
  • RSTTYP : 000->전원초기RESET,010->워치독리셋,011->S/W리셋,100->NRSTpin LOW 리셋, 101->저전압 리셋
  • BODSTS : 저전압 리셋이 있었음
  • URSTS : NRST 단자가 리셋 신호가 있었음

 

Reset Controller Mode Register

  • KEY : 레지스터 변경값 0xA5
  • ERSTL : 외부 RESET 신호 출력 시간 설정
  • BODIEN : 리셋 인터럽트(rstc_irq) 출력
  • URSTIEN : 리셋 인터럽트(rstc_irq) 출력
  • URSTEN : NRST신호를 내부 리셋으로 사용

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 7  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 4  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 3  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 2  (0) 2012.11.14

 

2 AT91SAM7S 기본 하드웨어

 

2.1 시스템 클럭

클럭은 CKGR 을 이용해서 조정한다. CKGR에는 내부 RC OSC, 메인 OSC, PLL 회로가 존재한다. 내부 RC OSC 는 기본적으로 32.768kHz로 동작한다. 그러나 오차 범위가 있어서 실제로는 22~42Khz 내에서 동작한다. 이 클럭은 SLCK 라고 지칭한다. 전원 ON후 바로 사용되는 클럭이다.

메인 OSC 는 Xin, Xout에 크리스탈(3~20Mhz)을 연결해서 발생시킨다. 이것은 MAINCK 라고 지칭한다. 이 클럭은 PLL외로의 입력 소스로 사용될 수 있다.

PLL 회로는 MAINCK 와 PLLRC에서 발진된 클럭 을 이용해서 동작하며, 여기서 발생된 클럭은 PLLCK 라고 지칭한다. PLLCK를 이용해 내부에서 사용하는 마스터 클럭 등에 사용한다.

전원 ON후 MAINCK 를 살리기 위해 CKGR_MOR 의 MISCEN 을 1로 OSCCOUNT에 대기클럭을 입력하고 OSCCOUNT 가 0 이 되면서 MAINCK 가 동작한다. MAINCK가 정상동작인지 확인은 PMC_SR의 0번 bit인 MOSCS 가 1인지로 판단하면 된다. MAINCK이 안정화 되면 PLLCK를 발생시키는데 PLLCK의 최대 가능 속도는 55Mhz 이므로 이를 주의 해야 한다. 일반적으로 USB를 사용하기 위해 48Mhz에 근접시킨다.

PLLCK 는 CKGR_PLLR 을 제어해 동작시키며 PLLCK는 MAINCK/DIV 한 값에 MUL+1 값을 곱하면 된다.

 

2.2 전원관리

AT91SAM7은 저전력 시스템을 지원하기 위해 전원관리장치(PMC)가 존재 한다. 원리는 간단한데 사용하지 않는 장치는 클럭을 주지 않아 멈추도록 하는 것이다. 이는 소프트웨어 적으로 제어가 가능하다.

PCK는 CPU코어가 사용하는 클럭이며, MCK는 메모리 제어기등(USART, SSC, SPI, TWI, TC, MCI, etc.) 의 무조건 쓰이는 주변 장치에 연결되는 클럭이다. 일반적으로 PLLCK를 96Mhz로 만들어 /2 해서 48Mhz로 만들어 사용한다.(55Mhz이상은 사용이 불가능 하다.) UDPCK는 USB동작에 사용된다. USB를 정상적으로 사용하기 위해서는 이 클럭은 48Mhz로 설정해야 한다. periph_clk[2..14]는 각각의 주변장치 클럭 공급에 사용한다. 이를 이용해 주변장치의 동작을 조절하여 소비전력을 조절할 수 있다. Pck[0..2]는 프로그램 가능한 클럭으로 필요시 외부에 제공한다. PCK 는 idle mode 를 지원하며 인터럽트에 의한 복귀도 지원한다. 이들 클럭은 SLCK, MAINCK, PLLCK 의 입력 클럭을 분주해서 사용하게 된다.

기본 동작 설정은 아래와 같다.

 

  1. Main Oscillator를 살리기

CKGR_MOR 레지스터의 MOSCEN를 설정해 Main Oscillator를 살린다. 약간의 케이스에서 Startup 시간을 설정하는 것이 유리하고, 그러기 위해 CKGR_MOR레지스터의 OSCOUNT를 설정한다. 안정화 되는 것은 PMC_SR의 MOSCS가 설정되는 것으로 확인할 수 있고 활성화 될 때까지 대기해야 한다.

예: CKGR_MOR 에 0x00000701 기록, Start Up Time = 8 * OSCOUNT / SLCK = 56 Slow Clock

그래서 Main Oscillator 는 56 slow Clock 이후 동작한다.

 

  1. Main Oscillator 주파수 점검(옵션으로 선택)

Main Oscillator가 정상적으로 발진하는지 측정을 해야 할 수도 있다. 이 측정은 CKGR_MCFR레지스터에서 MAINRDY을 읽어서 확인한다. 또한 MAINF에는 16주기의 slow Clock 동안의 Main Oscillator의 측정치가 기록됨으로 이를 이용해 정확하게 동작하는지 확인할 수 있다.

 

  1. PLL 을 설정 한다.

PLL의 div 값을 설정하기 위해 CKGR_PLLR에 기록한다. DIV값은 0~255까지 설정이 가능하며, 0으로 설정되면 동작이 정지된다. MUL값 설정은 0~2047까지 설정이 가능하며 실제 적용은 (MUL+1)로 된다. PLL 안정화 까지 출력 대기 시간 설정은 PLLCOUNT 에 설정하며 설정한 값만큼의 slow Clock 시간이 지나면,PMC_SR 레지스터의 LOCK 비트가 1로 설정된다. 이후 USBDIV도 설정 한다.

예: CKGR_PLLR에0x00040805 기록 ,PLL은 main clock 을 입력 받고 , 5을 곱하게 된다. 8 slow Clock 이후 안정화 된다.

 

  1. MCK 및 PCK 설정

MCK를 설정하기 위해 PMC_MCKR레지스터의 CSS를 사용한다. 특별히 설정하지 않으면 Clock source 는 slow Clock이 된다. MCK를 조정 하기 위해 PRES bit를 설정하며, 이를 이용해 MCK와 PCK를 사용하게 된다. 설정이 다 끝나면 PMC_SR 레지스터의 MCKRDY 가 설정되며 안정화 된 것이며, 기다리는 과정을 꼭 거쳐야 한다.

 

  1. PMC_SCER,PMC_SCDR,PMC_SCSR로 프로그램 가능한 PCK0~PCK2를 설정

PMC_PCK? 에서 클럭 소스 및 DIV(분주)값을 설정하고,CCS bit로 사용입력 클럭을 선택 하고 PRES로 분주비를 설정한다. 설정 완료 후 PMC_SR레지스터의 PCKRDY?로 정상동작을 확인한다.

 

<전체 레지스터>

 

PMC System Clock Enable Register

  • PCK0 ~ PCK2 : 각각의 pin에 클럭 출력을 한다. (설정 1)
  • UDP : USB 에 UDPCK을 공급한다. (설정 1)
  • PCK : PCK 를 발생 시킨다. (설정 1)

 

PMC System Clock Disable Register

  • PCK0 ~ PCK2 : 각각의 pin에 출력을 금지(설정 1)
  • UDP : USB에 클럭공급 중지(설정 1)
  • PCK : PCK 발생 금지, idle mode 동작(설정 1)

 

PMC System Clock Status Register

  • PCK0 ~ PCK2 : 클럭 출력이 허용되어 있는 것을 표시(설정 1)
  • UDP : USB 클럭 출력이 허용 되어 있는 것을 표시 (설정 1)
  • PCK : PCK 발생이 허용 (설정 1)

 

PMC Peripheral Clock Enable Register

- 주변장치 클럭 공급 허용 (설정 1) : Device 아래 참조

 

 

PMC Peripheral Clock Disable Register

- 주변장치 클럭 공급 금지 (설정 1)

 

PMC Peripheral Clock Status Register

- 주변장치 클럭 공급이 허용 되어 있다. (설정 1)

 

PMC Clock Generator Main Oscillator Register

  • OSCOUNT : Main Oscillator 시작 시간 설정 (설정 1)
  • OSCBYPASS : 외부 오실레이터 연결시 1로 설정, 이때 MOSCEN은 0으로 설정
  • MOSCEN : Main Oscillator 정지 (설정 1)

 

PMC Clock Generator Main Clock Frequency Register

  • MAINRDY : MAINF 값이 유효
  • MAINF : 16주기의 slow Clock 시간 동안의 Main Clock 카운트수

 

PMC Clock Generator PLL Register

  • USBDIV : 00 -> PLL/1 , 01->PLL/2, 10->PLL/4 , 11->사용안함
  • MUL : PLL 곱셈값
  • OUT : PLL 주파수범위 00->80~160Mhz , 01->150~180Mhz
  • PLLCOUNT : PLL안정화 대기시간
  • DIV : 0-> Pll정지 , 1~255:메인 클럭 분주값

 

 

PMC Master Clock Register

  • PRES : 분주비설정, 000->1,001->2,010->4,011->8,100->16,101->32,110->64,111->NC
  • CSS : 00->SLCK , 01->MAINCK, 10->NC, 11->PLLCK

 

PMC Programmable Clock Register

  • PRES : 분주비설정, 000->1,001->2,010->4,011->8,100->16,101->32,110->64,111->NC
  • CSS : 00->SLCK , 01->MAINCK, 10->NC, 11->PLLCK

 

PMC Interrupt Enable Register

  • PCKRDYx : 해당 인터럽트 허용
  • MCKRDY : 해당인터럽트 허용
  • LOCK : 해당인터럽트 허용
  • MOSCS : 해당인터럽트 허용

 

PMC Interrupt Disable Register

  • PCKRDYx : 해당 인터럽트 금지
  • MCKRDY : 해당인터럽트 금지
  • LOCK : 해당인터럽트 금지
  • MOSCS : 해당인터럽트 금지

 

PMC Status Register

  • PCKRDYx : 해당 클럭x가 준비 상태
  • MCKRDY : 마스터 클럭 준비 상태
  • LOCK : Pll이 준비 상태 (lock 됨)
  • MOSCS : 메인 오실레이터 안정화됨

 

PMC Interrupt Mask Register

  • PCKRDYx : 해당 클럭x 인터럽트 허용
  • MCKRDY : 마스터 클럭 인터럽트 허용
  • LOCK : Pll이 준비 상태 (lock 됨) 인터럽트 허용
  • MOSCS : 메인 오실레이터 인터럽트 허용

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 5  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 3  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 2  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 1  (0) 2012.11.14

 

 

  1. 메모리구조

 

REMAP

0x0000 0000 ~ 0x000F FFFF 번지까지의 메모리 선택가능한 Remap 영역이 존재 한다. 이 영역은 필요에 따라 레지스터를 선택하여 Internal Flash, 또는 Internal SRAM 중 선택 해서 사용할 수 있다. 리셋후 초기상태는 이 영역에 Flash가 선택되어 있으나, MC_RCR 레지스터의 RCB bit를 1로 선택시 SRAM처럼 사용할 수 있다.

 

Flash Write / Erase / SAMBA

Flash는 JTAG , FFP 방식, SAMBA 방식으로 Writer 가능하며, 초기 상태에서는 SAMBA 가 동작이 되나 Flash를 한번이라도 Write 하면 SAMBA는 삭제된다. 이때 ERASE 핀이 50ms 이상 VDDIO에 연결되면 Flash는 삭제되며, RESET후 TST=1,PA0~2=1 이면 내부에 숨어있는 SAMBA 이미지를 읽어 SRAM으로 동작 시킨다. 이때는 다시 SAMBA를 동작할 수 있다. 이 동작은 약 10초 정도 걸리기 때문에 약간의 시간이 흐른 후 TST pin을 OPEN 해서 사용하면 된다.

USB로 SAMBA 프로그램 사용한다면 PA16번은 USB pull-up용으로 사용해야 하며, 시리얼 사용시 DBGU PORT를 이용해야 한다. 이때 외부 크리스털은 18.432Mhz가 달려 있어야 한다.

 

<전체 메모리 구조>

 

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 5  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 4  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 2  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 1  (0) 2012.11.14

 

  1. 외부 구조

 

64-lead LQFP (AT91SAM7S512/256/128/64/321) 64-pad QFN (AT91SAM7S512/256/128/64/321)

 

48-lead LQFP (AT91SAM7S32) 48-pad QFN (AT91SAM7S32)

 

 

64PIN MAP

 

 

 

 

48PIN MAP

 

중요 PIN 기능

  • VDDIN : CPU 동작용 Regulator 에 3.3V전원 공급
  • VDDOUT : CPU 동작용 Regulator 전원 1.8V출력
  • VDDFLASH : FLASH 에 전원 공급 3.3V
  • VDDIO : I/O동작전압 3.3V 또는 1.8V 공급
  • VDDCORE : CORE 동작전압 1.8V 공급
  • VDDPLL : PLL또는 내부 오실레이터 동작용 1.8V 공급
  • GND : CPU 접지
  • XIN : 클럭 입력단자
  • XOUT : 클럭 출력단자
  • PLLRC : PLL 동작하기위한 RC 회로 연결 단자
  • TCK,TDI,TDO,TMS : JTAG 연결단자
  • JTAGSEL : JTAG 사용시 VDDIO 전압에 연결
  • ERASE : 정상동작시 OPEN, 칩 초기화를 위해서는 VDDIO에 연결
  • NRST : CPU RESET 신호
  • TST : 정상동작시 OPEN, SAM-BA boot mode시 VDDIO에 연결
  • DTXD,DRXD : 디버그유닛 연결 단자
  • IRQ : 외부 인터럽트 입력
  • FIQ: 외부 고속 인터럽트 입력
  • PA0~31 : 일반 I/O로 사용
  • DDP,DDM : USB 연결용으로 사용

PORT 별 특수 기능

  • SCK,TXD,RXD,RTS,CTS,DTR,DSR,DVR,RI : UART 연결에 사용
  • TD,RD,TK,RK,TF,RF : 동기 통신 영결에 사용
  • TCLK,TIOA,TIOB : 타이머 카운터 입출력용
  • MISO,MOSI,NPCS0~3 : SPI 연결용으로 사용
  • PWM0~3 : PWM 출력용
  • TWD,TWCK : TWI(Ic2) 용
  • AD0~7 : analog 입력
  • ADTRG : AD 컨버터 트리거 입력
  • ADVREF : A/D 레퍼런스 입력 2.6V 이상

 

일반적으로 3.3V I/O를 쓰는 전원 연결은 아래 그림과 같다.

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 5  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 4  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 3  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 1  (0) 2012.11.14
  • AT91SAM7S 의 기본구조

  1. 특징

 

ARM7TDMI® ARM® Thumb® 프로세서 사용 :

고성능 32비트 RISC 구조, 16비트 명령 구조, In-circuit Emulation, Debug 지원 하는 것이 다른 ARM과 차별화 됩니다. 일반적인 ARM 구조 및 특성은 따로 설명하지는 않겠습니다.

 

내부 Flash Memory :

  • AT91SAM7S512 : 선택 가능한 256byte 단위의 1024 Page Flash 2개로 구성
  • AT91SAM7S256 : 256byte 단위의 1024 Page Flash로 구성
  • AT91SAM7S128 : 256byte 단위의 512 Page Flash로 구성
  • AT91SAM7S64 : 128byte 단위의 512 Page Flash로 구성
  • AT91SAM7S321/32 : 128byte 단위의 256 Page Flash로 구성
  • 가장 늦은 동작도 30Mhz 이상으로 가능
  • 최대 빠른 속도에서 Thumb 명령이 가능한 Prefetch Buffer
  • Page 프로그램은 6ms, Page erase 및 Full Erase 는 15ms 로 동작
  • Flash 는 10년 보증에 10,000번 쓰기 가능하며, Sector Lock , Flash Security Bit 가 지원

 

고속 내부 SRAM :

  • AT91SAM7S512/256 : 64 kbytes
  • AT91SAM7S128 : 32 kbytes
  • AT91SAM7S64 : 16 kbytes
  • AT91SAM7S321/32 : 8 kbytes

 

내부 주변장치

  • Memory Controller (MC) : 다양한 메모리 동작 지원
  • Reset Controller (RSTC) : Power-on Reset, Brown-out Detector 제어, 외부 Reset 신호제어
  • Clock Generator (CKGR) : 저전력 RC Oscillator 내장, 3 to 20 MHz On-chip Oscillator and one PLL 내장
  • Power Management Controller (PMC) : 소프트웨어 전원 최적화 기능, 낮은 클럭 모드(500hz 이하 동작), Idle 모드 3개의 프로그램 가능한 모드지원, 각종 클럭의 임의 조정, 주변자치 클럭 공급 제어 가능
  • Advanced Interrupt Controller (AIC) :개별적으로 선택 가능한 8단개의 인터럽트 벡터 소스, 2개 또는 1개(T91SAM7S32)의 외부 인터럽트, 한 개의 빠른 인터럽트 소스, Spurious Interrupt Protected 등의 제어
  • Debug Unit (DBGU) : 2 wire UART로 인터럽트 가능한 디버깅 통신 지원
  • Periodic Interval Timer (PIT) : 20bit Programmable Counter + 12bit Interval Counter 내장
  • Windowed Watchdog (WDT) : 12bit key 프로텍트 가능한 카운터, Reset 또는 인터럽트 처리로 사용가능, 디버깅 중에는 idle 상태 또는 정지 상태 유지
  • Real-time Timer (RTT) : 내부 RC Oscillatorfh 동작, 32bit Counter
  • One Parallel Input/Output Controller (PIOA): 개별적으로 프로그램 적으로 설정해서 사용할 수 있는 I/O
  • Eleven (AT91SAM7S512/256/128/64/321) or Nine (AT91SAM7S32) Peripheral DMA Controller (PDC) : 주변장치의 DATA 전송을 빠르게 도와줌
  • One USB 2.0 Full Speed (12 Mbits per Second) Device Port (Except for the AT91SAM7S32): USB 2.0 지원함
  • One Synchronous Serial Controller (SSC) : 동기 전송을 지원함 (예로 I2S)
  • Two (AT91SAM7S512/256/128/64/321) or One (AT91SAM7S32) Universal Synchronous/Asynchronous Receiver Transmitters : 비동기 통신을 지원함, full modem, IrDA, RS-485등을 하드웨어적으로 지원함
  • One Master/Slave Serial Peripheral Interface (SPI): 8bit 또는 16bit 로 data 를 전송하수 있으며, 4개까지 확장 가능
  • One Three (AT91SAM7S512/256/128/64/321)-channel or Two (AT91SAM7S32)-channel 16-bit Timer/Counter (TC): 16bit 타이머 카운트 내장
  • One Four-channel 16-bit PWM Controller (PWMC): PWM 제어기 내장
  • One Two-wire Interface (TWI) : I2C 인터페이스를 지원
  • One 8-channel 10-bit Analog-to-Digital Converter, Four Channels Multiplexed with Digital I/Os : 8개의 10bit Analog-to-Digital , 4개는 전용핀으로 사용
  • SAM-BA™ Boot Assistant : SAM-BA 프로그램을 이용해 ISP 동작 지원
  • IEEE® 1149.1 JTAG Boundary Scan on All Digital Pins: JTAG 을 이용한 다운로드 및 디버깅 지원
  • 모든 I/O 는 5V-tolerant를 지원하며 , 4개의 port(PA3 ~PA0)는 16mA 까지 Drive 가능
  • CORE는 1.8V의 내장된 Regulator 로 동작, 100mA 까지 출력가능
  • I/O는 3.3V 또는 1.8V로 동작가능 하면 FLASH는 3.3V로 동작

     

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 5  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 4  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 3  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 2  (0) 2012.11.14

+ Recent posts