Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методички по Микропроцессорам / Приложение Б(134-140)

.doc
Скачиваний:
24
Добавлен:
26.04.2015
Размер:
176.13 Кб
Скачать

Приложение Б

Архитектура и организация памяти микроконтроллера АТ90S8535

В лабораторном комплексе используется (изучается) микроконтроллер AT90S8535 в корпусе PDIP с 40 выводами (рис. Б1).

Рис. Б1. Микроконтроллер AT90S8535 в PDIP корпусе

В табл. Б1 представлено назначение выводов микроконтроллера AT90S8535. Многие выводы имеют альтернативное назначение, которое записано в скобках. Например, выводы порта А РА0…РА7 микроконтроллера могут использоваться как входы аналого–цифровых преобразователей ADC0…ADC7.

На рис. Б2 представлен функциональный состав изучаемого микроконтроллера. Как следует из рис. Б2, микроконтроллер AT90S8535 включает в себя следующие функциональные узлы:

  • 8-разрядное арифметико-логическое устройство (АЛУ);

  • внутреннюю flash-память программ объемом 8 Кбайт с возможностью программирования через последовательный интерфейс SPI;

  • 32 регистра общего назначения;

  • внутреннюю EEPROM-память данных объемом 512 байт;

  • внутреннее ОЗУ данных объемом 512 байт;

  • 4 параллельных 8-разрядных порта;

  • 10-разрядный 8-канальный АЦП и аналоговый компаратор;

  • последовательный интерфейс UART и SPI;

  • блоки прерывания и управления (включая сторожевой таймер).

Таблица Б1

Номер вывода

Выполняемая функция

1

PB0(T0) – канал 0 порта B (внешний вход таймера/счётчика0)

2

PB1(T1) – канал 1 порта B (внешний вход таймера/счётчика1)

3

PB2(AIN0) – канал 2 порта B (положительный вывод компаратора)

4

PB3(AIN1) – канал 3 порта B (отрицательный вывод компаратора)

5

PB4() – канал 4порта B (вход выбора ведомого SPI)

6

PB5(MOSI) – канал 5 порта B (установка ведущий вывод/ведомый вход SPI)

7

PB6(MISO) – канал 6 порта B (установка ведущий вход/ведомый выход SPI)

8

PB7(SCK) – канал 7 порта B (тактовый сигнал порта SPI)

9

- вход сброса

10

Vcc – внешнее напряжение питания

11

GND – общий вывод (земля)

12

XTAL2 – вход схемы встроенного генератора тактовой частоты

13

XTAL1 – вход схемы встроенного генератора тактовой частоты

14

PD0(RxD) – канал 0 порта D (вход приёмника UART)

15

PD1(TxD) – канал 1 порта D (выход передатчика UART)

16

PD2(INT0) – канал 2 порта D (вход внешнего прерывания 0)

17

PD3(INT1) – канал 3 порта D (вход внешнего прерывания 1)

18

PD4(OC1B) – канал 4 порта D (выход B ШИМ таймера/счётчика1)

19

PD5(OC1A) – канал 5 порта D (выход A ШИМ таймера/счётчика1)

20

PD6(ICP) – канал 6 порта D (вход триггера захвата таймера/счётчика1)

21

PD7(OC2) – канал 7 порта D (выход ШИМ таймера/счётчика2)

22

PC0 – канал 0 порта С

23

PC1 – канал 1 порта С

24

PC2 – канал 2 порта С

25

PC3 – канал 3 порта С

26

PC4 – канал 4 порта С

27

PC5 – канал 5 порта С

28

PC6 (TOSC1) – канал 6 порта С (подключение внешнего генератора)

29

PC7 (TOSC2) – канал 7 порта С (подключение внешнего генератора)

30

AVCC – напряжение питания АЦП

31

AGND – аналоговая земля

32

AREF – вход аналогового напряжения сравнения для АЦП

33

PA7 (ADC7) – канал 7 порта A (7-й АЦП)

34

PA6 (ADC6) – канал 6 порта A (6-й АЦП)

35

PA5 (ADC5) – канал 5 порта A (5-й АЦП)

36

PA4 (ADC4) – канал 4 порта A (4-й АЦП)

37

PA3 (ADC3) – канал 3 порта A (3-й АЦП)

38

PA2 (ADC2) – канал 2 порта A (2-й АЦП)

39

PA1 (ADC1) – канал 1 порта A (1-й АЦП)

40

PA0 (ADC0) – канал 0 порта A (0-й АЦП)

Рис. Б2. Архитектура микроконтроллера AT90S8535

Микроконтроллер AT90S8535 имеет раздельные пространства адресов памяти программ и данных (гарвардская архитектура). Организация памяти контроллера представлена на рис. Б3.

Микроконтроллер AT90S8535 содержит 8 Кбайт внутреннего программируемого Flash ПЗУ. Поскольку все команды имеют формат одного или двух 16-разрядных слов, то и память программ имеет организацию 4К *16. Flash-память обеспечивает не менее 1000 циклов стирания/записи.

Память данных (память DATA) включает в себя 32 регистра общего назначения , 64 регистра ввода/вывода (I/O), 512 байт встроенной оперативной памяти (SRAM) и 512 байт EEPROM.

На рис. Б4 представлена структура 32 регистров общего назначения.

Рис. Б3. Организация памяти микроконтроллера AT90S8535

7 0

Адрес

R0

$00

R1

$01

R2

$02



R13

$0D

R14

$0E

R15

$0F

Регистры

R16

$10

общего

R17

$11

назначения



R26

$1A

Младший байт регистра X

R27

S1B

Старший байт регистра X

R28

$1C

Младший байт регистра Y

R29

$1D

Старший байт регистра Y

R30

$1E

Младший байт регистра Z

R31

$1F

Старший байт регистра Z

Рис. Б4. Регистры общего назначения

Все регистровые команды обращаются непосредственно к регистрам в течение одного тактового цикла. Исключением являются пять логических и арифметических операций с константами (SBCI, SUBI, CPI и ANDI) и операция ORI между константой и содержимым регистра, и команда непосредственной загрузки константы LDI. Эти команды используют вторую половину регистров регистрового файла - R16…R31. Самые общие команды SBC, SUB, CP, AND и OR и все прочие операции между двумя регистрами или с одним регистром используют для записи результата регистровый файл.

Шесть регистров (с R26 по R31) регистрового файла (рис. Б5), кроме обычной для прочих регистров функций, выполняют функцию 16-разрядных регистров указателей адреса при косвенной адресации SRAM. Эти три регистра косвенной адресации определяются как регистры X,Y и Z.

В различных режимах адресации эти регистры выполняют функции фиксированного смещения, автоматического инкремента и декремента.

15

0

Регистр X

7 0

7 0

R27 ($1B)

R26 ($1A)

15

0

Регистр Y

7 0

7 0

R29 ($1D)

R28 ($1C)

15

0

Регистр Z

7 0

7 0

R31 ($1F)

R30 ($1E)

Рис. Б5. X,Y и Z регистры

Файл регистров общего назначения прямо связан с АЛУ. Каждый из регистров способен работать как аккумулятор. Большинство команд выполняются за один такт, при этом из файла выбираются два операнда, выполняется операция и результат вновь возвращается в файл регистров.

Регистровый файл может использоваться и для обычной адресации памяти. Это объясняется тем, что файл регистров располагается по 32 самым младшим адресам пространств данных, и к ним можно обращаться как к обычным ячейкам памяти.

Пространство памяти I/O содержит 64 адреса периферийных функций CPU таких как: регистры управления, таймеры/счетчики, аналого-цифровые преобразователи и другие I/O функции. К памяти I/O можно обращаться непосредственно или как к ячейкам пространства памяти, соответствующим адресам регистра файлов $20 - $5F.

В табл.Б2 представлены регистры области памяти I/O. Для каждого регистра дается адрес при непосредственном к нему обращении и в скобках – при обращении как к ячейке пространства памяти данных.

Таблица Б2

Адрес

Обознач.

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

$3F ($5F)

SREG

I

T

H

S

V

N

Z

C

$3E ($5E)

SPH

SP9

SP8

$3D ($5D)

SPL

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

$3C ($5C)

Reserved

$3B ($5B)

GIMSK

INT1

INT0

$3A ($5A)

GIFR

INTF1

INTF0

$39 ($59)

TIMSK

OCIE2

TOIE2

TICIE1

OCIE1A

OCIE1B

TOIE1

TOIE0

$38 ($58)

TIFR

OCF2

TOV2

ICF1

OCF1A

OCF1B

TOV1

TOV0

$37 ($57)

Reserved

$36 ($56)

Reserved

$35 ($55)

MCUCR

SE

SM1

SM0

ISC11

ISC10

ISC01

ISC00

$34 ($54)

MCUSR

EXTRF

PORF

$33 ($53)

TCCR0

CS02

CS01

CS00

$32 ($52)

TCNT0

Таймер/счетчик0 (8-разрядный)

$31 ($51)

Reserved

$30 ($50)

Reserved

$2F ($4F)

TCCR1A

COM1A1

COM1A0

COM1B1

COM1B0

PWM11

PWM10

$2E ($4E)

TCCR1B

ICNC1

ICES1

CTC1

CS12

CS11

CS10

$2D ($4D)

TCNT1H

Старший байт регистра счетчика Таймера/ счетчика1

$2С ($4С)

TCNT1L

Младший байт регистра счетчика Таймера/ счетчика1

$2В ($4В)

OCR1AH

Старший байт регистра сравнения A выхода Таймера/счетчика1

$2A ($4A)

OCR1AL

Младший байт регистра сравнения A выхода Таймера/счетчика1

$29 ($49)

OCR1BH

Старший байт регистра сравнения B выхода Таймера/счетчика1

$28 ($48)

OCR1BL

Младший байт регистра сравнения B выхода Таймера/счетчика1

$27 ($47)

ICR1H

Старший байт регистра захвата входа Таймера/счетчика1

$26 ($46)

ICR1L

Младший байт регистра захвата входа Таймера/счетчика1

$25 ($45)

TCCR2

PWM2

COM21

COM20

CTC2

CS22

CS21

CS20

$24 ($44)

TCNT2

Таймер/счетчик2 (8-разрядный)

$23 ($43)

OCR2

Регистр сравнения выхода Таймера/счетчика2

$22 ($42)

ASSR

AS2

TCN2UB

OCR2UB

TCR2UB

$21 ($41)

WDTCR

WDTOE

WDE

WDP2

WDP1

WDP0

$20 ($40)

Reserved

$1F ($3F)

EEARH

EEAR9

$1E ($3E)

EEARL

EEAR7

EEAR6

EEAR5

EEAR4

EEAR3

EEAR2

EEAR1

EEAR0

$1D ($3D)

EEDR

Регистр данных EEPROM

$1C ($3C)

EECR

EERIE

EEMWE

EEWE

EERE

$1B ($3B)

PORTA

PORTA7

PORTA6

PORTA5

PORTA4

PORTA3

PORTA2

PORTA1

PORTA0

$1A ($3A)

DDRA

DDA7

DDA6

DDA5

DDA4

DDA3

DDA2

DDA1

DDA0

$19 ($39)

PINA

PINA7

PINA6

PINA5

PINA4

PINA3

PINA2

PINA1

PINA0

$18 ($38)

PORTB

PORTB7

PORTB6

PORTB5

PORTB4

PORTB3

PORTB2

PORTB1

PORTB0

$17 ($37)

DDRB

DDB7

DDB6

DDB5

DDB4

DDB3

DDB2

DDB1

DDB0

$16 ($36)

PINB

PINB7

PINB6

PINB5

PINB4

PINB3

PINB2

PINB1

PINB0

$15 ($35)

PORTC

PORTC7

PORTC6

PORTC5

PORTC4

PORTC3

PORTC2

PORTC1

PORTC0

$14 ($34)

DDRC

DDC7

DDC6

DDC5

DDC4

DDC3

DDC2

DDC1

DDC0

$13 ($33)

PINC

PINC7

PINC6

PINC5

PINC4

PINC3

PINC2

PINC1

PINC0

$12 ($32)

PORTD

PORTD7

PORTD6

PORTD5

PORTD4

PORTD3

PORTD2

PORTD1

PORTD0

$11 ($31)

DDRD

DDD7

DDD6

DDD5

DDD4

DDD3

DDD2

DDD1

DDD0

$10 ($30)

PIND

PIND7

PIND6

PIND5

PIND4

PIND3

PIND2

PIND1

PIND0

$0F ($2F)

SPDR

Регистр данных SPI

$0E ($2E)

SPSR

SPIF

WCOL

$0D ($2D)

SPCR

SPIE

SPE

DORD

MSTR

CROL

CPHA

SPR1

SPR0

$0C ($2C)

UDR

Регистр данных UART

$0B ($2B)

USR

RXC

TXC

UDRE

FE

OR

$0A ($2A)

UCR

RXCIE

TXCIE

UDRIE

RXEN

TXEN

CHR9

RXB8

TXB8

$09 ($29)

UBRR

Регистр управления скоростью UART

$08 ($28)

ACSR

ACD

ACO

ACI

ACIE

ACIC

ACIS1

ACIS0

$07 ($27)

ADMUX

MUX2

MUX1

MUX0

$06 ($26)

ADCSR

ADEN

ADSC

ADFR

ADIF

ADIE

ADPS2

ADPS1

ADPS0

$05 ($25)

ADCH

ADC9

ADC8

$04 ($24)

ADCL

ADC7

ADC6

ADC5

ADC4

ADC3

ADC2

ADC1

ADC0

$03 ($20)

Reserved

$02 ($22)

Reserved

$01 ($21)

Reserved

$00 ($20)

Reserved