Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
muh13
1

SPI и Proteus

04.12.2012, 16:46. Просмотров 7726. Ответов 3
Метки нет (Все метки)

Подскажите где я не прав...
Пытаюсь организовать обмен по SPI интерфейсу.
Написал минимум кода и загрузил в протеус:

.include "m88def.yms"

risit:
ldi R16, 0b11110111 // Настраиваем порт B на ввод/ввывод (MISO - ввод, остальные на вывод)
out DDRB, R16 //

ldi R16, 0b11010001 // Включаем SPI (мастером)
out SPCR, R16 //

sei // Включаем прерывания.

ldi R16, 0xaa // Динные на отправку.

main:
In r17, SPSR // Проверяем возможность отправления данных.
sbrs r17, SPIF //
rjmp main

out SPDR, R16 // Отправляем данные.
rjmp main //

К ножке SCK и MOSI в протеусе подключил осциллограф и решил заценить сигналы, которые как мне казалось должны были появиться в виде диаграмм, но увы...
Может кто подскажет - что не так?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2012, 16:46
Ответы с готовыми решениями:

Инициализация SPI в Proteus на микроконтроллере avr
Особо не ругайтесь, впервые пробую подключить. Мне нужно знать что я делаю не так, вот скрины кода...

SPI Flash 25q128 как SD в SPI mode ?
ну задача использовать spi флешки вместо sd карт. Как это зделать? Будет ли работать если...

ILI9341 SPI DMA, SPI, UART библиотеки
Доброго времени, форумчане... Посоветуйте библиотек плиз... 0) Либа для работы с контроллером по...

SPI -> 485->SPI
Есть необходимость переводить SPI на 485 интерфейс. Хотел бы уточнить, драйвер 485 сажать напрямую...

3
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
04.12.2012, 16:59 2
Почему просто не подключить SPI Debugger?
0
muh13
04.12.2012, 17:24 3
Дебигер, равно как и осциллограф так же ничего интересного не показал.
0 / 0 / 0
Регистрация: 11.12.2011
Сообщений: 789
04.12.2012, 17:55 4
А что происходит, когда возникает разрешенное прерывание по завершению передачи по SPI? Не вижу обработчика прерывания. У вас данные никогда не отправятся -
Код
main:
In r17, SPSR // Проверяем возможность отправления данных.
sbrs r17, SPIF // - проверяем флаг SPI interrupt flag, который должен выставиться, когда передача завершена
rjmp main      // иначе - переход в начало

out SPDR, R16 // Отправляем данные. - сюда программа никогда не дойдет, тк чтобы сюда попасть, нужно... в общем читаем даташит внимательно
rjmp main //
Вот так работает
Код
.include "m88def.yms"

.cseg
.org $000
rjmp risit
.org $00A      //(SPI,STC) Serial Transfer Complete
reti

risit:
ldi R16, 0b11101111 // Настраиваем порт B на ввод/ввывод (MISO - ввод, остальные на вывод)
out DDRB, R16 //

ldi R16, (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<SPR0)|(1<<SPIE) // Включаем SPI (мастером)
out SPCR, R16 //

sei // Включаем прерывания.

ldi R16, 0xaa // Динные на отправку.

main:
out SPDR, R16 // Отправляем данные.
in r17, SPSR // Проверяем возможность отправления данных.
sbrs r17, 7 // пока нет флага прерывания -
rjmp pc-2   // тупим на месте
rjmp main   // иначе - в начало
Набросано на скорую руку, поэтому все же курите даташит по поводу правильной настройки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2012, 17:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Proteus + C++
Извините за дебильную тему, но у меня не получается настроить протеус для взаимодействия с...

proteus
установил протеус и был удивлён что часть выводов МК мега16 отсутсвуют Vcc gnd и ещё несколько,...

Proteus vs ?
А чем бы заменить Протеус? Он блин, платный, но покупать неохота, ломать - тоже. Как мне быть?

Проблема с Proteus 7.10
Приветствую. Вот такая проблема, я скачал и установил Proteus 7.10, крякнул как положено и поставил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.