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

 
 
 
Reply to this topicStart new topic
> SD16A не пойму как он работает
pan Alex
сообщение Feb 26 2010, 10:36
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 25-02-10
Пользователь №: 55 660



Спецы кто поможет буду рад. Не могу разобраться с микроконтролером MSP430F4270. Программный UART реализовал хотя помучился(потому что исходный программный UART как-то криво работал). Сейчас проблема в другом не могу не как понять как работает это Дельта-сигма АЦП SD16A/ В ассемблерном коде, я на прерывание в ассемблере завел, в мой регистр правильно копируется, под IARом смотрел. А выхожу из прерывания, неправильное значение в регистре стоит, чего там случается понять совершенно не могу. До этого еще долго думал, почему на одном вход сидит один воль, там опора 1,2В. Ну я естественно сделал мост и с него смотрел, диф разница. Кручу резистор меняется, хотя смотрю на цешке, там нету диф. разницы. Я так и не понял почему. Ну меня волнует почему не копируется значение нормально не переносится. Хотя как я и говрил в ассемблерном коде отражает, тоже самое значение.
Go to the top of the page
 
+Quote Post
rezident
сообщение Feb 26 2010, 22:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Местные телепаты еще с новогодних каникул не вышли. Где ваша схема и текст исходника?
Описание периферийных модулей читайте в User's Guide.
Go to the top of the page
 
+Quote Post
pan Alex
сообщение Feb 27 2010, 06:59
Сообщение #3





Группа: Новичок
Сообщений: 2
Регистрация: 25-02-10
Пользователь №: 55 660



Вот как я настроил:
P6OUT = 0x00; // P6OUTs = 0
P6DIR = 0x00; //все ножки на ввод // Unused pins as outputs
P6SEL = 0x0f; // Select analog function

// Power-up bridge sensor
// SD16CTL = SD16XDIV_3 + SD16DIV_1 + SD16SSEL_2 + SD16REFON + SD16VMIDON;
SD16CTL = SD16DIV_1 + SD16SSEL_2 + SD16REFON + SD16VMIDON ;//
// Use ACLK for SD16//SD16XDIV_3 +
//Регистр упрваления модулем сигма дельта АЦП
//SD16XDIV_3 - SD16 2.Clock Divider Select /48
//SD16DIV_1 - SD16 Clock Divider Select /2 Делитель тактовой частоты модуля SD16
//Выбор источника тактирования модуля SD16 - ACLK --- SD16SSEL_2
//SD16REFON - Включение источника опорного напряжения
//SD16VMIDON - Включение буфера VMID
//Прерывание по переполнению запрещено

//Регистр управления х модуля АЦП SD16
// SD16CCTL0 = SD16SNGL + SD16BUF_1 + SD16OSR_1024 + SD16UNI + SD16DF;
SD16CCTL0 = 0;
SD16CCTL0 = SD16BUF_3 + SD16OSR_256+SD16IE+SD16DF ;// + SD16UNI;//+ SD16LSBACC;//SD16SNGL +
//SD16BUF_1 * SD16 High Imp. Input Buffer: Slow */
//SD16OSR_1024 - Степень передискретизации 1024
//SD16UNI SD16UNI (0x1000) /* SD16 Channel x Bipolar(0) / Unipolar(1) Mode */
//SD16SNGL - Выбор режима одиночного преобразования
// - Формат кода данных модуля SD16, 1- дополнительный до 2-х(SD16DF)

//Регистр управления х модуля АЦП SD16
SD16INCTL0 = SD16GAIN_1 + SD16INCH_1;
//SD16SNGL + SD16DF- этот бит был здесь
//SD16GAIN_2 - Выбор коэффициента усиления предварительного усилителя модуля SD16 Ку=4
//SD16INCH_0-Выбор входной дифференциальной пары модуля SD16, выбран Ах 0
//SD16INCH_1--Выбор входной дифференциальной пары модуля SD16, выбран Ах1
// 32x gain, channel pair A0 // Continuous conv., 2s compl.
SD16CCTL0 |= SD16SC;
SD16AE |= SD16AE1;

Цитата(rezident @ Feb 27 2010, 01:30) *
Где ваша схема и текст исходника?


Именно в этом месте нормально все считывает.
Объявил переменную как и положено в ассемблере
PUBLIC SD16data

SD16data DS 2

SD16_ISR
add &SD16IV, PC
reti
jmp ADOV
jmp ADM0
nop

ADM0
bic.w #SD16IFG,&SD16CCTL0
; oчистка флага
mov.w &SD16MEM0, SD16data;

;копирование результат в специальный регистр данных
reti
ADOV
bic.w #SD16OVIFG,&SD16CCTL0
bic.w #SD16IFG,&SD16CCTL0
; oчистка флага
reti//*/

А дальше при переходи в С++ часть программы какая-то ересь, пото пытался средствами с++ читать из этого же регистра, какая-то ерунда, читалась. И это ерунда как для меня нестранно была очень похоже на то что было записано до этого в регистр SD16data(при переходе как-то странно и неправильно конвертнулась)
Go to the top of the page
 
+Quote Post

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

 


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


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