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

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

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

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

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

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

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

 
Опции темы
Непрочитано 17.02.2010, 19:55  
RY723
Заблокирован
 
Регистрация: 08.08.2007
Сообщений: 2,843
Сказал спасибо: 378
Сказали Спасибо 1,368 раз(а) в 746 сообщении(ях)
RY723 на пути к лучшему
По умолчанию Re: ATmega48-ATmega32 связь по SPI

Интерфейс SPI синхронный и тактовые импульсы выдаёт ведущее устройство. Отсюда вывод - если теряется бит от ведомого, значит не вовремя загружается байт для передачи в буфер ведомого. Либо слишком рано, либо слишком поздно. У интерфейса 4 провода, один из них - выбор ведомого устройства. Проверить, как используется этот провод и как загружается байт в буфер ведомого, по отношению к сигналу #SS. Проверить работу с флагами опустошения буфера SPSR:SPIF и флагом SPSR:WCOL (стр. 138 даташита на ATmega32). Проверить на одиночном байте и на серии.
Реклама:
RY723 вне форума  
Непрочитано 18.02.2010, 14:08  
Igor_w77
Прохожий
 
Регистрация: 01.07.2004
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Igor_w77 на пути к лучшему
По умолчанию Re: ATmega48-ATmega32 связь по SPI

Ура!!! ВСЕ РАБОТАЕТ!!!
Да, слейв не успевал заполнить SPDR после получения сигнала SS
Проблема решилась установкой паузи 10us (delay_us(10)) на мастере тоисть сначала устанавливаем SS=0 потом пауза потом передача данных.
Код мастера (компилятор CodeVision 2.04):

PORTB.0=0; // установка SS, активируем SPI слейва
delay_us(10); //пауза
a=spi(1); // передаем 1 принимаем «а»

Все оказалось очень просто.

Что касаться WCOL то, насколько я понял он, разрешает менять содержимое SPDR в процессе обмена данными. В моем случае это ненужно.

Большое спасибо, я Вам очень признателен за помощь.
Igor_w77 вне форума  
Непрочитано 23.02.2010, 23:06  
neopen
Прохожий
 
Регистрация: 02.10.2009
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
neopen на пути к лучшему
По умолчанию Re: ATmega48-ATmega32 связь по SPI

Привет всем. У меня похожая проблема, вот увидел на форуме. Сейчас скачаю файлы и буду разбираться.
neopen вне форума  
Непрочитано 17.05.2010, 02:44  
Klim63
Прохожий
 
Регистрация: 17.05.2010
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Klim63 на пути к лучшему
По умолчанию Re: ATmega48-ATmega32 связь по SPI

Сообщение от Igor_w77 Посмотреть сообщение
"В направлении передачи данных система выполнена как однобуферная, а в направлении приема используется двойная буферизация. Это означает, что передаваемые байты не могут быть записаны в регистр данных SPI, прежде чем полностью завершится цикл сдвига. Во время приема данных необходимо следить, чтобы принятая посылка была считана из регистра данных SPI, прежде чем завершится цикл входящего сдвига новой посылки. В противном случае первый байт будет потерян."
Это значит что для приема информации от слейва необходимо мастеру в регистр SPDR забросить любое число и ждать пока установится флаг прерывания. После этого можно считать с регистра SPDR полученое число. Без числа в регистре даных прием не происходит.

Инициализация SPI в ATMEGA32 производится двумя регистрами
SPCR
7 SPIE - Запрет прерываний, 1-Разрешено
6 SPE - 0-SPI останов, 1- Работа
5 DORD - Начало передачи, 0-со старшего бита 1- с младшего
4 MSTR - 1 - SPI Сконфигурирован Мастер, 0- slave
3 CPOL - Полярность тактового игнала, 0-(+), 1-(-)
2 CPHA - Захват тактового сигнала, 0-по переднему фронту,1-по Заднему
1-0 SPR1, SPR0 - Деление частоты контролера 0-на 4, 1-16,2-64,3-128 без умножения на 2
SPSR=0x01 умножение частоты на 2.

ATMEGA32 работает с кварцом на частотах до 16МГц.

ПОМОГИТЕ КТО ЗНАЕТ!!!
При работе с Протеусом 7 SP3, при инициализации SPI на умножение частоты на 2, SPSR=0x01 выдается ошибка: Attempted to write address.
Такая ошибка только в Протеусе. AVR Studio ошибки не выдает и в даташите этот регистр описан.
Klim63 вне форума  
Непрочитано 14.10.2011, 11:20  
chinga_92
Прохожий
 
Регистрация: 14.10.2011
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
chinga_92 на пути к лучшему
По умолчанию Re: ATmega48-ATmega32 связь по SPI

Здравствуйте форумчани)
вот я учусь с SPI работать)
тут все смотрел то сё, но все же не могу понять
у меня модель рф модуль nRF24L01. и с чипом, там пик стоит. пик запрограммирован, он принимает с с ком порта, и передает эти данные через SPI. и это рабочий макет. но я не могу что бы принимал сигналы АВР, с приемника. приемник подключен, вот и схема подключения.
теперь надо что бы выводил данные которые с комп ввожу. как принимать? ну в смысл как реализовать?) именно эта часть чет сложновато
Миниатюры:
Нажмите на изображение для увеличения
Название: ATMEGA32-pinout.jpg
Просмотров: 97
Размер:	67.2 Кб
ID:	27129  
chinga_92 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Однокристальные трансиверы TRC101 от RFM... Panchiks Автоматика и аппаратура связи 340 15.05.2017 21:10
Простейший программатор SPI EEPROM dimmich Микроконтроллеры, АЦП, память и т.д 6 09.08.2010 23:08
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


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


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