***************************************************************************** * * * * * HELP FOR INTEL MICROCONTROLLERS (informal document) * * * * * ***************************************************************************** The data to be programmed to the device start at 0000h in the User's RAM. This corresponds to the device address 2000h. For example if you want to program the lower interrupt vectors (the device addresses are 2000h through 2013h) put the lower interrupt vectors data at addresses 0000h through 0013h in the User's RAM. Be sure that your data in the User's RAM is allocated correctly. The device is 16 bits wide (1 word), and therefore it is programmed in words. The default screen on DATA I/O programmers is 16 bits data width (word). It may be more convenient to select Data Word Width = 8 and then follow the memory map in Intel's User's Guide. ---------------------------------------------------------------------- | Examples of using 16 bits wide data (word) and 8 bits wide | | data (byte): | | | | Want to program : 11 hex at address 2002 hex (device address) | | 22 hex at address 2003 hex (device address) | | | | Notice that the Intel's (byte) notation is used above. | | | | You can do it in two ways: | | | | 1. Using 16 bits (word) data width (DATA I/O default). | | | | Go to 'EDIT PROGRAMMER MEMORY' screen. The field 'Edit data | | word width' has highlighted 16. This is the default. | | If 4, 8 or 32 is highlighted, chage it to 16 and depress | | Enter (Return) key. | | Go to the address 0001hex (it is in words now!) and put | | the value 2211 hex in it. | | | | 2. Using 8 bits (word) data width. | | | | Go to 'EDIT PROGRAMMER MEMORY' screen. Change the field | | 'Edit data word width' to 8 and depress Enter (Return) key. | | Go to the the address 0002 hex and put the value 11 hex in it.| | the go to the address 0003 hex and put the value 22 hex in it.| | | ---------------------------------------------------------------------- Try to switch between 16 bits (word) data width and 8 bits (word) data width to see the how the data is stored. Intel 16 bit data files store the most significant bytes (MSB) at odd-byte location and the least significant byte (LSB) at even byte location. This device does not need to have the Byte Swap Option enabled (UniSite version 2.5 or later). ____________________________________________________________________ | | | Example: | | | | 11h is at adr. 0002h (even byte) | | 22h is at adr. 0003h (odd byte) | | | | | byte address | | | | Those two bytes are combined in a word in Intel's file: | | | | 2211 at adr. 0001h | | | | | | | M L word address | | S S | | B B | | | --------------------------------------------------------------------- RESERVED LOCATIONS AND VECTORS IN PROGRAMER'S USER RAM -------------------------------------------------------- Adr. (in words, DATA I/O) Adr. (in bytes, Intel) Intel Required Data ------------------------ --------------------- -------------------- 0000h - 0009h 0000h through 0013h interrupt vectors (lower) 000Ah 0015h and 0014h FFh, FFh (reserved) 000Bh 0017h and 0016h FFh, FFh (also see note #1) 000Ch 0019h and 0018h **h, CCB or CCB0 byte 000Dh 001Bh and 001Ah **h, **h or CCB1 byte 000Eh 001Dh and 001Ch **h, FFh (reserved) 000Fh 001Fh and 001Eh **h, FFh (reserved) 0010h - 0017h 0020h through 002Fh security key 0018h - 001Fh 0030h through 003Fh interrupt vectors (upper) 0020h - 002Eh 0040h through 005Dh PTS vectors 002Fh - 003Fh 005Eh through 007Fh all FFh (reserved) To see where the reserved locations and vectors are in the device memory map, simply add 2000 hex to the address in the table above. ---------------------------------------------------------------------- | Example: | | | | PTS vectors are located in the User's RAM at: | | | | 0020h - 002Eh (word addresses) or at 0040h - 005Dh (byte addresses)| | | | PTS vectors are located in the User's RAM at: | | | | 2020h - 202Eh (word addresses) or at 2040h - 205Dh (byte addresses)| ---------------------------------------------------------------------- Locations marked as **h are also reserved locations and it is the user's responsibility to fill these locations with the required data. Consult the Manufacturer's specifications for further information. Note 1: To enable CDE (clock detect enable bit) fill these locations with 0Ch, DEh. Refer to the device spec. sheet for detailed information (CDE bit is implemented only on some 196XX family members). This device is a microcontroller with security bit programming capability. To secure the device, enable Security bit programming in the Program Memory Device Options screen. If this feature is enabled, lock bits of CCB (CCB0) are to be programmed regardless of value CCB (CCB0) byte.