Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 04 май 2025, 03:37

Часовой пояс: UTC + 3 часа [ Летнее время ]



Начать новую тему Ответить на тему  [ Сообщений: 205 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 21  След.
Автор Сообщение
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 17 дек 2011, 16:03 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Схему поправил, спасибо!
44.png
44.png [ 59.18 КБ | Просмотров: 9831 ]

Пишу только на АВ и то, это громко сказано, точнее делаю первые шаги в программировании и освоении МК. Других языков к сожалению не знаю. То, что код получится громоздким, не пугает. За то полностью разберусь, что и как.

Что касается задачи. Честно сказать планы как у Наполеона. :D Хотя не уверен, что всё получится. Планирую чтобы данный девайс измерял температуру от трёх датчиков а также влажность и атмосферное давление. Сохранял измеренные параметры с какой то временной периодичностью в память EEPROM . Отправлял текущие и сохранённые значения по СОМ-порту. Ещё хотелось бы отправлять текущие значения температуры от одного датчика, и от датчика влажности, и датчика давления, а так же время по радиоканалу на другое устройство. В наличии есть два модуля трансивера TR24P. Но это если получится. :-)

На первом этапе, а это самое главное для меня, чтобы термометр заработал, пока в чистом виде (общение МК и АЦП с выводом температуры на индикатор). Потом прицепить часы. С часами знаком, да и код готовый есть, так как делал несколько устройств с такими часиками. На третьем этапе, сохранять нужные значения в EEPROM. С внешней EEPROM пока не приходилось работать, то так как она работает с той же шиной, что и часы, думаю серьёзных проблем не будет. А вот с СОМ портом, начну разбираться в самый последний момент.

Анатолий, пожалуйста напишите мне подробно как конфигурировать и запускать АЦП, а то ведь я так и не могу адекватно перевести даташит и как следствие, полностью понять его принцип работы. :(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 18 дек 2011, 13:40 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 18 дек 2011, 15:10 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 19 дек 2011, 00:19 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545
ADS1248
Для изменения каких либо параметров необходимо произвести запись в внутренние регистры АЦП
описание регистров:

MUX0 - ADDRESS 00h регистр управления мультиплексором

Bits 7:6 BCS1:0
Биты управляет контролем за просадкой тока питания сенсора
00 = выключено (по умолчанию)
01 = 0.5μA
10 = 2μA
11 = 10μA
Bits 5:3 MUX_SP2:0
Биты определяют куда должен быть подключен + вход АЦП
000 = AIN0 (по умолчанию)
001 = AIN1
010 = AIN2
011 = AIN3
100 = AIN4 (ADS1248 only)
101 = AIN5 (ADS1248 only)
110 = AIN6 (ADS1248 only)
111 = AIN7 (ADS1248 only)
Bits 2:0 MUX_SN2:0 куда должен быть подключен - вход АЦП
Биты определяю
000 = AIN0
001 = AIN1 (default)
010 = AIN2
011 = AIN3
100 = AIN4 (ADS1248 only)
101 = AIN5 (ADS1248 only)
110 = AIN6 (ADS1248 only)
111 = AIN7 (ADS1248 only)
(кстати а таким макаром датчиков можно включитьаж 6 штук)

VBIAS - ADDRESS 01h регистр управленим делетиелем подключает к входу ацп делитель на 2 делитель запитан от пары AVDD + AVSS номер бита = номер AIN
1 записанны в бит подключает к соответствующему входу делитель.

MUX1 - ADDRESS 02h регистр управления мультиплексором
Bit 7 источник синхронизации ацп
0 = внутренний генератор
1 = внешний сигнал
Bits 6:5 управление внутренний источником опорного напряжения
00 = внутреннияя опора всегда выключена (по умолчанию)
01 = внутреннияя опора всегда выключена
10 or 11 = внутреннияя опора выключена в режиме остнова и включаеться по 0 на входе START
Bits 4:3 выбор источника опорного напряжения
00 = вход REF0(по умолчанию)
01 = вход REF1(ADS1248 only)
10 = внутренний ИОН
11 = внутренний ИОН подлюченный к ацп и REF0
Bits 2:0 мультиплексор особых режимов (калибровка итд)
000 = обычный режим (по умолчанию)
001 = проверка нуля ацп (AVDD + AVSS)/2
010 = проверка уселений VREFP – VREFN (full-scale)
011 = контроль температуры
100 = контроль входа REF1(ADS1248 only) (VREFP1 – VREFN1)/4
101 = контроль входа REF0 (VREFP0 – VREFN0)/4
110 = контроль входа AVDD (AVDD – AVSS)/4
111 = контроль входа DVDD (DVDD – DVSS)/4

SYS0 - ADDRESS 03h регистр управления АЦП
Bit 7 всегда в 0
Bits 6:4 установка коофициента усиления
000 = 1 (по умолчанию)
001 = 2
010 = 4
011 = 8
100 = 16
101 = 32
110 = 64
111 = 128
Bits 3:0 Скорорсть АЦП количество преобразований в секунду
0000 = 5SPS (по умолчанию)
0001 = 10SPS
0010 = 20SPS
0011 = 40SPS
0100 = 80SPS
0101 = 160SPS
0110 = 320SPS
0111 = 640SPS
1000 = 1000SPS
1001 to 1111 = 2000SPS

OFC0 - ADDRESS 04h Три регистра образуют 1 24 разрядный регистр калибровки 0
OFC1 - ADDRESS 05h
OFC2 - ADDRESS 06h

FSC0 - ADDRESS 07h Три регистра образуют 1 24 разрядный регистр калибровки масштаба шкалы (калибровка усиления)
FSC1 - ADDRESS 08h
FSC2 - ADDRESS 09h

IDAC0 - ADDRESS 0Ah Управления источником тока
Bits 7:4 заводской номер только для чтения
Bit 3 режим вывода DRDY
0 = DOUT/DRDY в режиме данных (по умолчанию)
1 = DOUT/DRDY сигнализирует о готовности данных низким уровнем на выходе DOUT
Bits 2:0 значение тока возбуждения датчиков
000 = выключено (по умолчанию)
001 = 50μA
010 = 100μA
011 = 250μA
100 = 500μA
101 = 750μA
110 = 1000μA
111 = 1500μA

IDAC1 - ADDRESS 0Bh Управления источником тока
Bits 7:4 биты определяют куда будет подлючен первый источник тока.
0000 = AIN0
0001 = AIN1
0010 = AIN2
0011 = AIN3
0100 = AIN4 (ADS1248 only)
0101 = AIN5 (ADS1248 only)
0110 = AIN6 (ADS1248 only)
0111 = AIN7 (ADS1248 only)
10x0 = IEXT1 (ADS1248 only)
10x1 = IEXT2 (ADS1248 only)
11xx = не подключен (по умолчанию)
Bits 3:0
0000 = AIN0
0001 = AIN1
0010 = AIN2
0011 = AIN3
0100 = AIN4 (ADS1248 only)
0101 = AIN5 (ADS1248 only)
0110 = AIN6 (ADS1248 only)
0111 = AIN7 (ADS1248 only)
10x0 = IEXT1 (ADS1248 only)
10x1 = IEXT2 (ADS1248 only)
11xx = не подключен (по умолчанию)

GPIOCFG - ADDRESS 0Ch регистр управления цифровым ввод выводом
0 аналоговый вход
1 цифровой вход-выход

GPIODIR - ADDRESS 0Dh регистр управления цифровым ввод выводом направление передачи данных
0 вход
1 выход

GPIODAT - ADDRESS 0Eh регистр данных цифрового вход выхода сюда пиши и читаем данные с которыми работаем через выходы GPIO

Команды SPI
таблица 22 SPI Commands
операторы
n = количество регистров для чтения или записи (количество байт - 1)
r = регистр (от 0 до 15)
x = неопределно
перевод команд
WAKEUP проснуться
SLEEP уснуть
SYNC синхронизация цикла преобразования
RESET сбросить к заводским установкам
NOP нет операции(холостая команда)

RDATA прочитать данные 1 раз
RDATAC чтение данных непрерывно
SDATAC прекратить читать данные непрерывно

RREG прочитать данные из регистра
WREG записать данные в регистр

SYSOCAL калибровка нуля шкалы
SYSGCAL калибровка усиления
SELFOCAL самостоятельная калибровка нуля шкалы

Проверять и исправлять орфографические ошибки лень ;)

А теперь к вопросу об АБ. Зацените необходимое количество функций для работы с этим простым как космическая ракета АЦП. При этом ещё не похерить ни какой из важных регистров при возврате. + стековые операции. Это не считая индикации управления и программирования задач. К следующему столетию думаю закончите. :shock: :mrgreen:

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 19 дек 2011, 00:33 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 19 дек 2011, 17:31 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Анатолий, даже не знаю как Вас и благодарить. :lol: То что, ОГРОМНОЕ СПАСИБО, это как минимум! Теперь Ваш должник. ;) Вот только бы всю эту кашу теперь переварить. Похоже, наемся досыта. :-) Но с Вашими подсказками, я думаю до весны управлюсь. А уж когда разберусь детально, что и как, то не одного регистра не пропущу. Но наверняка седых волос добавится. :mrgreen:
Что касается АВ. То, что Си и АВ сравнивать нельзя, это факт. А вот то, что АВ далеко позади себя оставляет Асм, это уж точно. Но с Вами полностью согласен, что сила привычки побеждает всё.
Смотрю я на регистры управления АЦП и понимаю, что Вопросы к Вам Анатолий, по сыпятся, «мама не горюй». :D Но Вы меня не бросайте в «тёмном лесу». :mrgreen:
А чуть не забыл из-за небольшого шока, датчиков собираюсь подключить не шесть, а пять. Теперь даже страшно становится от произнесения предыдущей фразы. :mrgreen:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 19 дек 2011, 19:12 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Пока не начал поедать сей продукт, задам вопрос о последовательности передачи. Туплю от того наверное, что ещё не отошёл от шока. :oops: Не уловил последовательность передачи данных в АЦП. Ну допустим: разрешаем передачу, потом передаём байт адреса регистра (куда хотим записать определённую конфигурацию), запрещаем передачу давая понять байт закончился, потом опять разрешаем передачу и передаём байт данных в регистр, потом запрещаем передачу. Или как то иначе?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 19 дек 2011, 21:30 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545
:D Ну шок это по нашему! :-D
В этом чрезвычайно простом ацп обмен реализован следующим образом:
команда запись регистра # такой-то команда записать байт столько-то и столько-то байт данных.
те CS в 0 |первый байт команды WREG |0010 (# регистра с какого начинать запись) (2xh)|второй байт команды WREG 0000(сколько байт записать)|(байты данных)|CS в1
Запись происходит потоком с указанного номера регистра
Записывается указанное количество байт в следующие регистры после указанных. Те за раз можно записать все 15 регистров.

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 20 дек 2011, 20:15 
Не в сети
Аватара пользователя

Зарегистрирован: 29 май 2011, 17:59
Сообщения: 3769
Откуда: Россия
Анатолий, Вы даже не представляете, как мне помогли. Я радуюсь как ребёнок. :D Теперь переварю то что Вы написали и попробую изобразить несколько команд для Вашей оценки (всё ли я правильно понял). К сожалению сегодня ADSL-интернет не работает. Ели попал в сеть через телефон. Скорость жутко медленная, так что возможно сегодня пробиться больше не получится. :(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Подключаем ТСМ 50М к контроллеру
СообщениеДобавлено: 24 дек 2011, 01:09 
Не в сети

Зарегистрирован: 20 май 2011, 23:58
Сообщения: 545
Выбываю на не определённый срок. Компьютер сломался окончательно с начала перегорел стабилизатор питания процессора пришлось заменить мать на резервную pentium1 133mhz. Сегодня умер винт перестал шпиндель раскручиваться. Вобьщем финиш! И денег на ремонт пока не предвидется. Горе в обьщем ещё данных ценных гигов 100

_________________
Чтобы получить правильные ответы, надо задавать правильные вопросы!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 205 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 21  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB