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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> неадекватная работа PIC16F886....
rx3apf
сообщение Dec 15 2013, 14:36
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Столкнулся с загадочным поведением PIC16F886 - устройство переделывалось с заменой камня в SOIC на SSOP, и как-то уж очень долго стартовало. Грешил на обвязку часового кварца, но картина оказалась еще более загадочной. Итак, простейший код:
CODE
__CONFIG _CONFIG1, _INTOSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF

__CONFIG _CONFIG2, _WRT_OFF & _BOR21V


org 0

banksel 0
clrf INTCON

banksel TRISB
bcf TRISB,7

banksel 0
clrf PORTB

goto $


На прототипе, где стоял камень в SOIC, работает как и должно (а чего бы и не работать ?) - сразу бит порта в 0 (у него там была внешняя притяжка). На новом устройстве, где в SSOP - молчит секунд десять (на всякий случай - на сбросе уже давно гарантированно "1"), потом переходит в "0", затем несколько коротких импульсов в "1", и лишь затем встает в цикл. Ладно, вдруг (чем черт не шутит) - перепаиваю камень. Ура - работает. Но радость была недолгой, пока плата была еще горячей после перепайки, работало, остыла до комнатной температуры - картина стала прежней, десять секунд до старта, и загадочные "иголки". Я в полном недоумении... Да, советы "смени флюс" - не принимаются.
Go to the top of the page
 
+Quote Post
Smen
сообщение Dec 16 2013, 05:41
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081



Так, а где настройки-то?
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 16 2013, 07:01
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Где-где... В CODEBOXе. Там одна настойка, седьмого бита порта B. На нем и смотрю.
Go to the top of the page
 
+Quote Post
Smen
сообщение Dec 16 2013, 10:15
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081



Цитата(rx3apf @ Dec 16 2013, 11:01) *
В CODEBOXе.
В кодебоксе я вижу только слова конфигурации настраиваются.
А я говорю про SFR.
Не поленитесь их принудительно настроить, а не оставлять "по дефолту".
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 16 2013, 10:53
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



О каких регистрах идет речь ? Меня в данном случае интересует только и исключительно настройка одной линии одного порта (PORTB). TRISB настроил, PORTB настроил (Вы что, не пролистали CODEBOX ?). Что еще нужно ? И почему то, что без проблем работает на процессоре в SOIC, не работает в SSOP ? Поскольку я уже не первый раз сталкиваюсь с несоответствием поведения описанному в даташите, то явному браку уже не удивляюсь...

Сообщение отредактировал rx3apf - Dec 16 2013, 10:54
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 16 2013, 11:30
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Помнится, у PIC-ов с буквой A на конце и без буквы была разная начинка, ревизия, компараторов добавили или нечто подобное. Еще технологические нормы менялись, отчего он становился более быстрым, и легче воспринимал помехи. :-) Поэтому стоит пройтись по настройкам всех его периферийных устройств, чтобы убедиться, что ничто не мешает работе портов. Но, мне кажется, важнее проверить качество питания. Может, там помехи? И тактовую частоту вывести наружу, если можно.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Dec 16 2013, 12:37
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(rx3apf @ Dec 16 2013, 02:01) *
Где-где... В CODEBOXе. Там одна настойка, седьмого бита порта B. На нем и смотрю.

Я чето не понял, а что программа делать должна?
Переход в конце по current счетчику?
Скакать по кругу до начала?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 16 2013, 17:33
Сообщение #8


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Программа должна настроить порт на вывод и встать в пустой цикл. Никаких конфликтов периферии в такой конфигурации нет, камни однотипные, разница в корпусировке (ну и в партии кристаллов, разумеется). Питание - батарейное (3.6), пробовал внешнее (PICKIT2).

На всякий случай запаял и MCLR прямо на VCC, контролирую тактовую - появляется секунд через десять после подачи питания.

Следующий этап будет, когда получу камни из другой партии, но это, увы (а продукцию давно надо было отгружать !), будет не слишком быстро. А пока я уверен, что моя коллекция "трофеев" (а там есть и Microchip, и AD, и TI, и FTDI) пополнилась еще одним образчиком sad.gif

Сообщение отредактировал rx3apf - Dec 16 2013, 19:56
Go to the top of the page
 
+Quote Post
dinam
сообщение Dec 17 2013, 02:34
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Если уже нет никаких идей, а чудес к сожалению не бывает, то я бы попробовал следующее.
1. Ткнулся бы осциллографом в питание и посмотрел на предмет всяких загадочных пульсаций.
2. Проверил тестером подтягивающие резисторы если они есть.
3. Проверил цоколевку корпусов, желательно из разных мест(рисунков, таблиц). Вдруг SOIC и SSOP разводка разная.
4. Я так понимаю плату переразводили, значит плату ещё раз проверьте.
5. Проверьте уровни 0 и 1 на всех входах/выходах они должны иметь четкие уровни.
6. Попробовать вывести сигнал на другие порты.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Dec 17 2013, 02:58
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



RB7 задействован в программаторе, там резисторы то стоят? Может изза программатора не получается, а ДИП отдельно программировался?


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Smen
сообщение Dec 17 2013, 04:50
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081



Цитата(rx3apf @ Dec 16 2013, 14:53) *
О каких регистрах идет речь ?
Речь о всех регистрах SFR.
В приведённом примере (не знаю, как в реальной программе) они все оставлены "в дефолте".
Я же Вам предлагаю настроить их явно-принудительно.
После того, как пару раз неработающие камни ожили от такой операции, я всегда так поступаю.
Помимо этого, не всегда настройки SFR "по дефолту" соответствуют требуемым (это уже надо конкретно с каждым чипом разбираться).
Ну, и разумеется, коли переразводили плату, как говорил дедушка Ленин: "Контакты, контакты, и ещё раз, контакты".
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 17 2013, 08:12
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Еще раз - _какие_ регистры ? Все используемые мной регистры (PORTB, TRISB) настроены, это видно в примере. Да хоть бы и не настроены - не работает тактовый генератор (кстати, с EXTRC картина та же, если что). И программатор отключался - это тоже ничего не меняет.

Цитата(dinam @ Dec 17 2013, 06:34) *
1. Ткнулся бы осциллографом в питание и посмотрел на предмет всяких загадочных пульсаций.

Нет.
Цитата
2. Проверил тестером подтягивающие резисторы если они есть.

Есть. Поэтому до настройки портов я вижу (когда смотрю скопом) питание, а когда логическим пробником (низкоимпедансным) - вижу Z-состояние.
Цитата
3. Проверил цоколевку корпусов, желательно из разных мест(рисунков, таблиц). Вдруг SOIC и SSOP разводка разная.

Ага. А через десять секунд микросхема сама меняет себе разводку и запускается ?
Цитата
4. Я так понимаю плату переразводили, значит плату ещё раз проверьте.

"Земля" есть, "питание" есть, "сброс" на месте. Все. Для выполнения того кода, что я привел, больше ничего не надо.
Цитата
5. Проверьте уровни 0 и 1 на всех входах/выходах они должны иметь четкие уровни.
6. Попробовать вывести сигнал на другие порты.

Еще раз - тактовый генератор не запускается, код не выполняется. Да, на других портах я пробовал еще раньше, когда еще не понял, что проблемы именно в запуске.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 17 2013, 08:33
Сообщение #13


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Может, питание включается слишком резко? Да еще с дребезгом?
Go to the top of the page
 
+Quote Post
dinam
сообщение Dec 17 2013, 08:45
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Ещё подкину идей.
Тогда может дело в кварце? Номиналы конденсаторов (резисторов) в обвязке кварца соответствуют требованиям кварца? Неудачная разводка или дефект конкретной платы. Попробуйте перейти на внутренний генератор. Errarta на PIC ничего не говорит по этому поводу?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 17 2013, 08:47
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(dinam @ Dec 17 2013, 11:45) *
Попробуйте перейти на внутренний генератор.

Он и работает от внутреннего генератора. См. CONFIG.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 6th August 2025 - 11:35
Рейтинг@Mail.ru


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