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

 
 
 
Reply to this topicStart new topic
> ATmega8. TWI + ADC., Возможна ли одновременная работа?
#VS
сообщение Jan 17 2008, 06:13
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 17-01-08
Пользователь №: 34 147



Допускаю, что тема встречалась, но не нашел.
ATmega8 (выбрана, т. к. Tiny мало, Mega>8 много).
Задача: измерить 2-мя каналами ADC и передать по TWI.
Проблема: ADC4, ADC5 "сидят" на SDA, SDL (PC4, PC5).
Вопрос: можно ли одновременно включить TWEN и ADEN, чем будут тогда являться выводы PC4, PC5 (есть ли приоритет)?
Или обязательно идти по длинному пути: включить ADC, измерить - выключить ADC - включить TWI, передать - выключить TWI - и т. д.?
Go to the top of the page
 
+Quote Post
Busel Roman
сообщение Jan 17 2008, 08:35
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538



А как Вы собираетесь измерять напряжение при подключенном интерфейсе TWI (по линиям SCL и SDA должны стоять подтягивающие резисторы; в свою очередь, работающий TWI будет шунтировать источник измеряемого напряжения)? Можно, конечно, поставить цифровой переключатель, но зачем так все усложнять.

Проще использовать для измерения другие входы, например ADC2, ADC3.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jan 17 2008, 08:55
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Busel Roman @ Jan 17 2008, 12:35) *
Проще использовать для измерения другие входы, например ADC2, ADC3.

А если все каналы заняты, то сделать I2C программно на свободных ножках.
Go to the top of the page
 
+Quote Post
#VS
сообщение Jan 17 2008, 10:13
Сообщение #4





Группа: Новичок
Сообщений: 3
Регистрация: 17-01-08
Пользователь №: 34 147



Цитата(Busel Roman @ Jan 17 2008, 18:35) *
А как Вы собираетесь измерять напряжение при подключенном интерфейсе TWI (по линиям SCL и SDA должны стоять подтягивающие резисторы; в свою очередь, работающий TWI будет шунтировать источник измеряемого напряжения)? Можно, конечно, поставить цифровой переключатель, но зачем так все усложнять.

Проще использовать для измерения другие входы, например ADC2, ADC3.

1) Измерение идет на каналах ADC0 и ADC1.
2) Включается только полностью 6-канальный ADC, а затем выбирается мультиплексором 1 канал. Вопрос в том, можно ли использовать выводы невыбранных каналов как-то еще, или это внесет сбои в измерения.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 17 2008, 10:14
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(SasaVitebsk @ Jan 17 2008, 10:55) *
А если все каналы заняты, то сделать I2C программно на свободных ножках.
Ребята, а человек не об этом спрашивает ведь.
Обычная нога имеет две функции - собственно нога и какая-то периферия. Эти две ноги имеют три функции. Вниманте, вопрос - чем определяется функция ноги? Понятно, что можно мерить другими ногами, но человек спрашивает - Если он включит TWI, ноги PC4, PC5 переключатся в режим TWI. А если он включит АЦП и начнет мерить ADC0, не переключится ли при этом ADC6 тоже в аналоговый режим?

для #VS - можете работать спокойно. Функция ноги определяется периферийным модулем, в данном случае TWI, а АЦП просто подключено параллельно. Т.е. вы можете, теоретически, при помощи АЦП снимать диаграмму работы TWI smile.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
#VS
сообщение Jan 17 2008, 10:24
Сообщение #6





Группа: Новичок
Сообщений: 3
Регистрация: 17-01-08
Пользователь №: 34 147



Цитата(SasaVitebsk @ Jan 17 2008, 18:55) *
А если все каналы заняты, то сделать I2C программно на свободных ножках.

Конечно, вариант, но если есть аппаратный Device, почему бы не использовать.

Цитата(Сергей Борщ @ Jan 17 2008, 20:14) *
Ребята, а человек не об этом спрашивает ведь.
Обычная нога имеет две функции - собственно нога и какая-то периферия. Эти две ноги имеют три функции. Вниманте, вопрос - чем определяется функция ноги? Понятно, что можно мерить другими ногами, но человек спрашивает - Если он включит TWI, ноги PC4, PC5 переключатся в режим TWI. А если он включит АЦП и начнет мерить ADC0, не переключится ли при этом ADC6 тоже в аналоговый режим?

для #VS - можете работать спокойно. Функция ноги определяется периферийным модулем, в данном случае TWI, а АЦП просто подключено параллельно. Т.е. вы можете, теоретически, при помощи АЦП снимать диаграмму работы TWI smile.gif


В принципе, было такое подозрение относительно mega8 (раньше работал только с ADSP и PIC).
Большое спасибо Вам и всем принявшим участие в обсуждении.
Go to the top of the page
 
+Quote Post
Busel Roman
сообщение Jan 17 2008, 13:45
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538



1) Вы не можете одновременно измерять напряжение по нескольких входам.
2) Вы не можете измерять напряжение на работающей шине TWI. Как только Вы устанавливаете бит TWEN, включается модуль TWI и берет на себя управление контактами ввода/вывода.
3) Остается длинный путь: "включить ADC, измерить - выключить ADC - включить TWI, передать - выключить TWI - и т. д."
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 17 2008, 14:13
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Busel Roman @ Jan 17 2008, 15:45) *
Как только Вы устанавливаете бит TWEN, включается модуль TWI и берет на себя управление контактами ввода/вывода.
Теперь покажите мне место в даташите, где сказано, что при этом вход мультиплексора АЦП отключается от ножки копуса? Когда устанете штудировать, посмотрите картинку 25 даташита. И описание к ней:
Цитата
AIO Analog Input/output This is the Analog Input/output to/from alternate functions. The signal is connected directly to the pad, and can be used bi-directionally.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Busel Roman
сообщение Jan 17 2008, 16:14
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 51
Регистрация: 19-06-07
Из: Республика Беларусь, г.Витебск
Пользователь №: 28 538



Цитата(Сергей Борщ @ Jan 17 2008, 16:13) *
Теперь покажите мне место в даташите, где сказано, что при этом вход мультиплексора АЦП отключается от ножки копуса? Когда устанете штудировать, посмотрите картинку 25 даташита. И описание к ней:

Руководствовался разделом "Alternate Functions of Port C":

• SCL/ADC5 – Port C, Bit 5
SCL, Two-wire Serial Interface Clock: When the TWEN bit in TWCR is set (one) to
enable the Two-wire Serial Interface, pin PC5 is disconnected from the port and
becomes the Serial Clock I/O pin for the Two-wire Serial Interface. In this mode, there is
a spike filter on the pin to suppress spikes shorter than 50 ns on the input signal, and the
pin is driven by an open drain driver with slew-rate limitation.
PC5 can also be used as ADC input Channel 5. Note that ADC input channel 5 uses digital
power.

• SDA/ADC4 – Port C, Bit 4
SDA, Two-wire Serial Interface Data: When the TWEN bit in TWCR is set (one) to
enable the Two-wire Serial Interface, pin PC4 is disconnected from the port and
becomes the Serial Data I/O pin for the Two-wire Serial Interface. In this mode, there is
a spike filter on the pin to suppress spikes shorter than 50 ns on the input signal, and the
pin is driven by an open drain driver with slew-rate limitation.
PC4 can also be used as ADC input Channel 4. Note that ADC input channel 4 uses digital
power.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 17 2008, 16:26
Сообщение #10


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Busel Roman @ Jan 17 2008, 16:45) *
2) Вы не можете измерять напряжение на работающей шине TWI. Как только Вы устанавливаете бит TWEN, включается модуль TWI и берет на себя управление контактами ввода/вывода.
3) Остается длинный путь: "включить ADC, измерить - выключить ADC - включить TWI, передать - выключить TWI - и т. д."

3.)Ничего выключать не нужно, у меня в прогах работает и ADC и TWI и все одновременно, причем
TWI на скорости 400KHz

Если говорить о меге8, у нее в корпусе соик очень удобные ADC6,ADC7 каналы которые вобще
не с чем не пересекаются.

2.) Сергей Борщ абсолютно прав, нет никаких проблем в снятии осцилограммы TWI через ADC,
только правда ADC у AVR достаточно тормознутый, и рельно, это можно сделать только на
скоростях TWI ~10KHz
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jan 17 2008, 18:20
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(singlskv @ Jan 17 2008, 19:26) *
только правда ADC у AVR достаточно тормознутый, и рельно, это можно сделать только на
скоростях TWI ~10KHz

Можно поднять такт для АЦП и даже на 400КГц шине получится. Останется только 3-4 бита в результате, но для цифровой шины этого за глаза.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 17 2008, 18:50
Сообщение #12


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Qwertty @ Jan 17 2008, 21:20) *
Можно поднять такт для АЦП и даже на 400КГц шине получится. Останется только 3-4 бита в результате, но для цифровой шины этого за глаза.
ИМХО, на 400КГц я бы даже пробовать не стал...
Вы видимо забыли учесть то что измерительный конденсатор будет подключен к измеряемому
сигналу только 1,5 fADC цикла работы ADC из 13 циклов, в такой ситуации многое будет зависить от
пулапов на шине TWI, конечно при пулапах порядка 1K может чего и получится снять,
но я бы ограничил максимальную(теоритичекси распознаваемую) скорость порядка 100KHz...
Хотя конечно определиться можно только проэкспериментировав...
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 20 2008, 00:48
Сообщение #13


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(singlskv @ Jan 17 2008, 21:50) *
ИМХО, на 400КГц я бы даже пробовать не стал...
Вы видимо забыли учесть то что измерительный конденсатор будет подключен к измеряемому
....
но я бы ограничил максимальную(теоритичекси распознаваемую) скорость порядка 100KHz...
Хотя конечно определиться можно только проэкспериментировав...

1kb не хватит на то чтобы снять хоть сколько-нибудь вразумительную диаграмму на таких частотах, и тем более что-то с ней сделать smile.gif
Go to the top of the page
 
+Quote Post
aspID
сообщение Jan 20 2008, 03:46
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 343
Регистрация: 24-01-07
Из: Новосибирск
Пользователь №: 24 714



Смею вмешаться

Цитата(Сергей Борщ @ Jan 17 2008, 20:13) *
AIO Analog Input/output This is the Analog Input/output to/from alternate functions. The signal is connected directly to the pad, and can be used bi-directionally.


Цитата(Busel Roman @ Jan 17 2008, 22:14) *
SCL, Two-wire Serial Interface Clock: When the TWEN bit in TWCR is set (one) to
enable the Two-wire Serial Interface, pin PC5 is disconnected from the port and becomes the Serial Clock I/O pin for the Two-wire Serial Interface.


По-моему, все четко и понятно - от порта отключается, но при этом к ноге остается подцепленным
Go to the top of the page
 
+Quote Post

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

 


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


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