реклама на сайте
подробности

 
 
> использование USI Atiny24 как SPI
valera_o
сообщение Sep 15 2009, 12:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402



Читаю неделю на английском ничего не могу понять. Т.е. читаю назначение битов USICR - почти понятно но не работает. Перебрал комбинации - сим авр студии не показывает сдвижки данных в регистре USIDR.
Собственно нужно организовать обмен с ат45дб011.

USICR=0x13;

unsigned char spi(unsigned char data)
{
USIDR=data;
while ((USISR.USIOIF)==0)
{
PORTA^= (1<<SCL);
}
return USIDR;
}
Пробовал колбасить биты USICLK или USITC, сим показывает перепады на порту А, но сдвижки в усидр нет, флаг - молчит.
Помогите кто может... Вообще объясните, это просто "набор железа" для программной реализации или как? На аппаратную реализацию спи в мегах ну никак не похоже...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
valera_o
сообщение Sep 21 2009, 10:19
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 2-04-08
Пользователь №: 36 402



При передаче с контроллера одного бита, один бит приходит от ат45 или любого другого устройства, т.е. прием-передача как раз одновременно. Это моё мнение, регистры данных двух устройств закольцованы... Или нет?
Go to the top of the page
 
+Quote Post
ReAl
сообщение Sep 21 2009, 10:35
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(valera_o @ Sep 21 2009, 13:19) *
При передаче с контроллера одного бита, один бит приходит от ат45 или любого другого устройства, т.е. прием-передача как раз одновременно. Это моё мнение, регистры данных двух устройств закольцованы... Или нет?

Да, но при передаче в AT45 байтов команды, адреса и записываемых данных можно игнорировать передаваемые из неё байты, а при чтении из неё данных (уже после передачи последнего байта адреса) - можно в неё писать что угодно, в том числе smile.gif все нули или все единички.
Я бы не сказал, что это "упрощает" написание программного SPI, вместо одной простенькой функции
Код
uint8_t spi_io(uint8_t data);
надо писать две столь же простеньких
Код
uint8_t spi_in(void);
void t spi_out(uint8_t data);
однако обмен по второму варианту будет быстрее.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- valera_o   использование USI Atiny24 как SPI   Sep 15 2009, 12:51
- - Rst7   В даташите же есть пример. Зачем самодеятельность ...   Sep 15 2009, 12:58
- - valera_o   Дело в том, что пробовал и такой вариант, но в сим...   Sep 15 2009, 18:58
- - Александр Куличок   посмотри AVR319 - Using the USI module for SPI com...   Sep 15 2009, 19:41
- - valera_o   #include <tiny24.h> #define USIOIF 6 #defi...   Sep 16 2009, 07:26
- - Александр Куличок   ЦитатаВисят "1" на моси и сцл и всё. Ат...   Sep 16 2009, 09:28
- - valera_o   Раньше такая очистка у меня работала, сейчас в сим...   Sep 16 2009, 12:09
- - valera_o   Не, ну я расстроен, наглухо. ат45дб отлично стыков...   Sep 16 2009, 14:18
- - Александр Куличок   Цитатасейчас в симе аврстудии флаг устанавливается...   Sep 16 2009, 14:21
- - valera_o   Если перебросить ноги "до", тогда нужно ...   Sep 16 2009, 20:40
- - Александр Куличок   Если писать SPI только под АТ45, то дело значитель...   Sep 17 2009, 14:17
- - vladimir_orl   Читаю эту тему. И возникает вопрос. Вот для режимо...   Nov 29 2013, 11:34
- - s_black   Вот, может быть, здесь чё-то полезное почерпнёте. ...   Dec 3 2013, 06:32
- - GeorgyBey   И все-таки (уж извините за тупость) как в реале об...   Jul 3 2016, 13:14
- - ILYAUL   ЦитатаСимулятор вообще симулирует в этом случае чт...   Jul 3 2016, 18:39
|- - GeorgyBey   Цитата(ILYAUL @ Jul 3 2016, 21:39) ( если...   Jul 3 2016, 19:56
- - ILYAUL   Честно говоря , это настолько избитая тема связанн...   Jul 3 2016, 22:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 15:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016