Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

работал. АЦП оставил хорошее впечатление

Отправлено koyodza 22 августа 2008 г. 19:50
В ответ на: Вопрос по ADS1258 отправлено <font color=gray>FMishin</font> 22 августа 2008 г. 19:23

#define HIBYTE(x) ((BYTE)(((WORD)(x))>>8))
#define LOBYTE(x) ((BYTE)(x))
#define HIWORD(x) ((WORD)(((DWORD)(x))>>16))
#define LOWORD(x) ((WORD)(x))
#define BYTE2WORD(hi,lo) (((WORD)(hi))<<8)+((WORD)(lo))
/////////////////////////////////////////////////////////////
// === ADS1258 CMD ===
#define ADS1258_CMD_MUL 0x10
#define ADS1258_CMD_DATA_READ_DIRECT0 0
#define ADS1258_CMD_DATA_READ_DIRECT1 0xE0
#define ADS1258_CMD_DATA_READ (0x20|ADS1258_CMD_MUL)
#define ADS1258_CMD_REG_READ 0x40
#define ADS1258_CMD_REG_WRITE 0x60
#define ADS1258_CMD_PULSE_CNV 0x80
#define ADS1258_CMD_RESET 0xA0
// === ADS1258 internal regs ===
#define ADS1258_REG_CONFIG0 0
#define ADS1258_REG_CONFIG1 1
#define ADS1258_REG_MUXSCH 2
#define ADS1258_REG_MUXDIF 3
#define ADS1258_REG_MUXSG0 4
#define ADS1258_REG_MUXSG1 5
#define ADS1258_REG_SYSRED 6
#define ADS1258_REG_GPIOC 7
#define ADS1258_REG_GPIOD 8
#define ADS1258_REG_ID 9
// === ADS1258 internal reg bits ===
// ADS1258_REG_CONFIG0
#define ADS1258_CONFIG0_SPIRST 6
#define ADS1258_CONFIG0_MUXMOD 5
#define ADS1258_CONFIG0_BYPASS 4
#define ADS1258_CONFIG0_CLKENB 3
#define ADS1258_CONFIG0_CHOP 2
#define ADS1258_CONFIG0_STAT 1
// ADS1258_REG_CONFIG0
#define ADS1258_CONFIG1_IDLMOD 7
#define ADS1258_CONFIG1_DLY2 6
#define ADS1258_CONFIG1_DLY1 5
#define ADS1258_CONFIG1_DLY0 4
#define ADS1258_CONFIG1_SBCS1 3
#define ADS1258_CONFIG1_SBCS0 2
#define ADS1258_CONFIG1_DRATE1 1
#define ADS1258_CONFIG1_DRATE0 0
// ADS1258_REG_MUXSCH
#define ADS1258_MUXSCH_AINN0 0
#define ADS1258_MUXSCH_AINN1 1
#define ADS1258_MUXSCH_AINN2 2
#define ADS1258_MUXSCH_AINN3 3
#define ADS1258_MUXSCH_AINP0 0
#define ADS1258_MUXSCH_AINP1 1
#define ADS1258_MUXSCH_AINP2 2
#define ADS1258_MUXSCH_AINP3 3
// ADS1258_REG_MUXDIFF
#define ADS1258_MUXDIFF_0 0
#define ADS1258_MUXDIFF_1 1
#define ADS1258_MUXDIFF_2 2
#define ADS1258_MUXDIFF_3 3
#define ADS1258_MUXDIFF_4 4
#define ADS1258_MUXDIFF_5 5
#define ADS1258_MUXDIFF_6 6
#define ADS1258_MUXDIFF_7 7
#define ADS1258_MUXDIFF_GX ADS1258_MUXDIFF_4
#define ADS1258_MUXDIFF_GZ ADS1258_MUXDIFF_5
#define ADS1258_MUXDIFF_GY ADS1258_MUXDIFF_6
// ADS1258_REG_MUXSG0
#define ADS1258_MUXSG0_0 0
#define ADS1258_MUXSG0_1 1
#define ADS1258_MUXSG0_2 2
#define ADS1258_MUXSG0_3 3
#define ADS1258_MUXSG0_4 4
#define ADS1258_MUXSG0_5 5
#define ADS1258_MUXSG0_6 6
#define ADS1258_MUXSG0_7 7
#define ADS1258_MUXSG0_MZ ADS1258_MUXSG0_2
#define ADS1258_MUXSG0_MY ADS1258_MUXSG0_3
#define ADS1258_MUXSG0_AZ ADS1258_MUXSG0_4
#define ADS1258_MUXSG0_AX ADS1258_MUXSG0_5
#define ADS1258_MUXSG0_AY ADS1258_MUXSG0_6
#define ADS1258_MUXSG0_MX ADS1258_MUXSG0_7
// ADS1258_REG_MUXSG1
#define ADS1258_MUXSG1_0 0
#define ADS1258_MUXSG1_1 1
#define ADS1258_MUXSG1_2 2
#define ADS1258_MUXSG1_3 3
#define ADS1258_MUXSG1_4 4
#define ADS1258_MUXSG1_5 5
#define ADS1258_MUXSG1_6 6
#define ADS1258_MUXSG1_7 7
#define ADS1258_MUXSG1_VRP ADS1258_MUXSG1_6
#define ADS1258_MUXSG1_VRN ADS1258_MUXSG1_7
// ADS1258_REG_SYSRED
#define ADS1258_SYSRED_OFFSET 0
#define ADS1258_SYSRED_VCC 2
#define ADS1258_SYSRED_TEMP 3
#define ADS1258_SYSRED_GAIN 4
#define ADS1258_SYSRED_REF 5
...
#define ADS1258_INIT_DEFVAL (ADS1258_CMD_REG_WRITE|ADS1258_REG_CONFIG0|ADS1258_CMD_MUL)
#define ADS1258_REG_CONFIG0_DEFVAL ((1<<ADS1258_CONFIG0_SPIRST)|(0<<ADS1258_CONFIG0_MUXMOD)|(0<<ADS1258_CONFIG0_BYPASS)|(0<<ADS1258_CONFIG0_CLKENB)|(0<<ADS1258_CONFIG0_CHOP)|(0<<ADS1258_CONFIG0_STAT))
#define ADS1258_REG_CONFIG1_DEFVAL ((1<<ADS1258_CONFIG1_IDLMOD)|(0<<ADS1258_CONFIG1_DLY0)|(0<<ADS1258_CONFIG1_SBCS0)|(2<<ADS1258_CONFIG1_DRATE0))

#define ADS1258_REG_MUXSCH_DEFVAL 0
#define ADS1258_REG_MUXDIF_DEFVAL ((1<<ADS1258_MUXDIFF_GX)|(1<<ADS1258_MUXDIFF_GZ)|(1<<ADS1258_MUXDIFF_GY))
#define ADS1258_REG_MUXSG0_DEFVAL ((1<<ADS1258_MUXSG0_MZ)|(1<<ADS1258_MUXSG0_MY)|(1<<ADS1258_MUXSG0_AZ)|(1<<ADS1258_MUXSG0_AX)|(1<<ADS1258_MUXSG0_AY) | (1<<ADS1258_MUXSG0_MX))
#define ADS1258_REG_MUXSG1_DEFVAL ((1<<ADS1258_MUXSG1_VRP)|(1<<ADS1258_MUXSG1_VRN))
#define ADS1258_REG_SYSRED_DEFVAL 0

#define ADS1258_WORD_0 BYTE2WORD(ADS1258_INIT_DEFVAL, ADS1258_REG_CONFIG0_DEFVAL)
#define ADS1258_WORD_1 BYTE2WORD(ADS1258_REG_CONFIG1_DEFVAL, ADS1258_REG_MUXSCH_DEFVAL)
#define ADS1258_WORD_2 BYTE2WORD(ADS1258_REG_MUXDIF_DEFVAL, ADS1258_REG_MUXSG0_DEFVAL)
#define ADS1258_WORD_3 BYTE2WORD(ADS1258_REG_MUXSG1_DEFVAL, ADS1258_REG_SYSRED_DEFVAL)
...

и потом где-то там периодически (между получениями измерений)
SSP_SendData(SSP0, ADS1258_WORD_0);
SSP_SendData(SSP0, ADS1258_WORD_1);
SSP_SendData(SSP0, ADS1258_WORD_2);
SSP_SendData(SSP0, ADS1258_WORD_3);


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сколько миллиампер в одном ампере ?:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru