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

 
 
> Обмен по SPI, ad5302
Hellper
сообщение Mar 27 2009, 10:57
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 13-08-07
Из: Санкт-Петербург
Пользователь №: 29 745



Периодически получается и напряжение изменяется, но чаще обмен не происходит.

Инициализация SPI:
Код
void init_spi(void)
{
    SPCR = (0 << SPIE)|(1 << SPE)|(0 << DORD)|(1 << MSTR)|(0 << CPOL)|(1 << CPHA)|(1 << SPR1)|(1 << SPR0);
    SPSR=0x00;
}

Ф. пересылки:
Код
#define CLEARBIT(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
#define SETBIT(ADDRESS,BIT) (ADDRESS |= (1<<BIT))

void spi_master_transmit(uint8_t data)
{
    transfer = false;
    SPDR = data;
    while(!(SPSR & (1<<SPIF)))
;
}

void change_one(uint8_t value)
{
    uint8_t tmp1 = 0;
    uint8_t tmp2 = 0;
    CLEARBIT(PORT_SYNC, PIN_SYNC);
    tmp1 += (value >> 4);
    tmp2 = (value << 4);
    spi_master_transmit(tmp1);
    spi_master_transmit(tmp2);
    SETBIT(PORT_SYNC, PIN_SYNC);
}


помогите, а ?
Прикрепленные файлы
Прикрепленный файл  ad5302.pdf ( 207.89 килобайт ) Кол-во скачиваний: 27
 


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hellper
сообщение Mar 27 2009, 11:47
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 13-08-07
Из: Санкт-Петербург
Пользователь №: 29 745



LDAC, вроде, нужен для установки одновременно значений на выходе.
он у меня в высокоимпедансном состоянии.
сброс осуществляется установкой значения в регистре ?
SETBIT(SPSR, SPIF); ???


--------------------
Go to the top of the page
 
+Quote Post
Diusha
сообщение Mar 30 2009, 02:49
Сообщение #3


Вечный студент
****

Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262



Цитата(Hellper @ Mar 27 2009, 14:47) *
LDAC, вроде, нужен для установки одновременно значений на выходе.
он у меня в высокоимпедансном состоянии.

Цитата(ANALOG DEVICES)
When LDAC is high, the DAC register is latched and the input
register may change state without affecting the contents of the
DAC register. However, when LDAC is brought low, the DAC
register becomes transparent and the contents of the input regis-
ter are transferred to it.

LDAC - на землю!
Go to the top of the page
 
+Quote Post



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

 


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


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