|
неадекватная работа PIC16F886.... |
|
|
|
Dec 15 2013, 14:36
|
Гуру
     
Группа: Участник
Сообщений: 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", и лишь затем встает в цикл. Ладно, вдруг (чем черт не шутит) - перепаиваю камень. Ура - работает. Но радость была недолгой, пока плата была еще горячей после перепайки, работало, остыла до комнатной температуры - картина стала прежней, десять секунд до старта, и загадочные "иголки". Я в полном недоумении... Да, советы "смени флюс" - не принимаются.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 20)
|
Dec 16 2013, 10:15
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081

|
Цитата(rx3apf @ Dec 16 2013, 11:01)  В CODEBOXе. В кодебоксе я вижу только слова конфигурации настраиваются. А я говорю про SFR. Не поленитесь их принудительно настроить, а не оставлять "по дефолту".
|
|
|
|
|
Dec 16 2013, 11:30
|

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

|
Помнится, у PIC-ов с буквой A на конце и без буквы была разная начинка, ревизия, компараторов добавили или нечто подобное. Еще технологические нормы менялись, отчего он становился более быстрым, и легче воспринимал помехи. :-) Поэтому стоит пройтись по настройкам всех его периферийных устройств, чтобы убедиться, что ничто не мешает работе портов. Но, мне кажется, важнее проверить качество питания. Может, там помехи? И тактовую частоту вывести наружу, если можно.
|
|
|
|
|
Dec 16 2013, 12:37
|

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

|
Цитата(rx3apf @ Dec 16 2013, 02:01)  Где-где... В CODEBOXе. Там одна настойка, седьмого бита порта B. На нем и смотрю. Я чето не понял, а что программа делать должна? Переход в конце по current счетчику? Скакать по кругу до начала?
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Dec 16 2013, 17:33
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Программа должна настроить порт на вывод и встать в пустой цикл. Никаких конфликтов периферии в такой конфигурации нет, камни однотипные, разница в корпусировке (ну и в партии кристаллов, разумеется). Питание - батарейное (3.6), пробовал внешнее (PICKIT2). На всякий случай запаял и MCLR прямо на VCC, контролирую тактовую - появляется секунд через десять после подачи питания. Следующий этап будет, когда получу камни из другой партии, но это, увы (а продукцию давно надо было отгружать !), будет не слишком быстро. А пока я уверен, что моя коллекция "трофеев" (а там есть и Microchip, и AD, и TI, и FTDI) пополнилась еще одним образчиком
Сообщение отредактировал rx3apf - Dec 16 2013, 19:56
|
|
|
|
|
Dec 17 2013, 04:50
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081

|
Цитата(rx3apf @ Dec 16 2013, 14:53)  О каких регистрах идет речь ? Речь о всех регистрах SFR. В приведённом примере (не знаю, как в реальной программе) они все оставлены "в дефолте". Я же Вам предлагаю настроить их явно-принудительно. После того, как пару раз неработающие камни ожили от такой операции, я всегда так поступаю. Помимо этого, не всегда настройки SFR "по дефолту" соответствуют требуемым (это уже надо конкретно с каждым чипом разбираться). Ну, и разумеется, коли переразводили плату, как говорил дедушка Ленин: "Контакты, контакты, и ещё раз, контакты".
|
|
|
|
|
Dec 17 2013, 08: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. Попробовать вывести сигнал на другие порты. Еще раз - тактовый генератор не запускается, код не выполняется. Да, на других портах я пробовал еще раньше, когда еще не понял, что проблемы именно в запуске.
|
|
|
|
|
Dec 17 2013, 08:55
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(ViKo @ Dec 17 2013, 12:33)  Может, питание включается слишком резко? Да еще с дребезгом? Нет. Ни дребезга, ни излишней скорости нарастания тоже нет. И, потом, полежав 10 секунд, все равно ведь запускается. Ладно, гадать больше просто не о чем, жду кристаллов из другой партии. Нарывался я уже и у Microchip на такое (правда, в прошлый раз это были не микроконтроллеры).
|
|
|
|
|
Dec 17 2013, 09:13
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Джампером. А там есть конденсаторы. Включал PICKITом - все точно так же. Цитата(ViKo @ Dec 17 2013, 13:01)  PIC пробегает по всей своей (пустой) программной памяти, потом доходит до начала программы и начинает работать... Может, супервизор на сброс, или этот... BOD задействовать? Это прямо не PIC, а стелс какой-то - "пробежать" по памяти, и при этом при отсутствии генерации на контрольном выходе генератора. Ладно, хватит гадать. Пока прикрываю.
Сообщение отредактировал rx3apf - Dec 17 2013, 09:14
|
|
|
|
|
Dec 18 2013, 05:29
|
Местный
  
Группа: Участник
Сообщений: 211
Регистрация: 18-03-13
Из: Питер
Пользователь №: 76 081

|
Цитата(rx3apf @ Dec 17 2013, 19:20)  ставился бит LVP А я говорил: "Настраивать надо".  С ПИКами у меня ни разу проблем по вине чипа не возникало. Только по собственной невнимательности/дурости. Если у кого ещё непонятки возникнут, в аттаче небольшая тестовая програмка: Примерно через 2.66ms, после включения, на RC0 (pin11) появляется высокий уровень, и примерно через 1,02ms выдаёт короткие отрицательные импульсы, свидетельствующие о работе генератора. Выход TX меняет Z на высокий уровень примерно на 1,62ms, а передачу начинает на 67,2ms (байт 00110011, скорость 15 625Bps), с периодом примерно 65,5ms. Ограничения: Задействованы на выход: RB1(22), RB4(25), RB5(26), RB6(27), RB7(28), RC2(13).
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|