Гость @Ark 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба У, так вы на полном серъёзе? Это грустно... Грустно, что Ваша грусть не подкрепляется цитатами из ДШ. Прошу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Обязательно. Даже в этом случае, принцип тот же - "чтение-модификация-запись" Не упорствуйте, Вы не правы. Для "PORTA=0xFF" в фазе Q1 будет выполнено декодирование операции, в фазах Q2 и Q3 никаких действий выполняться не будет, т.к. оно не надо, в фазе Q4 в PORTA будет записано 0xff. Фазы выполнения команд для мелких пиков подробно расписаны в каком-то ДШ типа "PIC Midrange Instruction Set". Про "кратковременно переводит его на ..." давайте забудем как о случайной описке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Хорошо, что Вы догадываетесь, что я это знаю. Давайте уж лучше я Вам разжую этот момент, как разработчик ИС, и в том числе одного из PICов. Что-то не получилось пока у Вас. Я, конечно, охотно верю, что PIC-и разрабатывали именно Вы, разработчик ИС из Нью-Крыжополя, но где же обещанное разъяснение? Я хотел понять, как Вы снимали нагрузочную характеристику и получили вышеприведенные цифры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zzzzzzzz 0 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Что-то не получилось пока у Вас. Я, конечно, охотно верю, что PIC-и разрабатывали именно Вы, разработчик ИС из Нью-Крыжополя, но где же обещанное разъяснение? Я хотел понять, как Вы снимали нагрузочную характеристику и получили вышеприведенные цифры. Про использованные значения Вам уже сказали, зачем мне повторяться? А Вы поступаете не корректно по отношению к собеседнику, пытаясь исковеркать его слова в свою "пользу". Это называется "шельмовать". Да и объяснил я достаточно понятно. Для специалиста. Если что-то нужно конкретное, - спросите. Если Вам нужны графики зависимостей - спросите, найдите в документации или снимите сами. Время, проведённое мной в разделе "в помощь начинающему", стало ассоциироваться с пребыванием в какой-то секте агрессивных дилетантов. Уж не обессудьте. Нормально здесь лишь пара человек общается. Пожалуй, не надо мне мешать людям постигать тонкости электроники. Они сами всё знают и умеют. И это прекрасно! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SKov 0 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Для "PORTA=0xFF" в фазе Q1 будет выполнено декодирование операции, в фазах Q2 и Q3 никаких действий выполняться не будет, т.к. оно не надо, в фазе Q4 в PORTA будет записано 0xff. Точно не знаю, выполняется ли чтение при PORTA=0xFF. Я почему-то думал, что все равно выполняется чтение, но результат чтения не используется. Возможно, Вы более точно описали процесс. Но хочу отметить, что есть менее очевидный случай. А именно, когда вы заносите , например, единицу в разряд порта. Т.е. выполняете, например, операцию BSF PORTB,5 . В этом случае производится чтение (всего) порта, модификация бита, а потом обратная запись. Очень тонкое место, хоть и кажется все вполне очевидным. Я как-то потратил несколько дней на вылавливание побочного эффекта от этой операции. Дело было в том, что перед этим я устанавливал в единицу нулевой разряд порта В (BSF PORTB,0). Этот нулевой разряд порта работал на значительную емкостную нагрузку(кажется, затвор мощного мосфета), поэтому он некоторое время не мог выдать на выходе полноценную логическую единицу. А следующая команда была как раз BSF PORTB,5. При ее выполнении читалось состояние на выводах порта, а там еще был ноль в нулевом разряде (емкость не успела зарядится). И получалось, что я второй командой (BSF PORTB,5) сбрасывал в ноль выход нулевого разряда! Т.е. вторая команда "отменяла" первую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Для "PORTA=0xFF" в фазе Q1 будет выполнено декодирование операции, в фазах Q2 и Q3 никаких действий выполняться не будет, т.к. оно не надо, в фазе Q4 в PORTA будет записано 0xff. Конечно, это логично выглядит. Однако во всех ДШ, включая мануал DS33023А, имеет место следующее утверждение: Все операции записи в порт выполняются по принципу "чтение-модификация-запись"... Исключения для каких либо видов записи не названы. Кому верить? Вам или все-таки Микрочипу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 15 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Однако во всех ДШ, включая мануал DS33023А, имеет место следующее утверждение: ... Исключения для каких либо видов записи не названы. Угу. Однако там нигде не сказано, что "в процессе чтения порта, PIC кратковременно переводит его на вход". Чтение производится при неизменном состоянии регистра ТРИЗ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Про использованные значения Вам уже сказали, зачем мне повторяться? А Вы поступаете не корректно по отношению к собеседнику, пытаясь исковеркать его слова в свою "пользу". Это называется "шельмовать". Да и объяснил я достаточно понятно. Для специалиста. Если что-то нужно конкретное, - спросите. Хм, да нет, спасибо. В третий раз, что ли? Спрашивал вполне конкретно. Мне уже всё ясно. Похоже, тут и правда все собрались, чтобы сплести заговор против Специалиста... И вопросы задают исключительно чтобы скомпрометировать, и слова перевирают "в свою пользу"... Больше не буду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Еще раз, по первому утверждению. Даташит на PIC12F6XX, перевод DS41190А. Раздел 10.1: Любая команда, которая определяет регистр памяти данных как часть команды, выполняется по принципу "Чтение-Модификация-Запись". Сначала выполняется чтение регистра, изменяются данные, а затем результат сохраняется в регистре назначения (). Чтение выполняется даже, если производится только запись данных. Например, команда CLRF GPIO прочитает состояние выводов GPIO, сбросит все биты и запишет результат обратно в GPIO. Этот пример позволяет устранить условие несоответствия и сбросить флаг GPIF. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zzzzzzzz 0 19 июня, 2011 Опубликовано 19 июня, 2011 · Жалоба Хм, да нет, спасибо. В третий раз, что ли? Спрашивал вполне конкретно. Мне уже всё ясно. Похоже, тут и правда все собрались, чтобы сплести заговор против Специалиста... И вопросы задают исключительно чтобы скомпрометировать, и слова перевирают "в свою пользу"... Больше не буду. Вы просто еще раз сшельмовали, вещая про "заговор". Может, Вам это и не заметно. А по факту - грозились мне что-то разжевать, а выдали нечто невнятное про какой-то религиозный генератор тока, которого нет. Да, уж лучше не влезайте. Пока! И я покину это прекрасное место с чистой душой. :) Еще раз, по первому утверждению. Даташит на PIC12F6XX, перевод DS41190А. Раздел 10.1: Чтение неразрушающее, модификация - в АЛУ\аккумуляторе, перезапись - в течении долей нс. Очень просто и понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 20 июня, 2011 Опубликовано 20 июня, 2011 · Жалоба Какие баталии в выходные я пропустил :) . Немножко скажу из своего опыта использования разных PICов 12 и 16 серий. Превышать выходные токи разрешенные производителем - это правило плохого тона. Если он не нормирует ток в импульсе, значит считаем что ток в импульсе не должен превышать постоянный. Если не хватает выходного тока, то ножки в пределах одного Porta можно объединять. Я так делал не на одной сотни штук изделий, а может быть и тысяч. Т.к. точного тиража не знаю. О проблемам мне не сообщали. Правда могут ли объединенные выходы в результате какого-нибудь сбоя оказаться один в нуле, другой в единице и какая этого вероятность я не знаю. Как уже здесь не раз писали, надо посмотреть питание осциллографом, т.к. при таких токах оно прилично скачет. Выходы PICов точно не являются источником тока 25 мА. Поэтому надо ставить токоограничительные резисторы. Все мои устройства ловят переход через ноль 220В, поэтому я сделал так. Через резистор 680кОм подаю на вход PICа 220В. Защитные диоды ограничивают напряжения на входе. Защитные диоды какие-то хиленькие, поэтому если есть возможность, то их лучше замыкать полевиком. Также это помогло однажды в случае использования АЦП. Пришлось вход перехода через 0 делать выходом на время преобразования АЦП иначе у него возростала ошибка преобразования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 20 июня, 2011 Опубликовано 20 июня, 2011 · Жалоба Исключения для каких либо видов записи не названы. Кому верить? Вам или все-таки Микрочипу? Мдя, был неправ - уже забылось. В регистровых операциях в Q2 всегда читается источник, в Q3 - при необходимости выполняется модификация, в Q4 - запись в приёмник. (у меня почему-то осталось ложное воспоминание, что, когда источник - W или литерал, и операция не требует модификации данных, достаточно Q1 и Q4). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость @Ark 20 июня, 2011 Опубликовано 20 июня, 2011 · Жалоба Угу. Однако там нигде не сказано, что "в процессе чтения порта, PIC кратковременно переводит его на вход". Чтение производится при неизменном состоянии регистра ТРИЗ. Да, действительно. Переключение на вход не происходит. Нигде в документации этого нет. Выходной каскад порта при таком чтении не отключается. В свое время кто-то ввел меня в заблуждение, а я не удосужился проверить. Теперь буду знать. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 20 июня, 2011 Опубликовано 20 июня, 2011 · Жалоба Я тоже предполагал, что при записи целого байта в порт чтения-модификации-записи не происходит. (Видимо, осталось из опыта использования 51-й микроЭВМ.) Но в ДШ об этом не написано. Наверное, происходит в любом случае, для простоты реализации. Но ведь при управлении реле уровни выходов остаются в пределах допустимых. Хотя и сближаются из-за нагрузки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SKov 0 20 июня, 2011 Опубликовано 20 июня, 2011 · Жалоба Выходы PICов точно не являются источником тока 25 мА. Поэтому надо ставить токоограничительные резисторы. Результаты натурных испытаний (PIC16F877A): Коротыш логической единицы на землю: ток 26.8 мА Коротыш логического нуля на питание: ток 58 мА Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться