Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 11.02.2011, 12:54   #1
Prevan
Прохожий
 
Регистрация: 26.04.2010
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
Prevan на пути к лучшему
Вопрос Подключение AT90S8515 с помощью SPI

Пытаюсь подключить два микроконтроллера AT90S8515 по интерфейсу SPI. Каждый МК имеет задатчики порта D (ввод данных) и индикацию порта С (вывод данных). Замысел программы предполагает при изменении задатчиков первого МК вывод этих изменений на второй МК и наоборот. При запуске программы PROTEUS выдаёт предупреждение: "PC is out of ROM space" (счётчик команд за пределами памяти). При запуске этой же программы, но с МК AT90S8535 программа работает согласно замыслу, без ошибок и предупреждений. Может кто-нибудь подскажет в чем ошибка.

Содержание кода программы первого МК (Master):
Код:
.include "8515def.inc"
rjmp RESET   ; Переход к метке Reset
rjmp SPI_STC ; Переход к метке SPI_STC

reset:
ldi r16,(1‹‹PB4)+(1‹‹PB5)+(1‹‹PB7)
out ddrb,r16	;mosi, SS и sck входы

ldi r16,255
out portd,r16	;Подключаем выводы порта D к шине +5В через подтягивающие резисторы
out ddrc,r16	;Порт С на вывод

ldi r16,(1‹‹spie)+(1‹‹spe)+(1‹‹mstr)
out spcr,r16	;spi включен, spi прерывания, режим master

in r16,pind	;копируем данные
out spdr,r16	;в регистр spdr SPI

ldi r16,high(RAMEND)
out SPH,r16 	; инициализация указателя стека в конце ОЗУ
ldi r16,low(RAMEND)
out SPL,r16
sei 			;Разрешение прерываний

ldi r16,(1‹‹PB4); ss-›1 
out portb,r16

ldi r16,(1‹‹spie)+(1‹‹spe)+(1‹‹mstr)
out spcr,r16	; режим master

main:		;Главная программа
inc r17
cpi r17,255
breq spi_transmit
rjmp main	

SPI_STC:

in r16,spdr	; Копирование и вывод принятых данных
out portc,r16

reti

spi_transmit:
ldi r17,0

in r16,pind	;Копируем в регистр spdr состояние выводов порта D
out spdr,r16

ldi r16,(0‹‹PB4)
out portb,r16	;ss pin-›0

rjmp main
Содержание кода программы второго МК (Slave):
Код:
.include "8515def.inc"
rjmp RESET   ; Переход к метке Reset
rjmp SPI_STC ; Переход к метке SPI_STC

reset:
ldi r16,(1‹‹pb6)
out ddrb,r16	;miso выход

ldi r16,(1‹‹pb6)
out portb,r16	;ss подключаем к шине +5 В

ldi r16,255
out portd,r16	;порт D подключаем к шине +5 В

ldi r16,255
out ddrc,r16	;Порт С на вывод

ldi r16,(1‹‹spie)+(1‹‹spe)
out spcr,r16	;spi включен и прерывание spi

ldi r16,high(RAMEND)
out SPH,r16 	; Инициализация указателя стека в конце ОЗУ
ldi r16,low(RAMEND)
out SPL,r16
sei 			; Разрешены прерывания

main:
rjmp main		; Главная программа

SPI_STC:

in r16,spdr		;читаем содержание регистра spdr
out portc,r16		;и выводим его на индикацию

in R16,PIND		;читаем значение порта D
out spdr,r16		;и копируем их в регистр spdr

ldi r16,(1‹‹spie)+(1‹‹spe)
out spcr,r16	;spi включен и прерывание spi

reti
В прилагаемых файлах схема подключения "Схема.jpg" и проект протеуса "8515.rar".
Миниатюры:
Нажмите на изображение для увеличения
Название: Схема.JPG
Просмотров: 100
Размер:	60.2 Кб
ID:	18144  
Вложения:
Тип файла: rar 8515.rar (40.1 Кб, 67 просмотров)
Реклама:
Prevan вне форума  
Закрытая тема

Закладки

Метки
at90s8515, avr, spi, интерфейс, микроконтроллер


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Однокристальные трансиверы TRC101 от RFM... Panchiks Автоматика и аппаратура связи 340 15.05.2017 21:10
Управление нагрузками с помощью LPT R2911 TTL и CMOS логика 14 11.08.2014 07:54
Организация SPI в PIC 32 forker Микроконтроллеры, АЦП, память и т.д 3 16.09.2010 18:47
SPI по шлейфу. Gnider Микроконтроллеры, АЦП, память и т.д 14 06.04.2010 06:40
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


Часовой пояс GMT +4, время: 02:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot