|
|
  |
Хочется к ножкам PIC'а подключить реле..., Или зря хочется? |
|
|
Guest_@Ark_*
|
Jun 19 2011, 20:18
|
Guests

|
Цитата У, так вы на полном серъёзе? Это грустно... Грустно, что Ваша грусть не подкрепляется цитатами из ДШ. Прошу.
|
|
|
|
|
Jun 19 2011, 20:27
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(@Ark @ Jun 20 2011, 00:09)  Обязательно. Даже в этом случае, принцип тот же - "чтение-модификация-запись" Не упорствуйте, Вы не правы. Для "PORTA=0xFF" в фазе Q1 будет выполнено декодирование операции, в фазах Q2 и Q3 никаких действий выполняться не будет, т.к. оно не надо, в фазе Q4 в PORTA будет записано 0xff. Фазы выполнения команд для мелких пиков подробно расписаны в каком-то ДШ типа "PIC Midrange Instruction Set". Про "кратковременно переводит его на ..." давайте забудем как о случайной описке.
|
|
|
|
|
Jun 19 2011, 20:48
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(zzzzzzzz @ Jun 19 2011, 20:22)  Хорошо, что Вы догадываетесь, что я это знаю. Давайте уж лучше я Вам разжую этот момент, как разработчик ИС, и в том числе одного из PICов. Что-то не получилось пока у Вас. Я, конечно, охотно верю, что PIC-и разрабатывали именно Вы, разработчик ИС из Нью-Крыжополя, но где же обещанное разъяснение? Я хотел понять, как Вы снимали нагрузочную характеристику и получили вышеприведенные цифры.
|
|
|
|
|
Jun 19 2011, 21:07
|

Профессионал
    
Группа: Свой
Сообщений: 1 724
Регистрация: 1-05-05
Из: Нью Крыжопыль
Пользователь №: 4 641

|
Цитата(Herz @ Jun 19 2011, 23:48)  Что-то не получилось пока у Вас. Я, конечно, охотно верю, что PIC-и разрабатывали именно Вы, разработчик ИС из Нью-Крыжополя, но где же обещанное разъяснение? Я хотел понять, как Вы снимали нагрузочную характеристику и получили вышеприведенные цифры. Про использованные значения Вам уже сказали, зачем мне повторяться? А Вы поступаете не корректно по отношению к собеседнику, пытаясь исковеркать его слова в свою "пользу". Это называется "шельмовать". Да и объяснил я достаточно понятно. Для специалиста. Если что-то нужно конкретное, - спросите. Если Вам нужны графики зависимостей - спросите, найдите в документации или снимите сами. Время, проведённое мной в разделе "в помощь начинающему", стало ассоциироваться с пребыванием в какой-то секте агрессивных дилетантов. Уж не обессудьте. Нормально здесь лишь пара человек общается. Пожалуй, не надо мне мешать людям постигать тонкости электроники. Они сами всё знают и умеют. И это прекрасно!
|
|
|
|
|
Jun 19 2011, 21:08
|
Знающий
   
Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119

|
Цитата(xemul @ Jun 20 2011, 00:27)  Для "PORTA=0xFF" в фазе Q1 будет выполнено декодирование операции, в фазах Q2 и Q3 никаких действий выполняться не будет, т.к. оно не надо, в фазе Q4 в PORTA будет записано 0xff. Точно не знаю, выполняется ли чтение при PORTA=0xFF. Я почему-то думал, что все равно выполняется чтение, но результат чтения не используется. Возможно, Вы более точно описали процесс. Но хочу отметить, что есть менее очевидный случай. А именно, когда вы заносите , например, единицу в разряд порта. Т.е. выполняете, например, операцию BSF PORTB,5 . В этом случае производится чтение (всего) порта, модификация бита, а потом обратная запись. Очень тонкое место, хоть и кажется все вполне очевидным. Я как-то потратил несколько дней на вылавливание побочного эффекта от этой операции. Дело было в том, что перед этим я устанавливал в единицу нулевой разряд порта В (BSF PORTB,0). Этот нулевой разряд порта работал на значительную емкостную нагрузку(кажется, затвор мощного мосфета), поэтому он некоторое время не мог выдать на выходе полноценную логическую единицу. А следующая команда была как раз BSF PORTB,5. При ее выполнении читалось состояние на выводах порта, а там еще был ноль в нулевом разряде (емкость не успела зарядится). И получалось, что я второй командой (BSF PORTB,5) сбрасывал в ноль выход нулевого разряда! Т.е. вторая команда "отменяла" первую.
|
|
|
|
Guest_@Ark_*
|
Jun 19 2011, 21:13
|
Guests

|
Цитата Для "PORTA=0xFF" в фазе Q1 будет выполнено декодирование операции, в фазах Q2 и Q3 никаких действий выполняться не будет, т.к. оно не надо, в фазе Q4 в PORTA будет записано 0xff. Конечно, это логично выглядит. Однако во всех ДШ, включая мануал DS33023А, имеет место следующее утверждение: Цитата Все операции записи в порт выполняются по принципу "чтение-модификация-запись"... Исключения для каких либо видов записи не названы. Кому верить? Вам или все-таки Микрочипу?
|
|
|
|
|
Jun 19 2011, 21:40
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(zzzzzzzz @ Jun 20 2011, 00:07)  Про использованные значения Вам уже сказали, зачем мне повторяться? А Вы поступаете не корректно по отношению к собеседнику, пытаясь исковеркать его слова в свою "пользу". Это называется "шельмовать". Да и объяснил я достаточно понятно. Для специалиста. Если что-то нужно конкретное, - спросите. Хм, да нет, спасибо. В третий раз, что ли? Спрашивал вполне конкретно. Мне уже всё ясно. Похоже, тут и правда все собрались, чтобы сплести заговор против Специалиста... И вопросы задают исключительно чтобы скомпрометировать, и слова перевирают "в свою пользу"... Больше не буду.
|
|
|
|
Guest_@Ark_*
|
Jun 19 2011, 22:08
|
Guests

|
Еще раз, по первому утверждению. Даташит на PIC12F6XX, перевод DS41190А. Раздел 10.1: Цитата Любая команда, которая определяет регистр памяти данных как часть команды, выполняется по принципу "Чтение-Модификация-Запись". Сначала выполняется чтение регистра, изменяются данные, а затем результат сохраняется в регистре назначения (). Чтение выполняется даже, если производится только запись данных. Например, команда CLRF GPIO прочитает состояние выводов GPIO, сбросит все биты и запишет результат обратно в GPIO. Этот пример позволяет устранить условие несоответствия и сбросить флаг GPIF.
|
|
|
|
|
Jun 19 2011, 22:15
|

Профессионал
    
Группа: Свой
Сообщений: 1 724
Регистрация: 1-05-05
Из: Нью Крыжопыль
Пользователь №: 4 641

|
Цитата(Herz @ Jun 20 2011, 00:40)  Хм, да нет, спасибо. В третий раз, что ли? Спрашивал вполне конкретно. Мне уже всё ясно. Похоже, тут и правда все собрались, чтобы сплести заговор против Специалиста... И вопросы задают исключительно чтобы скомпрометировать, и слова перевирают "в свою пользу"... Больше не буду. Вы просто еще раз сшельмовали, вещая про "заговор". Может, Вам это и не заметно. А по факту - грозились мне что-то разжевать, а выдали нечто невнятное про какой-то религиозный генератор тока, которого нет. Да, уж лучше не влезайте. Пока! И я покину это прекрасное место с чистой душой.  Цитата(@Ark @ Jun 20 2011, 01:08)  Еще раз, по первому утверждению. Даташит на PIC12F6XX, перевод DS41190А. Раздел 10.1: Чтение неразрушающее, модификация - в АЛУ\аккумуляторе, перезапись - в течении долей нс. Очень просто и понятно.
|
|
|
|
|
Jun 20 2011, 03:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898

|
Какие баталии в выходные я пропустил  . Немножко скажу из своего опыта использования разных PICов 12 и 16 серий. Превышать выходные токи разрешенные производителем - это правило плохого тона. Если он не нормирует ток в импульсе, значит считаем что ток в импульсе не должен превышать постоянный. Если не хватает выходного тока, то ножки в пределах одного Porta можно объединять. Я так делал не на одной сотни штук изделий, а может быть и тысяч. Т.к. точного тиража не знаю. О проблемам мне не сообщали. Правда могут ли объединенные выходы в результате какого-нибудь сбоя оказаться один в нуле, другой в единице и какая этого вероятность я не знаю. Как уже здесь не раз писали, надо посмотреть питание осциллографом, т.к. при таких токах оно прилично скачет. Выходы PICов точно не являются источником тока 25 мА. Поэтому надо ставить токоограничительные резисторы. Все мои устройства ловят переход через ноль 220В, поэтому я сделал так. Через резистор 680кОм подаю на вход PICа 220В. Защитные диоды ограничивают напряжения на входе. Защитные диоды какие-то хиленькие, поэтому если есть возможность, то их лучше замыкать полевиком. Также это помогло однажды в случае использования АЦП. Пришлось вход перехода через 0 делать выходом на время преобразования АЦП иначе у него возростала ошибка преобразования.
|
|
|
|
Guest_@Ark_*
|
Jun 20 2011, 04:59
|
Guests

|
Цитата Угу. Однако там нигде не сказано, что "в процессе чтения порта, PIC кратковременно переводит его на вход". Чтение производится при неизменном состоянии регистра ТРИЗ. Да, действительно. Переключение на вход не происходит. Нигде в документации этого нет. Выходной каскад порта при таком чтении не отключается. В свое время кто-то ввел меня в заблуждение, а я не удосужился проверить. Теперь буду знать. Спасибо.
|
|
|
|
|
Jun 20 2011, 06:52
|
Знающий
   
Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119

|
Цитата(dinam @ Jun 20 2011, 07:52)  Выходы PICов точно не являются источником тока 25 мА. Поэтому надо ставить токоограничительные резисторы. Результаты натурных испытаний (PIC16F877A): Коротыш логической единицы на землю: ток 26.8 мА Коротыш логического нуля на питание: ток 58 мА
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|