Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: АЦП 16-24 бит - UART
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
_Ivan_33
подскажите пожалуйста микруху преобразующую аналоговый сигнал до 5 вольт в 16-24 бит информации и отсылающий в уарт...
а если есть I^2C то такой вопрос - можно ли по 1 каналу ай2ц принимать инфу от нескольких разных источников?
заранее спасибо
MrYuran
Обычно АЦП подключаются по каналу SPI, который есть практически у всех контроллеров или легко реализуется программно. Если есть возможность управлять сигналами CS, то можно на один канал SPI повесить несколько АЦП.

Другой вариант - контроллеры от силабс, некоторые имеют встроенное АЦП до 24 бит.
_Ivan_33
а можно поподробнее про сигналы CS
MrYuran
Цитата(_Ivan_33 @ Oct 5 2008, 12:17) *
а можно поподробнее про сигналы CS

Сигналом CS (Chip Select, обычно инверсный) выбирается активная м/сх на линии. Она анализирует входящие команды и отвечает по линии DOUT. У остальных абонентов на линии DOUT должен быть в Z-состояниии.
Вот, например, даташит на AD7705. Для примера.
Нажмите для просмотра прикрепленного файла
_Ivan_33
то есть у каждой микросхемы есть какой то индивидуальный номер чтоли и если увидев на линии его она отвечает?
а как узнать этот номер или информацию?
Максим Зиновьев
Цитата
то есть у каждой микросхемы есть какой то индивидуальный номер


Нет, индивидуального номера у микросхемы нет, "хост" должен сам выдавать cs тому устройству, с кем хочет пообщаться.
В случае независимой от хоста циклической работы, АЦП выдает сигнал об окончании преобразовании (валидности данных) data ready.
Почитайте еще датащит на AD7714
rudy_b
Это на SPI нет, а на I2C у каждой микросхемы - свой адрес. На некоторых его можно изменять (подключение ножек или уровень напряжения на них - несколько вариантов адреса), на некоторых адрес фиксирован (редко).
VladimirYU
Цитата(_Ivan_33 @ Oct 5 2008, 11:41) *
подскажите пожалуйста микруху преобразующую аналоговый сигнал до 5 вольт в 16-24 бит информации и отсылающий в уарт...

Посмотрите в сторону AD у них есть МК на базе 51 ядра со встроенными 16-24 битными сигма-дельта ADC и с другой переферией, UART в том числе.
navy2000
Наверное все таки правильнее будет отталкиваться от требуемых параметров АЦП, (которых не озвучили, хотя по разрешению можно косменно судить). И уже определившись с ними, смотреть, есть ли контроллеры со встроенными АЦП с такими параметрами. Если есть, с ним и разбираться, а если нет (а так как правило и случается), то выбирать нужное АЦП и любой доступный (лучше освоенный) контроллер. На нем реализовать опрос АЦП и UART.
p.s. АЦП и интерфейсом UART не встречал, да и при разрешении 16-24 бит наверное еще и протокол городить придется.
По одному каналу I2C можно работать с несколькими абонентами, только нужно чтоб они имели разные шинные адреса. В некоторых микросхемах они зашиты в микросхему и не меняются, а в некоторых можно менять подтянув адресные ножки к земле или питанию.
_Ivan_33
понятно, спасибо ...
но все таки новые контроллеры для решения задачи изучать не буду... больно это трудоемко ...
_Ivan_33
из прочтения дш на мегу8 понял:
1) главный отвечает переферийному по MOSI
2) по MISO отвечает переферийный главному
3) SPI Clock Generator включается когда происходит передача ...
из прочтения дш на AD7714 понял
1) то чтоб сделать микросхему выбранной(чтоб она потом ответила) нада к ее ноге CS присобачить ногу му и если на ней будет 5 вольт то микросхема будет активной ... и затем ответит по MISO (информация придет к ноге мастера MISO)
теперь вопросы:
1) вот мы допустим записали значение регистра микрухи на примере AD7714
когда она его прочитает и отошлет мк то что нужно
2) как регулируется частота мк SCK - ноги, или частоту регулировать не нужно!? а если нужно то как каждая частота к определенному типу микрух ( частота будет указана в ДШ?)

и еще - сколько метров 5-6 провода потянет SPI чтоб передавать данные?
Максим Зиновьев
Цитата
нада к ее ноге CS присобачить ногу му и если на ней будет 5 вольт то микросхема будет активной


Наоборот. /CS активный уровень - низкий


Цитата
2) как регулируется частота мк SCK - ноги, или частоту регулировать не нужно!? а если нужно то как каждая частота к определенному типу микрух ( частота будет указана в ДШ?)


Такого сигнала у 7714 нету, есть SCLK этот сигнал приходит извне (с контроллера) и защелкивает данные, приходящие в 7714 извне, сейчас не помню, фронтом или спадом. Также SCLK подается при считывании данных из 7714.

Времена (пределы) SCLK описаны в датащите

Вот, если поможет, пример на каком-то из Basic для LPT инициализации и работы с 7714


Код
DO UNTIL LCASE$(w$) = "x"
CLS : SCREEN 11
DIM id(64), Od(167), cr(24), d(641)
d(0) = 280
'offs=0
n = 888:  g = 4000
RESTORE
DATA 3,2,3, 3,2,3, 1,0,1, 3,2,3, 3,2,3, 1,0,1, 1,0,1, 1,0,1
'CR to FH'
DATA 3,2,3, 1,0,1, 1,0,1, 3,2,3, 3,2,3, 3,2,3, 3,2,3, 3,2,3
'FH'
DATA 3,2,3, 3,2,3, 1,0,1, 1,0,1, 3,2,3, 1,0,1, 1,0,1, 1,0,1
'CR to FL'
DATA 3,2,3, 1,0,1, 1,0,1, 3,2,3, 3,2,3, 3,2,3, 1,0,1, 3,2,3
'FL'
DATA 3,2,3, 3,2,3, 3,2,3, 1,0,1, 3,2,3, 1,0,1, 1,0,1, 1,0,1
'CR to MR'
DATA 3,2,3, 3,2,3, 1,0,1, 1,0,1, 1,0,1, 1,0,1, 3,2,3, 3,2,3
'MR- self calibr'
DATA 3,2,3, 1,0,1, 3,2,3, 1,0,1, 1,0,1, 1,0,1, 1,0,1, 3,2,3
'CR to DR read'

OUT n, 0: OUT n + 2, 11
FOR i = 0 TO 143
READ d
Od(i) = d
OUT n + 2, d
NEXT i
OUT n + 2, 3

FOR i = 0 TO 23
READ d
Od(i + 144) = d
cr(i) = d
NEXT i

CLS : SCREEN 12
da0$ = DATE$: ti0$ = TIME$
LOCATE 28, 2: PRINT "ECG Complex Analizer v.1.0 by Tuseev&Zinovjev (R), 2004"
LOCATE 1, 2: PRINT "PRESS 'Shift'+'B' to break analize"
LINE (1, 410)-(640, 410), 13
LINE (640, 401)-(1, 401), 12
LINE (1, 99)-(640, 99), 12
FOR i = 0 TO 640 STEP 20
LINE (i, 405)-(i, 415), 13
NEXT i
l = 1

TM$=TIME$
TT$=""
FOR I = 1 TO len(TM$)
    SSS$=MID$(TM$,I,1)
    IF SSS$<>":" THEN TT$=TT$+SSS$ ELSE TT$=TT$+"_"
NEXT I

DIRTST$="TEST"
'FILES DIRTST$
'IF THEN MKDIR (DIRTST$)
SSS$ = ".\"+DIRTST$+"\"+TT$

OPEN (SSS$) for output as #1
   PRINT #1,DATE$;" ";TT$

DO UNTIL UCASE$(INKEY$) = "B"

DO UNTIL INP(n + 1) = 135
LOOP

FOR i = 0 TO 23
OUT n + 2, cr(i)
NEXT i

r& = 0

FOR i = 23 TO 0 STEP -1
OUT n + 2, 2
OUT n + 2, 3
tmp = INP(n + 1)
IF tmp = 7 THEN
id(i) = 1
ELSEIF tmp = 135 THEN
id(i) = 0
ELSEIF tmp = 23 THEN
id(i) = 1
END IF
r& = r& + id(i) * 2 ^ i
NEXT i

    PRINT #1,r& '10 ¬Ё«ЁбҐЄ

IF l = 641 THEN l = 1: ffs = offs / 640
y = INT(r& / g - INT(ffs) + 280)
IF l = 1 THEN offs = 0
LINE (l, 100)-(l, 400), 3
LINE (l, 100)-(l, 400), 0

IF y <= 100 THEN
y = 100
ELSEIF y >= 400 THEN
y = 400
ELSE
'PSET (l, y), 15
END IF

'yy = (d(l - 1) + d(l) + d(l + 1)) / 3

d(l) = y
LINE (l, y)-(l - 1, d(l - 1)), 15

'PSET (l, yy), 15

l = l + 1


LOCATE 3, 50: PRINT "Date: "; DATE$
LOCATE 4, 50: PRINT "Time: "; TIME$
LOCATE 5, 50: PRINT "GAIN: "; 1 / g
LOCATE 3, 31: PRINT "Level ADC: "; INT(r& / g)
LOCATE 4, 31: PRINT "Position:  "; INT(y)
LOCATE 5, 31: PRINT "DC offset: "; INT(ffs)
offs = (offs + r& / g)

LOOP

   CLOSE #1

LOCATE 23, 5: INPUT "Press any key and 'ENTER' to continue or 'X' and 'ENTER' to EXIT: ", w$

LOOP
_Ivan_33
а если микруха не выбрана то тоже низкий но в высокоомном состоянии? (с подтягивающим резистором)?
что значит защелкивать данные?
к сожалению не поможет - ассемблера не знаю...
но за ответ спасибо
Максим Зиновьев
Когда не выбираем 7714 - держим у неё единичку на /cs

Защелкиваются данные в последовательный регистр. Термин общеупотребим.
_Ivan_33
а ногу SCLK мы держим на ней 1 чтоб получить доступ к данным АЦП так?
а MCLK_In это для соединения с SCk ?
объясните что делает ножки Buffer и POL?
по DOUT ацп отвечает мк а по DIN он принимает данные?
как изменить какойто регистр в ацп чета не нашел - расскажите плс...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.