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

 
 
> AD7792+AVR, Помогите начинающему драйверами на ассемблере
megaalex
сообщение Mar 24 2007, 15:03
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 24-03-07
Пользователь №: 26 472



Помогите драйверами.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
add
сообщение Mar 27 2007, 16:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Может есть кто мог бы про инициализацию AD7792/93 расказать?
SergeiCh если рботали поделитесь пожалуйста инфой. Неужели для одиночного преобразования достаточно послать 0х58 и забрать данные?


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Mar 27 2007, 17:31
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



У AD7792/3 много регистров, они нормально описаны в дейташите. Сначала АЦП конфигурируется под задачу (какой ИОН, генератор, усиление и т.д.).

Код
void ad7793_init(void)
{
    int8_t i;
    /* Настройка порта */
    DDRSPI |= (_BV(SPISS)|_BV(SPIMO)|_BV(SPISCK));
    spi_ss_clear();
    SPCR = _BV(SPE)|_BV(MSTR)|_BV(CPOL)|_BV(CPHA); /* MSB первый, mode 3,  f/4 */
    for (i = 0; i < 4;i++) spi_rw(0xFF);
    /* настройка АЦП */
    spi_rw(AD_CR_CON_W);
    spi_rw(high(AD_CON));
    spi_rw(low(AD_CON));
    spi_rw(AD_CR_IO_W);
    spi_rw(AD_IO);
    /* Калибровка */
    spi_rw(AD_CR_MD_W);
    spi_rw(high(AD_MR_INT_ZSC));
    spi_rw(low(AD_MR_INT_ZSC));
    _delay_ms(10);
    loop_until_bit_is_clear(PINSPI,PINRDY);
    spi_rw(AD_CR_MD_W);
    spi_rw(high(AD_MR_INT_FSC));
    spi_rw(low(AD_MR_INT_FSC));
    _delay_ms(10);
    loop_until_bit_is_clear(PINSPI,PINRDY);
}


Потом устанавливается режим.

Код
void ad7793_mode_set(uint16_t mode)
{
    spi_rw(AD_CR_MD_W);
    spi_rw(high(mode));
    spi_rw(low(mode));
}


Есть три режима работы (которые также описаны в дейташите), если не ошибаюсь. В одном из них действительно достаточно посылать один байт.

Код
uint32_t ad7793_data_get(void)
{
    uint32_t t = 0;
    loop_until_bit_is_clear(PINSPI,PINRDY);
    spi_rw(AD_CR_DR_R);
    *((uint8_t *)(&t) + 2) = spi_rw(0xFF);
    *((uint8_t *)(&t) + 1) = spi_rw(0xFF);
    *((uint8_t *)(&t)) = spi_rw(0xFF);
    return t;
}


Удачи!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- megaalex   AD7792+AVR   Mar 24 2007, 15:03
- - =GM=   Цитата(megaalex @ Mar 24 2007, 12:03) Пом...   Mar 24 2007, 16:21
- - add   ЦитатаAD7792 вполне можно подключить к АВР, исполь...   Mar 26 2007, 09:18
- - slog   Datashit читать пробовал? Я думаю там есть все отв...   Mar 26 2007, 13:04
- - SergeiCh   Использовал AD7793 + ТСП100 + ATmega64 для измерен...   Mar 27 2007, 16:16
|- - Ruslan1   Цитата(SergeiCh @ Mar 27 2007, 15:16) Исп...   Apr 5 2007, 10:23
- - slog   Цитата(Ruslan1 @ Apr 5 2007, 11:23) Вообщ...   Apr 9 2007, 14:25
|- - Ruslan1   Цитата(slog @ Apr 9 2007, 14:25) И не 5%,...   Apr 10 2007, 07:44
- - Сергей К   Вот и я начал мучать эту AD7792. Естественно измер...   Oct 30 2008, 08:11
- - Сергей К   1. Но вот вопрос с измерением температуры кристалл...   Nov 6 2008, 13:19
|- - SeregaB   Цитата(Сергей К @ Nov 6 2008, 16:19) 1. Н...   Nov 10 2008, 09:03
- - Сергей К   Спасибо. Но эту цифру я видел, но зато теперь наше...   Nov 13 2008, 14:02
- - firstvald   бЛИН, заложил 7793 и уже начал раскаиваться. Пока...   Jun 13 2010, 08:21
- - DVF   Ну, вот, а я в следующей разработке хотел использо...   Jun 13 2010, 19:23
- - yanvasiij   Люди, столкнулся с такой проблемой на ad7792: при ...   Oct 15 2013, 13:08
|- - Ruslan1   Цитата(yanvasiij @ Oct 15 2013, 16:08) Лю...   Oct 25 2013, 23:17
- - Lanselot   Всем привет! Хочу использовать этот АЦП для св...   Oct 24 2013, 17:41


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:01
Рейтинг@Mail.ru


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