1.4 외부 메모리 인터페이스

특징

u 외부 메모리는 PORT A PORT C를 이용하여 연결합니다.

u PORT A외부 데이터 메모리를 액세스하기 위한 데이터 버스 및 하위 어드레스 버스로 사용됩니다.

u PORT C는 외부 데이터 메모리를 액세스하기 위한 16비트 어드레스 중에서 상위 8비트 어드레스 버스로 사용 됩니다.

u PORT A ALE 신호에 의해 데이터 버스와 하위 어드레스 버스로 분리됩니다.

u 외부 메모리를 사용 하기 위해서는 별도의 Register를 초기에 선언해야 합니다.

u 외부 메모리 번지는 0x1100 ~ 0xFFFF까지로 약 60Kbyte 입니다.

u 메모리 외에 외부 확장 I/O로 사용 하기도 합니다 

 

 

1) 외부에 연결된 디바이스중는 지원할 수 있는 I/O 속도가 전부 다릅니다. 예를 들어 보면 SRAM도 일반적으로 마지막에 -55,-70,-100 등으로 적혀 있는데 55의 의미는 55ns 까지 동작이 가능하다는 것이다. 만약 100ns에서 동작이 가능한 소자를 55ns로 동작을 하려고 하면 분명히 문제가 발생합니다.

ATmega128은 기본적인 속도에서 1~3개까지의 대기 사이클을 줄 수 있어서 디바이스 간의 속도문제를 해결할 수 있도록 도와 줍니다.

 

 

- 아래 그림은 기본 사이클 입니다. (SRWn1 = 0, SRWn0 = 0)

 

 

- 아래 그림은 대기 1사이클 입니다. (SRWn1 = 0, SRWn0 = 1)

 

 

- 아래 그림은 대기 2사이클 입니다. (SRWn1 = 1, SRWn0 = 0)

 

 

- 아래 그림은 대기 3사이클 입니다. (SRWn1 = 1, SRWn0 = 1)

 

2) 레지스터

- MCUCR (MCU Control Register): CPU의 전체적인 기능을 설정한다.

 

 

 

Bit 7, SRE(External SRAM/XMEM Enable) : 외부 데이터 어섹스 신호를 사용할지를 설정 한다.

이 기능이 설정되면 일반 I/O 가 어드레스 버스 모드로 변경된다.

Bit 6, SRW10(Wait-state Select Bit) : SRW11과 함께 대기시간을 조절한다.

 

 

- XMCRA (External Memory Control Register A)

 

 

Bit 6..4, SRL2, SRL1, SRL0 (Wait-state Sector Limit) : 외부 데이터 영역을 2개로 나누어서 각각의 대기시간을 조절 할 수 있는데 이 레지스터는 영역을 어떻게 나눌지를 선택 한다.

 

 

Bit 3..2, SRW01, SRW00 (Wait-state Select Bits for Lower Sector):

SRW11, SRW10 Upper sector 의 대기 시간을 조절 하며 SRW01,SRW00 Lower sector의 대기시간을 조절한다.

 

 

 

 

Bit 7, XMBK (External Memory Bus-keeper Enable) : AD 버스에 3-state 상태일 조건에서 이전 값을 유지하도록 한다.

Bit 2..0, XMM2, XMM1, XMM0 (External Memory High Mask) : 어드레스 상위 바이트 어디 까지 쓸 것인지 결정 한다. 사용하지 않는 포트는 일반적인 I/O 로 사용이 가능하다. XMM2,1,0“001”로 설정하면 PORT C 7번은 일반 I/O로 사용 가능하다.

 

1.3 메모리구조

u 메모리는 프로그램 메모리, 데이터 메모리(내부 SRAM, 외부 SRAM, 내부 EEPROM)로 구성

u 프로그램 메모리는 내부 Flash 메모리를 사용하며 그 용량은 128Kbyte

u 내부 데이터 메모리 중 SRAM 4Kbyte

u 내부 데이터 메모리 중 EEPROM 4Kbyte

u 외부 데이터 메모리는 최대 64Kbyte 가 가능하며 외부 SRAM 또는 확장 I/O용으로 사용

 

 

 

프로그램 메모리 구조

데이터 메모리 구조

내부 32bit Registers

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) 프로그램 메모리

- 128K Byte (64K * 16bit) Flash 메모리로 되어 있습니다.

- Application / Boot Flash section 으로 나누어지며 필요에 따라 Boot Flash section 기능은 선택적으로 사용

- Program Writing은 일반적으로 SPI 통신방식을 이용한 ISP기능 및 JTAG 에뮬레이터 사용하며, Application Flash section Boot Flash section에서 S/W 적인 Program Writing이 가능합니다.

2) 데이터 메모리

- 32레지스터는 AVR 모든 시리즈에서의 사용되는 범용 32 Registers($00~1F)

- 각종 I/O 디바이스들을 제어하기 위한 64 I/O Registers($20~$5F) 레지스터

- ATmega128에 추가된 각종 I/O 디바이스들을 제어하기 위한 160 Ext I/O Registers($60~$FF)

- 스택 또는 사용자 변수로 사용되는 내부 SRAM(0x0100~0x10FF) , 4Kbyte(4096*8bit)

- 4KB보다 더 확장된 데이터메모리를 필요할 때 확장해서 사용 가능한 외부 SRAM(0x1100~0xFFFF)

- 비휘발성 데이터를 보관하기 위한 4Kbyte 내장 EEPROM 이 있으며, 단일 바이트로 읽고 쓸 수 있습니다.

 

1.2 외부 구조

 

 

l ATmega128의 핀 구성

1) VCC (AVCC)

- 공급 전압 ( ATmega128L 2.7V ~ 5.5V , ATmega128 4.5V ~ 5.5V)

- AVCC ADC PORT F 에 공급하는 전압

2) GND

- 전원 접지

3) PORT A(PA7..PA0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

- 외부 데이터 메모리를 액세스하기 위한 데이터 버스 및 하위 어드레스 버스로 사용됨

4) PORT B(PB7..PB0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

5) PORT C(PC7..PC0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

- 외부 데이터 메모리를 액세스하기 위한 16비트 어드레스 중에서 상위 8비트 어드레스 버스로 사용

6) PORT D(PD7..PD0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

7) PORT E(PE7..PE0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

8) PORT F(PF7..PF0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

- A/D 컨버터의 입력포트

9) PORT G(PG4..PG0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

10) RESET

- 리셋 입력 핀으로서 50ns이상의 Low Lever 입력이 지속되면 리셋이 발생한다.

11) PORT D(PD7..PD0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

12) PORT E(PE7..PE0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

13) PORT F(PF7..PF0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

- A/D 컨버터의 입력포트

14) PORT G(PG4..PG0)

- 내부적으로 풀업된 8비트 양방향 병렬 포트

15) RESET

- 리셋 입력 핀으로서 50ns이상의 Low Lever 입력이 지속되면 리셋이 발생한다.

16) XTAL1

- 내부 발진(클럭 발생 증폭)회로의 입력 신호

17) XTAL2

- 내부 발진(클럭 발생 증폭)회로의 출력 신호

18) AREF

- A/D 컨버터의 레퍼런스 전압 핀

19) PEN

- 직렬 프로그램밍 모드에 대한 enable 을 설정한다.

- LOW 에서 enable

 

1. ATmega128 의 기본구조

1.1 특징

미국의 ATMEL 사의 ATmega128 8bit RISC(Reduced Instruction Set Computer) 구조의 AVR Core 를 사용하는 마이크로 컨트롤러중 하나입니다.

대부분의 명령어를 Single Cycle 에서 수행하고 I/O 구조는 외부에 추가되는 소자를 최소화 할수 있도록 설계 되어 있습니다. 칩 내부에는 발진회로, 타이머, UART, SPI, TWI, ADC, Analog 비교기, Watch-doc타이머 등이 들어 있습니다.

프로그램 영역과 데이터 영역이 분리되어 있으며 하버드 아키텍쳐 구조를 가지고 있어서 하나의 명령어가 수행되는 동안 다른 명령어를 미를 읽어 들이도록 되어있어 좀더 빠른 명령처리가 가능합니다. 또한 C언어에서 사용하기 편리하게 명령구조가 설계되어 있어 C언어에 최적화되어 있습니다.

ATmega128은 내부에서 프로그램 가능한 Flash, EEPROM, SRAM 을 가지고 있어 추가적이 메모리를 사용하지 않아도 사용이 가능합니다. 디버깅이 가능한 JTAG 회로를 이용해 저가의 툴을 연결해 개발이 용이 합니다.

l Features

High-performance, Low-power AVR® 8-bit Microcontroller

Advanced RISC Architecture

– 133 Powerful Instructions – Most Single Clock Cycle Execution

– 32 x 8 General Purpose Working Registers + Peripheral Control Registers

– Fully Static Operation

– Up to 16 MIPS Throughput at 16 MHz

– On-chip 2-cycle Multiplier

Nonvolatile Program and Data Memories

– 128K Bytes of In-System Reprogrammable Flash

Endurance: 1,000 Write/Erase Cycles

– Optional Boot Code Section with Independent Lock Bits

In-System Programming by On-chip Boot Program

True Read-While-Write Operation

– 4K Bytes EEPROM

Endurance: 100,000 Write/Erase Cycles

– 4K Bytes Internal SRAM

– Up to 64K Bytes Optional External Memory Space

– Programming Lock for Software Security

– SPI Interface for In-System Programming

JTAG (IEEE std. 1149.1 Compliant) Interface

– Boundary-scan Capabilities According to the JTAG Standard

– Extensive On-chip Debug Support

– Programming of Flash, EEPROM, Fuses and Lock Bits through the JTAG Interface

Peripheral Features

– Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes

– Two Expanded 16-bit Timer/Counters with Separate Prescaler, Compare Mode and Capture Mode

– Real Time Counter with Separate Oscillator

– Two 8-bit PWM Channels

– 6 PWM Channels with Programmable Resolution from 1 to 16 Bits

– 8-channel, 10-bit ADC

8 Single-ended Channels

7 Differential Channels

2 Differential Channels with Programmable Gain (1x, 10x, 200x)

– Byte-oriented 2-wire Serial Interface

– Dual Programmable Serial USARTs

– Master/Slave SPI Serial Interface

– Programmable Watchdog Timer with On-chip Oscillator

– On-chip Analog Comparator

Special Microcontroller Features

– Power-on Reset and Programmable Brown-out Detection

– Internal Calibrated RC Oscillator

– External and Internal Interrupt Sources

– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby

– Software Selectable Clock Frequency

– ATmega103 Compatibility Mode Selected by a Fuse

– Global Pull-up Disable

I/O and Packages

– 53 Programmable I/O Lines

– 64-lead TQFP

Operating Voltages

– 2.7 - 5.5V (ATmega128L)

– 4.5 - 5.5V (ATmega128)

Speed Grades

– 0 - 8 MHz (ATmega128L)

– 0 - 16 MHz (ATmega128)

EFM32GG990 전기/환경 규격

flash write 횟수 : 20000번

 

 

 

 

 

 

GPIO 특성 : 출력 입력 전압 설정에 따른 최대 최소 전압의 오차가 존재 한다

 

 

ADC 는 0~Vref 전압까지 측정 가능하고 (diff 모드는 -Vref/2 ~ Vref/2까지) , Vref 전압은 1.25~VDD 까지

ADC ch7을 ref로 쓰면 0 ~ (VDD-1.1) , ADC ch6을 ref로 쓰면 0~VDD 까지로 사용 가능하다.

(Vref 는 1.25V 또는 2.5V 를 쓰면 좋을듯)

DAC 출력 전압은 0~VDD 또는 -VDD ~ +VDD 까지

LCD는 30~200Hz 까지 사용 가능하고 2.0V ~ 3.8V까지 지원한다. (레벨설정으로 전압 조정)

 

 

 

 

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

[EFM32] EFM32GG990 Memory map  (0) 2012.11.09
[EFM32] EFM32GG990 기본  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 3  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 2  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 1  (0) 2012.11.09

Memory map

Memory map 은 일반적인 Cortex-M3 와 크게 다르지 않은듯 하다.

특이 사항으로

Peripherals bit band 와 SRAM bit band 를 가지고 있다. ( bit단위 억세스를 하기위한 번지)

CODE 공간에 User DATA 공간이 별도로 있다.

 

 

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

[EFM32] EFM32GG990 전기/환경 규격  (0) 2012.11.09
[EFM32] EFM32GG990 기본  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 3  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 2  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 1  (0) 2012.11.09

-ARM Cortex-M3 CPU platform
• High Performance 32-bit processor @ up to 48 MHz
• Memory Protection Unit
-Flexible Energy Management System
• 20 nA @ 3 V Shutoff Mode
• 0.4μA @ 3 V Shutoff Mode with RTC
• 0.9 μA @ 3 V Stop Mode, including Power-on Reset, Brown-out Detector, RAM and CPU retention
• 1.1 μA @ 3 V Deep Sleep Mode, including RTC with 32.768 kHz oscillator, Power-on Reset, Brown-out Detector,

RAM and CPU retention
• 50 μA/MHz @ 3 V Sleep Mode
• 200 μA/MHz @ 3 V Run Mode, with code executed from Flash
-1024/512 KB Flash
• Read-while-write support
-128/128 KB RAM
-86 General Purpose I/O pins
• Configurable Push-pull, Open-drain, pull resistor, drive strength
• Configurable peripheral I/O locations
• 16 asynchronous external interrupts
• Output state retention and wakeup from Shutoff Mode (출력상태유지)
-12 Channel DMA Controller
-12 Channel Peripheral Reflex System (PRS) for autonomous inter-peripheral signaling

(CPU와 관계없이 자율적으로 동작하는 PRS)
-Hardware AES with 128/256-bit keys in 54/75 cycles (H/W 암호화 모듈)
-Timers/Counters
• 4× 16-bit Timer/Counter
• 4×3 Compare/Capture/PWM channels
• 16-bit Low Energy Timer
• 1× 24-bit and 1× 32-bit Real-Time Counter
• 3× 16/8-bit Pulse Counter with asynchronous operation
• Watchdog Timer with dedicated RC oscillator @ 50 nA (전용 RC발진, Watchdog timer)
-Integrated LCD Controller for up to 8×34 segments
• Voltage boost, adjustable contrast and autonomous animation (CPU와 관계없는 자율적인 애니메이션)
-Backup Power Domain
• RTC and retention registers in a separate power domain, available in all energy modes

(모든 에너지 모드에서 사용하는 RTC,전원관리기)
• Operation from backup battery when main power drains out

-External Bus Interface for up to 4×256 MB of external memory mapped space
• TFT Controller with Direct Drive
-Communication interfaces
• 3× Universal Synchronous/Asynchronous Receiver/Transmitter
• UART/SPI/SmartCard (ISO 7816)/IrDA/I2S
• 2× Universal Asynchronous Receiver/Transmitter
• 2× Low Energy UART
• Autonomous operation with DMA in Deep Sleep Mode (sleep 상태에서 동작)
• 2× I2C Interface with SMBus support
• Address recognition in Stop Mode
• Universal Serial Bus (USB) with Host and OTG support
• Fully USB 2.0 compliant
• On-chip PHY and embedded 5V to 3.3V regulator
-Ultra low power precision analog peripherals
• 12-bit 1 Msamples/s Analog to Digital Converter
• 8 single ended channels/4 differential channels
• On-chip temperature sensor
• 12-bit 500 ksamples/s Digital to Analog Converter
• 2 single ended channels/1 differential channel
• 2× Analog Comparator
• Capacitive sensing with up to 16 inputs
• 3× Operational Amplifier
• 6.1 MHz GBW, Rail-to-rail, Programmable Gain
• Supply Voltage Comparator
-Low Energy Sensor Interface (LESENSE)
• Autonomous sensor monitoring in Deep Sleep Mode
• Wide range of sensors supported, including LC sensors and capacitive buttons
-Ultra efficient Power-on Reset and Brown-Out Detector
-Debug Interface
• 2-pin Serial Wire Debug interface
• 1-pin Serial Wire Viewer
• Embedded Trace Module v3.5 (ETM)
-Pre-Programmed Serial Bootloader
-Temperature range -40 to 85 ºC
-Single power supply 1.85 to 3.8 V
-BGA112 package

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

[EFM32] EFM32GG990 전기/환경 규격  (0) 2012.11.09
[EFM32] EFM32GG990 Memory map  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 3  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 2  (0) 2012.11.09
[EFM32] EFM32GG-STK3700 알아보기 1  (0) 2012.11.09

AC용 전류를 조정 하면서 시험을 하고자 하는데 정및도가 높은 상당한 고가로 구매하기가 어려웠다.

간이용 전류 조정을 생각하던중 대전류 로드 저항과 슬라이 닥스 를 이용한 구현으로 해결 하였다.

 

 

생각해 보면 간단하다.

 

일단 슬라이 닥스에의해 소모 전압이 변경된다. 이는 저항에서 사용되는 소모 전류가 변경  된다.

즉 전체 적인 소모 전력또한 변경 된다.

 

주의사항은 소모 전력을 얼마나 사용할것인지 최대 저항치를 계산하고 슬라이 닥스 와 저항의 용량을 조절 해야 한다.

 

간단한 계산을 해보면 (실효치등은 모두 무시하고 계산 하겠다.)

 

220V 에 0~2A 까지 사용 하려고 한다.

이때 2A에서 저항은 간단한 옴의 법칙에 따라 110옴 이 되어야 한다.

2A에서 최대 소모 전력은 440W 이므로

사용하려는 저항을 440W에서 사용 가능한 110옴 저항으로 사용 해야 하고

슬라이닥스 또한 440W로드가 사용가능한 것으로 선정 해야 한다.

 

다음은 실제로 구동되는 화면이다.

 

 

 

'공부 > 전자회로_전원' 카테고리의 다른 글

Power Integrations 홈페이지  (0) 2012.11.15
연 축전지(일명 납 축전지) 충전 IC  (0) 2012.11.14
AC 전류 측정  (0) 2012.11.14
[회로] AC 전원사용에 대한 생각  (0) 2012.11.09
[IC] AC-DC 레귤레이터 LNK306  (0) 2012.11.09

+ Recent posts