vs2006 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба Допускаю, что тема встречалась, но не нашел. ATmega8 (выбрана, т. к. Tiny мало, Mega>8 много). Задача: измерить 2-мя каналами ADC и передать по TWI. Проблема: ADC4, ADC5 "сидят" на SDA, SDL (PC4, PC5). Вопрос: можно ли одновременно включить TWEN и ADEN, чем будут тогда являться выводы PC4, PC5 (есть ли приоритет)? Или обязательно идти по длинному пути: включить ADC, измерить - выключить ADC - включить TWI, передать - выключить TWI - и т. д.? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Busel Roman 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба А как Вы собираетесь измерять напряжение при подключенном интерфейсе TWI (по линиям SCL и SDA должны стоять подтягивающие резисторы; в свою очередь, работающий TWI будет шунтировать источник измеряемого напряжения)? Можно, конечно, поставить цифровой переключатель, но зачем так все усложнять. Проще использовать для измерения другие входы, например ADC2, ADC3. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба Проще использовать для измерения другие входы, например ADC2, ADC3. А если все каналы заняты, то сделать I2C программно на свободных ножках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vs2006 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба А как Вы собираетесь измерять напряжение при подключенном интерфейсе TWI (по линиям SCL и SDA должны стоять подтягивающие резисторы; в свою очередь, работающий TWI будет шунтировать источник измеряемого напряжения)? Можно, конечно, поставить цифровой переключатель, но зачем так все усложнять. Проще использовать для измерения другие входы, например ADC2, ADC3. 1) Измерение идет на каналах ADC0 и ADC1. 2) Включается только полностью 6-канальный ADC, а затем выбирается мультиплексором 1 канал. Вопрос в том, можно ли использовать выводы невыбранных каналов как-то еще, или это внесет сбои в измерения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба А если все каналы заняты, то сделать I2C программно на свободных ножках. Ребята, а человек не об этом спрашивает ведь. Обычная нога имеет две функции - собственно нога и какая-то периферия. Эти две ноги имеют три функции. Вниманте, вопрос - чем определяется функция ноги? Понятно, что можно мерить другими ногами, но человек спрашивает - Если он включит TWI, ноги PC4, PC5 переключатся в режим TWI. А если он включит АЦП и начнет мерить ADC0, не переключится ли при этом ADC6 тоже в аналоговый режим? для #VS - можете работать спокойно. Функция ноги определяется периферийным модулем, в данном случае TWI, а АЦП просто подключено параллельно. Т.е. вы можете, теоретически, при помощи АЦП снимать диаграмму работы TWI :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vs2006 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба А если все каналы заняты, то сделать I2C программно на свободных ножках. Конечно, вариант, но если есть аппаратный Device, почему бы не использовать. Ребята, а человек не об этом спрашивает ведь. Обычная нога имеет две функции - собственно нога и какая-то периферия. Эти две ноги имеют три функции. Вниманте, вопрос - чем определяется функция ноги? Понятно, что можно мерить другими ногами, но человек спрашивает - Если он включит TWI, ноги PC4, PC5 переключатся в режим TWI. А если он включит АЦП и начнет мерить ADC0, не переключится ли при этом ADC6 тоже в аналоговый режим? для #VS - можете работать спокойно. Функция ноги определяется периферийным модулем, в данном случае TWI, а АЦП просто подключено параллельно. Т.е. вы можете, теоретически, при помощи АЦП снимать диаграмму работы TWI :) В принципе, было такое подозрение относительно mega8 (раньше работал только с ADSP и PIC). Большое спасибо Вам и всем принявшим участие в обсуждении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Busel Roman 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба 1) Вы не можете одновременно измерять напряжение по нескольких входам. 2) Вы не можете измерять напряжение на работающей шине TWI. Как только Вы устанавливаете бит TWEN, включается модуль TWI и берет на себя управление контактами ввода/вывода. 3) Остается длинный путь: "включить ADC, измерить - выключить ADC - включить TWI, передать - выключить TWI - и т. д." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба Как только Вы устанавливаете бит 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Busel Roman 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба Теперь покажите мне место в даташите, где сказано, что при этом вход мультиплексора АЦП отключается от ножки копуса? Когда устанете штудировать, посмотрите картинку 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба 2) Вы не можете измерять напряжение на работающей шине TWI. Как только Вы устанавливаете бит TWEN, включается модуль TWI и берет на себя управление контактами ввода/вывода. 3) Остается длинный путь: "включить ADC, измерить - выключить ADC - включить TWI, передать - выключить TWI - и т. д." 3.)Ничего выключать не нужно, у меня в прогах работает и ADC и TWI и все одновременно, причем TWI на скорости 400KHz Если говорить о меге8, у нее в корпусе соик очень удобные ADC6,ADC7 каналы которые вобще не с чем не пересекаются. 2.) Сергей Борщ абсолютно прав, нет никаких проблем в снятии осцилограммы TWI через ADC, только правда ADC у AVR достаточно тормознутый, и рельно, это можно сделать только на скоростях TWI ~10KHz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Qwertty 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба только правда ADC у AVR достаточно тормознутый, и рельно, это можно сделать только на скоростях TWI ~10KHz Можно поднять такт для АЦП и даже на 400КГц шине получится. Останется только 3-4 бита в результате, но для цифровой шины этого за глаза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
singlskv 0 17 января, 2008 Опубликовано 17 января, 2008 · Жалоба Можно поднять такт для АЦП и даже на 400КГц шине получится. Останется только 3-4 бита в результате, но для цифровой шины этого за глаза.ИМХО, на 400КГц я бы даже пробовать не стал... Вы видимо забыли учесть то что измерительный конденсатор будет подключен к измеряемому сигналу только 1,5 fADC цикла работы ADC из 13 циклов, в такой ситуации многое будет зависить от пулапов на шине TWI, конечно при пулапах порядка 1K может чего и получится снять, но я бы ограничил максимальную(теоритичекси распознаваемую) скорость порядка 100KHz... Хотя конечно определиться можно только проэкспериментировав... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 20 января, 2008 Опубликовано 20 января, 2008 · Жалоба ИМХО, на 400КГц я бы даже пробовать не стал... Вы видимо забыли учесть то что измерительный конденсатор будет подключен к измеряемому .... но я бы ограничил максимальную(теоритичекси распознаваемую) скорость порядка 100KHz... Хотя конечно определиться можно только проэкспериментировав... 1kb не хватит на то чтобы снять хоть сколько-нибудь вразумительную диаграмму на таких частотах, и тем более что-то с ней сделать :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gretis 0 20 января, 2008 Опубликовано 20 января, 2008 · Жалоба Смею вмешаться 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. 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. По-моему, все четко и понятно - от порта отключается, но при этом к ноге остается подцепленным Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DVSkom 0 4 сентября, 2020 Опубликовано 4 сентября, 2020 · Жалоба Недавно мучался с зависанием аппаратного TWI (I2C) на ATMega168. Обмен простейший с DS1307, зависал с разными статусами TWI. Программа на прерываниях и событиях, циклов ожидания нигде нет, псевдопараллельная обработка... Вместе с обменом по TWI работал ADC, который использовал Noise Reduction. Замер ADC начинался после инструкции sleep_cpu(); Автомат TWI зависал если во время обмена происходил замер ADC. Получается, что мастер усыпал во время обмена :) Пришлось перед замером ADC проверять не ведется ли обмен по TWI, и если ведется то откладывать замер ADC. После этого все нормализовалось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться