В: Как перевести программу с PIC16F87xA на PIC16F88x?
О: Микроконтроллеры семейства PIC16F88x pin-to-pin и функционально совместимы с PIC16F87xA. При переводе проекта нужно учесть следующие особенности:
1. Заменить включаемый файл (include file) PIC16F87XA на PIC16F88X.
2. Сконфигурировать регистры ANSEL и ANSELH для нормального функционирования PORTA, PORTB, PORTE. По умолчанию входной цифровой буфер на выводах AN0-AN13 (RA0-RA3, RA5, RB0-RB5, RE0-RE2) отключен и считывание с любого из этих выводов контроллера будет давать «0». Для использования их в качестве цифровых входов необходимо сбросить в «0» соответствующие биты ANSEL (AN7-AN0) и ANSELH (AN13-AN8).
3. Весь код, использующий параллельный ведомый порт (PSP) должен быть переписан. В МК PIC16F88X PSP отсутствует.
4. В МК PIC16F88X выводы PORTB получили возможность индивидуальной настройки на прерывание по изменению уровня. По умолчанию эта функция PORTB выключена. Для включения необходимо установить все биты регистра IOCB в «1».
5. TIMER1 получил новую функцию – тактирование от счетного входа T1G. За включение этой функции отвечает бит 6 T1CON, т.е. для совместимости с PIC16F87XA он должен быть сброшен.
6. Режимы работы модуля компараторов ликвидированы – каждый компаратор получил собственный управляющий регистр. Соответствия режимов с новыми регистрами приведены ниже:
MODE 000: COMPARATOR RESET
CM1CON0 b’00000000’ (default)
CM2CON0 b’00000000’ (default)
CM2CON1 02h (default)
ANSEL b’xxxx1111’
MODE 001: ONE INDEPENDENT COMPARATOR WITH OUTPUT
CM1CON0 b’10100100’
CM2CON0 b’00000000’ (default)
CM2CON1 02h (default)
ANSEL b’xxxx1001’
MODE 010: TWO INDEPENDENT COMPARATORS
CM1CON0 b’100x0000’
CM2CON0 b’100x0001’
CM2CON1 02h (default)
ANSEL b’xxxx1111’
MODE 011: TWO INDEPENDENT COMPARATORS WITH OUTPUTS
CM1CON0 b’101x0000’
CM2CON0 b’101x0001’
CM2CON1 02h (default)
ANSEL b’xxxx1111’
MODE 100: TWO COMMON REFERENCE COMPARATORS
CM1CON0 b’100x0000’
CM2CON0 b’100x0001’
CM2CON1 02h (default)
ANSEL b’xxxx1011’
Компаратор 2 работает не совсем так, как прежде в этом режиме. Его положительный вход не может программно объединен с положительным входом компаратора 1. В данной конфигурации на положительный вход компаратора 2 выведен RA2.
MODE 101: TWO COMMON REFERENCE COMPARATORS WITH OUTPUTS
CM1CON0 b’101x0000’
CM2CON0 b’101x0001’
CM2CON1 02h (default)
ANSEL b’xxxx1011’
Компаратор 2 работает не совсем так, как прежде в этом режиме. Его положительный вход не может программно объединен с положительным входом компаратора 1. В данной конфигурации на положительный вход компаратора 2 выведен RA2.
MODE 110: FOUR INPUTS MULTIPLEXED TO TWO COMPARATORS.
CM1CON0 b’100x0100’
CM2CON0 b’100x0101’
CM2CON1 32h
ANSEL b’xxxx1111’
Компараторы могут работать не совсем так, как прежде в этом режиме. На отрицательный вход компаратора 1 не может быть выведен RA3 и на отрицательный вход компаратора 2 не может быть выведен RA2 программно. В данной конфигурации на отрицательный вход компаратора 1 выведен RA0, на отрицательный вход компаратора 2 – RA1.
MODE 111: COMPARATORS OFF
CM1CON0 b’00000000’ (default)
CM2CON0 b’00000000’ (default)
CM2CON1 02h (default)
ANSEL b’xxxx0000’
7. Из регистре ADCON1 исключена функция бита 6 ADCS2, тем самым в PIC16F88X отсутствует возможность работы АЦП с частотами Fosc/4, Fosc/16, Fosc/64. Также устранены функции битов 0-3 PCFG0:PCFG3, отвечавшие в PIC16F87XA за конфигурирование портов (аналоговый/цифровой) и выбор источника опорного напряжения. Теперь функцию конфигурирования портов выполняют регистры ANSEL, ANSELH, а функция выбора источника опорного напряжения возложена на биты 4, 5 VCFG0, VCFG1. Бит статуса АЦП GO/~(DONE)«переехал» с 2 бита на 1 бит регистра ADCON0. В связи с увеличением количества каналов АЦП добавлен 1 бит на выбор активных каналов: в PIC16F87XA – биты 3-5 CHS0:CHS2, в PIC16F88X - биты 2-5 CHS0:CHS3.
8. Добавлен режим ШИМ в модуле CCP1. Для управления им добавлены функции на ранее неопределенные биты 6 и 7 регистра CCP1CON P1M1:P1M0. Для совместимости с PIC16F87XA они должны быть сброшены в 0.
9. В PIC16F87XA модуль AUSART задает скорость передачи 8-битным регистром SPBRG. Модуль EUSART в PIC16F88X может задавать скорость передачи как 8-битным регистром SPBRG, так и 16-битным сдвоенным SPBRG:SPBRGH. За активацию функции 16-битного задания скорости отвечает бит 3 BRG16 регистра BAUDCTL. Также в PIC16F88X EUSART получил возможность автоопределения скорости передачи, за это отвечает бит 3 SENDB регистра TXSTA. Для отключения новых функций PIC16F88X для совместимости с PIC16F87XA необходимо сбросить в 0 бит 3 SENDB регистра TXSTA, сбросить в 0 регистра SPBRGH и BAUDCTL.
10. Убедитесь, что верно выставлены биты конфигурации МК. В PIC16F88X 2 16-битных конфигурационных слова CONFIG0:CONFIG1, в PIC16F87XA – одно CONFIG. Для совместимости рекомендуется биты 8 и 9 BOREN1:0 устанавливать в «00» или «11». Следует обратить внимание, что модуль BOR получил возможность выбора одного из двух пороговых значений пониженного напряжения – 2.1 В и 4.0 В, что определяется битом 8 BOR4V слова CONFIG2. В PIC16F87XA – только 4 В.
Среди новых функций PIC16F88X, отключенных по умолчанию и не требующих учета при переходе с PIC16F87XA, можно отметить сверхмалопотребляющий модуль пробуждения МК (ULPWU) мультиплексированный на вывод RA0; добавлены 2 вывода PORTA – RA6, RA7 и RE3 на PORTE; появилась возможность индивидуальной настройки подтягивающих резисторов PORTB; сторожевой таймер WDT получил возможность использовать предделитель (совместный с Timer0), что позволяет задавать период 1 мс до 268 секунд.
В: Можно ли использовать внутрисхемный отладчик ICD в качестве программатора для контроллеров Microchip?
О: Внутрисхемный отладчик-программатор ICD поддерживает программирование и отладку контроллеров серии PIC16F87x в среде разработки MPLAB IDE (до версии 5.70.40). Для поддержки контроллеров PIC16F87xA необходимо скачать обновление с сайта Microchip:
Firmware Update v2.40.01 for PIC16F87xA support
Известная своим Си-компилятором компания CCS Inc (http://www.ccsinfo.com), выпускает несколько типов дебаггеров. Одно из таких устройств полностью аппаратно идентично ICD. Таким образом, изменив прошивку микроконтроллера PIC16F876, установленного на плате отладчика, и установив программное обеспечение, можно программировать практически любой FLASH микроконтроллер MICROCHIP (семейств PIC10F, PIC12F, PIC16F, PIC18F).
Скачать последнее обновление прошивки и оболочки программатора можно тут:
icds.exe
После установки ПО необходимо прошить в контроллер, установленный в ICD, загрузчик, затем с подключенным ICD запустить программу ICD.exe и загрузить в ICD программу в соответствии с программируемыми контроллерами (разные программы для PIC16 и PIC18).
В: Не запускается внутрисхемная отладка с использованием ICD-2, хотя программирование и верификация проходят успешно. Выдается сообщение об ошибке: ICD0083: Target not in debug mode, unable to perform operation. В чем проблема?
О: Данное сообщение об ошибке говорит о невозможности выполнения операций отладки. Это, как правило, связано с проблемами питания или генератора. Проверьте
- напряжение питание на микроконтроллере,
- запретите включение BOD если используется пониженное напряжение,
- проверьте правильность подключения и работоспособность тактового генератора,
- проверьте соответствие частоты кварца режиму работы генератора (биты конфигурации HS, XT, RC и т.д.).
В: В чем отличие микроконтроллеров PIC16F62x и PIC16F62xA, как быстро перейти на новые контроллеры?
О: Новые контроллеры переработаны для уменьшения энергопотребления и уменьшения площади кристалла для уменьшения цены.
При переходе на новые контроллеры нужно обратить внимание на следующие особенности:
1. Режим генератора ER (с внешним резистором) убран, вместо него теперь режим RC (с внешними R и C). Для того чтобы схема дальше поддерживала ту же скорость, в большинстве случаев надо будет добавить конденсатор и изменить значение резистора.
2. Изменено назначение битов защиты в слове конфигурации. Теперь вместо поблочного выставления битов защиты CP0-CP1 имеется бит защиты для всей памяти программ CP (бит<13>).
3. Включение сброса по уменьшению напряжения питания BOR в слове конфигурации, теперь автоматически не включает сброс по включению питания PWRT.
4. Модуль таймера TMR1 оптимизирован для работы с кварцем с частотой 32,768 кГц. Это позволило ументшить потребление модуля Timer1. В PIC16F62x Timer1 мог работать с кварцем до 200 кГц.
5. Переключение частоты внутреннего генератора возможно только в режиме INTOSC. В предыдущей версии этот режим был доступен при выборе генератора INTRC и ER. Встроенный RC генератор на 4МГц теперь имеет калибровку с точностью +-1%.
6. Исправлена работа встроенных аналоговых компараторов. Все режимы компаратора в новой версии работают как указано в описании. Замечания, которые присутствовали в документе Errata на PIC16F62x, исправлены.
7. При изготовлении новой версии используется новый технологический процесс получения кристалла, поэтому перед переходом на новый тип кристалла необходимо изучить в описании все электрические и временные параметры, которые могут измениться.
8. Добавлены изменения в терминологии, так BOD теперь именуется BOR и режим внутреннего генератора INTRC теперь INTOSC.
В: Какие средства отладки Microchip доступны для работы с новыми контроллерами PIC16F627A/628A/648A?
О: Контроллеры PIC16F627A/628A/648A можно программировать с помощью промышленного программатора PROMATE II, а так же с помощью внутрисхемного отладчика ICD-2.
Внутрисхемная отладка этих контроллеров с помощью ICD-2 возможна при помощи дополнительного адаптера AC162053.
В: В чем отличие микроконтроллеров PIC16F87x и PIC16F87xA, как быстро перейти на новые контроллеры?
О: Новые микроконтроллеры PIC16F87xA выполнены по технологии 0,5мкм, за счет чего снижена площадь кристалла и соответственно существенно уменьшена цена контроллера.
В: Как перевести программу с PIC16F87x на PIC16F87xA?
О: Микроконтроллеры семейства PIC16F87xA pin-to-pin и функционально совместимы с PIC16F87x. При переводе проекта нужно учесть следующие особенности:
1. Изменена спецификация на программирование, поэтому программатор должен поддерживать контроллеры PIC16F87xA.
2. В PIC16F87xA добавлены два компаратора с программируемым источником опорного напряжения. Это новшество не требует программных изменений, так как по включению питания или сбросу контроллера компараторы отключены и не влияют на работу контроллера.
Однако рекомендуется ВСЕГДА проводить начальную инициализацию рабочих регистров.
3. В PIC16F87xA изменен принцип записи в память программ. Если раньше в контроллерах семейства PIC16F87x можно было записать отдельное слово, то в PIC16F87xА запись производится блоками по 4 слова. Таким образом, для изменения одного слова в памяти программ нужно сначала считать 4 слова, изменить одно из них, а затем записать целый блок.
4. Изменено назначение битов конфигурации, а именно
а) отвечающих за защиту кода от внешнего считывания;
б) разрешающих запись в программную память (самопрограммирование).
Вместо двух бит блочной защиты памяти программ в контроллерах PIC16F87xA используется один бит на всю программную память. Вместо одного бита разрешения записи в память программ для PIC16F87x (режим самопрограммирования) в контроллерах PIC16F87xA используются два бита, определяющие разрешенную для модификации область программной памяти. В контроллерах семейства PIC16F87xA можно, при установленном бите защиты от внешнего чтения, производить программную модификацию памяти программ, что было недоступно ранее.
Так как контроллеры PIC16F87x и PIC16F87xA выполнены по разным технологическим нормам и топология кристаллов различна, то может потребоваться изменение номиналов конденсаторов в цепи генератора или изменение его режима.
Очень часто конденсаторы в цепи кварца подключают к "грязной" силовой земле, что приводит к возникновению помехи на высокоомных входах генератора и сбоям в работе контроллера. Правильная разводка печатной платы, а именно подключение земли конденсаторов непосредственно к ближайшему выводу контроллера и далее к остальной земле, а так же минимизация длины проводников, позволяет избежать проблем с тактированием контроллера и повысит помехоустойчивость системы.
В: Какие контроллеры поддерживает внутрисхемный отладчик ICD-2?
О: В настоящее время ICD-2 поддерживает программирование всех Flash контроллеров семейств PIC10F, PIC12Fxxx, PIC16F, PIC18Fxxx, dsPIC30F.
В: Сколько циклов стирания/записи гарантирует Microchip для микросхем энергонезависимой памяти?
О: В зависимости от типа этот параметр составляет от 1.000.000 до 10.000.000. Следует учесть, что это минимальное гарантированное число при температуре +85 градусов. Поэтому реальные цифры гораздо больше.
Расчитать срок службы EEPROM при различной температуре, напряжени питания и др. можно воспользовавшись программой Total Endurance™
В: Как запрограммировать PIC17C756 с помощью программатора PICSTART PLUS
О: Распайка переходника для программирования PIC17C756 (корпус PLCC-68) в программаторе PICSTART PLUS
|
Picstart Plus
(DIP-40) |
Сигнал |
PIC17C756 (PLCC-68) |
|
1 |
Vdd |
2, 20, 37, 49 |
|
2 |
RC0 |
3 |
|
3 |
RC1 |
67 |
|
4 |
RC2 |
66 |
|
5 |
RC3 |
65 |
|
6 |
RC4 |
64 |
|
7 |
RC5 |
63 |
|
8 |
RC6 |
62 |
|
9 |
RC7 |
61 |
|
10, 31 |
VSS |
19, 36, 53, 68 |
|
11 |
RB0 |
59 |
|
12 |
RB1 |
58 |
|
13 |
RB2 |
54 |
|
14 |
RB3 |
57 |
|
15 |
RB4 |
56 |
|
16 |
RB5 |
55 |
|
17 |
RB6 |
47 |
|
18 |
RB7 |
48 |
|
19 |
OSC_IN |
50 |
|
21 |
RA5 |
42 |
|
22 |
RA4 |
43 |
|
23 |
RA3 |
46 |
|
24 |
RA2 |
45 |
|
25 |
RA1 |
44 |
|
26 |
RA0 |
60 |
|
27 |
TEST |
17 |
|
32 |
MCLR/VPP |
16 |
Данный переходник поддерживает параллельное и последовательное программирование. Для внутрисхемного программирования число выводов можно существенно сократить если использовать параллельное программирование (подробности см. в спецификации на внутрисхемное программирование)
|
|
 25.03.2011 Вышла бета-версия новой интегрированной среды разработки (IDE) от Microchip - MPLAB IDE Х
Подробнее...
|
 24.02.2010 ВНИМАНИЕ! Приглашаем Вас на СЕМИНАР по продукции фирмы Microchip Technology Inc. 16 марта 2011 г.
Подробнее...
|
 10.02.2011 Microchip расширяет линейку CAN микроконтроллеров недорогими 8-и разрядными PIC® микроконтроллерами с низким потреблением
Подробнее...
|
 18.10.2010 Вдобавок к зарекомендовавшим себя приемопередатчикам MRF49XA, Microchip выпускает свехнизкопотребляющий трансивер, оптимизированный на частотный диапазон 868/915 МГц - MRF89XA.
Подробнее...
|
 30.09.2010

Приглашаем Вас принять участие в ежегодном практическом семинаре
Microchip MASTERs Russia 2010
Подробнее...
|
 21.09.2010 Microchip представляет новые микроконтроллеры PIC16 - cемейство контроллеров XLP nanoWatt с улучшенным ядром, сверхнизким потреблением в активном режиме до 50нА/МГц и низкой ценой.
Подробнее...
| |
|
|