Страница 1 из 1

Замена PIC16F84A на PIC16F628A

Добавлено: Сб мар 28, 2009 14:39:49
Strannik
Можно ли заменить без изменения прошивки? Если нет, то что надо менять? заранее спасибо.

Добавлено: Сб мар 28, 2009 15:29:43
pomidor
Если начинать изучать мелкоконтроллеры с нуля, то все же авр'ки более подходят для этого, пмнм хотя..

Без переделки нельзя.
насилу нашел на винте (сорри за длинную цитату - оригинальная страничка уже давно умерла), для 628 подходит. (если поможет, конечно)
---
Subject: [PIC]: Checklist for 16F84 to 16F627 code conversion
From: Ian Chapman (pic@CHAPMIP.DEMON.CO.UK)
Date: Thu Aug 02 2001 - 16:34:37 PDT

Folks,

I have been converting several 16F84 code files to run on the (cheaper)
16F627 parts. This generally seems to be a trivial task as the spec of
the F627 is a superset of that of the F84, but it seems to me that there
are some key differences which may be "gotchas" for the uninitiated.

I haven't seen a "minimum checklist" of points to resolve during this
conversion, so I thought I'd share my own list and invite comments:

1. General purpose registers start at 20H instead of 0CH.

(ACTION: Change CBLOCK start addresses and any other relevant
equates accordingly)

2. General purpose registers are not mapped across into all Banks
(except for 70H-7FH and its images). For example, on the F84, one
could assign a register with a Bank 0 address and assume that it
can still be accessed when RP0 is set. On the F627, the change to
RP0 will cause a different register to be accessed! In particular,
this is an issue for interrupt service routines for the F84 which
"doesn't care" about the state of the bank select bits on entry.

(ACTION: Check and correct any register accesses which occur while
bank bits are set to non-default values. Change interrupt service
routines to either use shared RAM (70H-7FH) for temporary storage,
or implement solution described in section 14.7 (Example 14-1) of
F627 data book)

3. CMCON register must be initialised to 07H after reset to ensure that
digital I/O (instead of comparator input) is enabled on RA0-RA4.

(ACTION: Add CMCON initialisation code to start-up routines)

4. EEADR and EEDATA registers have moved from Bank 0 to Bank 1.

(ACTION: Change positions of "BSF STATUS,RP0" and "BCF STATUS, RP0"
instructions in EEPROM read and write code fragments) (*)

(N.B. My copy of the 16F62X data book ("Preliminary") appears to
have implemented this change in Example 13-2 (Data EEPROM Write)
but not in Examples 13-1 and 13-3)

5. EEIE bit has moved from INTCON register (accessible from any Bank)
to PIE1 register (Bank 1 only), and EEIF bit has moved from EECON1
register (Bank 1 only) to PIR1 (Bank 0 only).

(ACTION: Change BSF/BCF instructions accordingly and ensure Bank
bits are set correctly before attempting to access these bits)

6. PROCESSOR (or LIST) directive needs to be changed from 16F84 to
16F627, and __CONFIG directive needs to include _LVP_OFF (to free
up RB4) and _BODEN_OFF (for strict F84 compatibility).

(ACTION: Change directives as indicated above)

As I understand it, CMCON is the only special function register that is
"new" in the F627 which needs to be explicitly initialised after reset
to ensure F84 compatibility. However, there may be a case for explicit
initialisation of other registers for extra robustness - any views?

Obviously, I haven't attempted to cover above any code optimisations
that may be possible given the greater resources of the F627 (more RAM
and EEPROM, on-chip USART etc.). I have just focussed on getting the
F627 operating as a "drop-in replacement" for an F84.

Have I missed anything?
--
Ian Chapman
Subject: 16F627,8 'gotchas'
Date: Sun, 21 Oct 2001 11:00:16 -0700
From: "Robert Scobey" @rivergrovewinery.com>
To: "Ian Chapman" <pic>
CC: "don" <dontronics>
Ian,
I found your posting of Aug 2 on converting 16F84 to 16F627. Thank you for sharing your work.
In a similar effort I found another 'gotcha' If you are doing 'in circuit programming', or developing using DONTRONICS DT001 (an excellent device), beware of having voltagepullup on RB4 of 16F627,8. RB4 must be open or at 0 volts to have drop in hardware circuit compatability to the 16F84. Otherwise, low voltage programming is requested by 16F627,8.

Subject: Re: [PIC]: 16F84A - 16F627 CONVERSION
Date: Tue, 27 Nov 2001 08:54:48 +1100
From: Tony Nixon <Tony>
Reply-To: pic microcontroller discussion list <PICLIST>

It would pay to read the data sheet as there are a few differences.
More ROM/RAM/EEPROM
EEPROM Read/Write registers located at different addresses

Disable the comparators
movlw b'00000111' ; disable comparators
movwf CMCON

RB4 used for LVP mode if LVP FUSE active
More fuses to set, MCLR, OSC1 and OSC2 can be used as IO pins
UART and Comparators
Probably more, but I can't think of them :-)
Oh yeah - cheaper!!

Best regards Tony

---

Добавлено: Вс мар 29, 2009 06:38:39
andryvlad
Вот еще цитата:

Что необходимо для перевода программы с PIC16F84A на новый более мощный и более дешевый PIC16F628?
Эти контроллеры совместимы по расположению выводов, но имеют различную внутреннюю структуру организации памяти, поэтому для перевода программы с PIC16F84A на PIC16F628 необходимо обратить внимание на отличия:
Биты конфигурации.
- Если бит LVP=1, то включен режим низковольтного программирования, при котором вывод RB4 как порт ввода/вывода использоваться не может.
- Если в устройстве используется внешний сброс микроконтроллера, то бит MCLRE должен быть "1".
- Обратите внимание на биты конфигурации тактового генератора.
При инициализации PORTA необходимо отключить компаратор (поскольку в PIC16F84 его нет), ниже приведен пример программы: CLRF PORTA
MOVLW 0X07
MOVWF CMCON
BCF STATUS, RP1
BSF STATUS, RP0
MOVLW 0x1F
MOVWF TRISA

В PIC16F84А бит разрешения прерываний от EEPROM памяти EEIE находиться в регистре INTCON<6>, а в PIC16F628 на этом месте бит разрешения прерываний от периферийных модулей PEIE, а бит EEIE лежит в регистре PIE1<7>. Проверьте размещение битов прерываний от EEPROM памяти данных.
Регистры работы с EEPROM лежат по разным адресам и разным банкам памяти.
Регистры общего назначения в PIC16F84А начинаются с адреса 0Ch/8Ch в банках 0/1 соответственно. В PIC16F628 регистры специального назначения расположены в первых 32 регистрах банков памяти (0-1F для банка 0). Некорректное обращение с этими регистрами может привести к непредсказуемой работе программы.
В PIC16F84А область памяти данных 8Ch - CFh отображается на 0Ch - 4Fh. В PIC16F628 отображаемая область памяти данных во всех банках расположена по адресу 70h -7Fh.
В PIC16F84А два банка памяти, поэтому бит PR1 (для прямой адресации) и IRP (для косвенной адресации) в регистре STATUS не имели значения. В PIC16F628 четыре банка памяти данных, и указанные биты управляют их выбором. Проверьте использование этих битов в программе.

Подсмотрено на казус.ру :)

Добавлено: Вс мар 29, 2009 21:52:11
Strannik
Мда... Никакой не аналог. опять меня надурили. Я просил 84А дали 628А в накладной написано, что они якобы аналоги... Проще этот отложить до лучших времен и поискать 84А, да и исходников все равно нет... Да и в программировании я ламер, все собираюсь начать изучать, но времени никак не хватает. :(

Добавлено: Вс мар 29, 2009 22:24:37
otest
PIC16F628 гороздо полезнее в хозяйстве чем 84. Любую прошивку с 84 можно переделать без труда на 628 но не наоборот.

Re: Замена PIC16F84A на PIC16F628A

Добавлено: Пн фев 28, 2011 21:46:14
Дмитрий1983
Если есть схема, исходник прошивки для PIC16F84 может кто помочь с переводом всего на PIC16F628 (A) ? :) Я в этих вопросах совсем не силен. :(

Re: Замена PIC16F84A на PIC16F628A

Добавлено: Вт мар 01, 2011 01:50:36
Dmitry Dubrovenko
А что за устройство?
Может оно уже давно на 628 существует. :wink:

Re: Замена PIC16F84A на PIC16F628A

Добавлено: Вт мар 01, 2011 09:56:04
К@Т
628 это доделаный 84(воткнули внутр.генератор,компаратор, и т.д.).Поэтому переделать исходник можно .Хотя парадокс в цене этих камней-84 стоит 150р,а 628 стоит 100(технополис г.Курск).
Дмитрий1983 писал(а):Если есть схема, исходник прошивки для PIC16F84 может кто помочь с переводом всего на PIC16F628 (A) ?

Выкладывай -постараюсь помочь.

Re: Замена PIC16F84A на PIC16F628A

Добавлено: Вт мар 01, 2011 13:11:58
Дмитрий1983
Схема устройства, а также описание его работы приведены на сайте
http://ua3usy.narod.ru/ZA.htm
Есть также ветка на форуме об этом, но вопроса перехода на другой тип микросхемы не преследуется.
Есть ли возможность перевести схему для работы с PIC16F84 на PIC16F628A ?

Во вложении архив со схемой устройства и прошивкой, взятого с вышеуказанного сайта.

Re: Замена PIC16F84A на PIC16F628A

Добавлено: Вт мар 01, 2011 22:44:32
Dmitry Dubrovenko
Дмитрий1983 писал(а):Есть ли возможность перевести схему для работы с PIC16F84 на PIC16F628A ?
Да сказали же уже неоднократно, что ЕСТЬ. :)))
Надо только правильно сконфигурировать фьюзы, "отключить" компараторы и источник образцового напряжения, и проверить адреса регистров ОЗУ (при необходимости, скорректировать).

Re: Замена PIC16F84A на PIC16F628A

Добавлено: Ср мар 02, 2011 09:27:14
К@Т
Дмитрий1983 писал(а):Есть ли возможность перевести схему для работы с PIC16F84 на PIC16F628A ?
[/quote]
Если вам так невтерпёж,что вопрошаете через час,то вот вам карты в рукиhttp://www.labkit.ru/html/Assembler_for_PIC,http://www.labkit.ru/html/PIC_rus и тосуйте их сами.

Re: Замена PIC16F84A на PIC16F628A

Добавлено: Ср мар 02, 2011 13:37:06
Дмитрий1983
К@Т писал(а):
Дмитрий1983 писал(а):Есть ли возможность перевести схему для работы с PIC16F84 на PIC16F628A ?

Если вам так невтерпёж,что вопрошаете через час,то вот вам карты в рукиhttp://www.labkit.ru/html/Assembler_for_PIC,http://www.labkit.ru/html/PIC_rus и тосуйте их сами.[/quote]

Да нет, это не горит, конешно могу подождать. Сам все равно не смогу сделать :dont_know:
Быстро отправил, потому что инет тормозит, боялся что совсем прекратит работать :shock: Извините уж...