Re^2: PIC ICSP-Load Configuration?

Do you have a question? Post it now! No Registration Necessary

Здраствуйте Andy,
*24.01.04* *4:06:22* Вы писали в *RU.EMBEDDED*
сообщение к *Den Y. Borisov*
о *"Re: PIC ICSP-Load Configuration?"*.

 AG>> Для переключения в Configuration memory space  служит сама команда Load
 AG>> Configuration. А за ней должны следовать 14 бит данных.  В спецификации
 AG>> рекомендуется подавать 0x3fff.  Что это за данные?
 >> Эта команда подготовит это число к записи по адресу 2000h.
 >> Т. е. если следующей командой будет команда программирования
 >> Program Memory, то содержимое ячейки с адресом 2000h не изменится
 >> (нули останутся нулями, а единицы заменяться единицами).

 AP> Hе правильно:

 AP> $ DS30324B.PDF
 AP> $ PIC16F7X
 AP> $ FLASH Memory Programming Specification
 AP> $ 2.3.1.1 Load Configuration (@page 5)
 AP> $    After receiving th Load Configuration command, the PC will be set to
 AP> $    0x2000 and the data sent with the command discarded...

 AP> Т.е. эти данные просто игнорируются и не влияют на содержимое по адресу
 AP> 0x2000. А перед 'Program Memory' необходимо честно делать 'Load Data for
 AP> Memory' с реальными данными.

А для PIC16F630/676/870/871/872/873/874/876/877 так, как написал я:

 > After receiving this command, the program counter
 > (PC) will be set to 0x2000. Then, by applying 16 cycles
 > to the clock pin, the chip will load 14 bits in a "data
 > word," as described above, which will be programmed
 > into the configuration memory.

А для 627A/628A/648A так:

 > The Load Configuration command advances the PC to
 > the start of configuration memory (0x2000-0x200F),
 > and loads the data for the first ID location.

Так что согласно документации, эта команда работает
на разных моделях по-разному :( .

Hо, в любом случае, откуда возьмутся данные,
которые потом нужно будет программировать
по команде *Program Memory*?
Из последней команды передачи данных -
в данном случае *Load Configuration*.
Как бы то ни было, конечно *Load Data For Program Memory*
делать нужно перед каждой *Program Memory* (так спокойнее :) ).
А по этому обыкавшемуся уже ;) адресу 2000h
хранится *ID Location 0*, которым наверное никто не пользуется,
и что окажется в этом *ID Location 0* после программирования
в большинстве случаев неважно ;) .

С уважением, Den


Site Timeline