On the 68HC11 Family, it is usually half the bus speed.
Yes. Take a look at the file asm32vec.txt for the complete description and listing.
The TPU2 and TPU3 emulation memory is broken up into 2k segments. So, you need to be sure that you do not write code that overlaps this boundary even if you have a total of 6k or 8k of TPU memory. What you need to do is that at the start of your *.asc file, you assign some of your functions to bank0, some to bank1, etc. You do this with the '%org 0,0.' for bank 0 and '%org 0,1.' for bank 1. You also need to remember that the entry points for each bank take up 288 bytes. This only gives you 2048-288=1760 bytes in each bank.
These are the correct functions and the appropriate codes for the TPU functions on the HC916Y3.
0. SIOP
1. SPWM
2. DIO
3. PWM
4. OC
5. PPWA
6. FQD
7. MCPWM
8. HALLD
9. COMM
A. NITC
B. UART
C. FQM
D. TSM
E. QOM
F. PTA
No. The max. pullup current on the data pins, when drive low at reset, is 120uA. If a 10k is used, there will a drop across the resistor that will raise the input above 1.0V (Min. low input). A 1k is better, but this will load the data bus beyond operating spec. when driven high. The max. source current is 800uA, which will be exceeded when the data pin is driven high.
The interrupt vector locations for the MSCAN on the MC68HC912 MCUs are:
$FFD0..$FFD1 - MSCAN Wakeup,
$FFC8..$FFC9 - MSCAN Errors,
$FFC6-$FFC7 - MSCAN Rcv.,
$FFC4..$FFC5 - MSCAN Trans.
This is because there MUST be some time delay between each line of the .s19 file that is being programmed. You can do this one of two ways. The way that you do choose depends on the terminal program that you use. When each line of the .s19 file has been successfully programmed, the Bootloader will send a '*' to the terminal. You can select character delay in some terminal programs that will look for this character, and when it sees it, the terminal SW will transmit the next line of data. If you do not have this capability, you will need to use line delay. If you have not used the flash all that much, you can set this value for about 5 ms. As the flash is used more, you may need to increase this number. The way you can tell is if you are not getting a complete reprogram of the flash, like before the addition of the delay.
Yes. The documentation is incorrect. The MODA bit can be written after a reset in normal modes. If the HC11F1 is reset into single chip mode, MODA bit in the HPRIO needs to be set to change to expanded mode. If the HC11F1 is reset into expanded mode, then the MODA bit needs to be cleared.
RSTCONF must be pulled high. This will cause the MPC555 to try to use the internal configuration word (CFMCFIG) since the default value of the HC bit is '0'. So, you will need to use a debugger to reprogram the CFMCFIG register so that the HC bit is '0', and all of the other bits you need are programmed for your application. When you reset the device after programming the CFMCFIG, the MPC555 will use the configuration word that is in the CFMCFIG. Then you should be able to reprogram the flash using the debugger.
During reset and just after reset (before the TPU channels are programmed) the TPU pins are configured as inputs.
It is pin 84. It is marked as Vdd in the documentation.
This specific mode of operation does not work for the timer. The workaround for this problem is to use channel 3 to set the period (16-bits of range here) and use another channel to set the duty cycle. Have channel 3 toggle on overflow and have the other channel clear on compare. This will not only give you a high degree of freedom (width and resolution) in selecting your period and duty cycle, but also the prescaler DOES work in this scenario to allow the output of a low frequency signal.
No. These numbers were very preliminary and absolute worst case maximums. In reality, one should see on the order of 2 mA per MHz operating frequency at 3.3V for IDD. IDDF, if operating out of internal FLASH, and IDDSYN will draw less than 5 mA across the frequency range at 3.3V.
You have two options - you can connect directly between a comm port on your PC and J58 on the CMB, or you can connect between a comm port on your PC and the Enhanced Background Debug Interface (EBDI) connected to the OnCE port on the CMB. If using the former approach, make sure you configure the DIP switches on the CMB for internal boot and set the USR switches to boot up the on-board FLASH programming firmware. This setting is: USR2 = off, USR1 = off, and USR0 = on. The other switches should be set to the on position. If connecting to the OnCE port for communication, then make sure the DIP switches are set to boot internal. The USR switches are don't-care, and set the remaining switches to on.
The easiest way to do this is through the EBDI/OnCE port communication channel. Using this channel does not require any on-board programming firmware as is the case when you program the FLASH on the CMB board while communicating over J58. A bigger requirement to using this programming utility to program your target's FLASH is that you must have about 32k of available external RAM mapped at 0x81000000. This is where the programming routines get loaded.
No. Bus speed should be limited to around 20 MHz. The limiting factors are the Data-in valid to CLKOUT high read (read data setup) time of 22 ns (min), no. 24 in figure 22-2 in the MMC2107 data book, coupled with the 10 ns max for the CLKOUT high to address valid time, no. 6 in figure 22-2. Combining these two times yield 32 ns, which at this point would require 0 ns access time for the peripheral. Running the external bus at 20 MHz, resulting in a CLKOUT of 50 ns, allows at least 18 ns of access time.
In the Mcore linker section of the Codewarrior Base Project Settings, try specifying the maximum length of the s records to be no more than 240, then rebuild.
The EPORT provides eight of the 40 possible interrupt sources on the MMC2107. These eight sources, triggered by transitions on pins INT0 to INT7, can be prioritized the same way that the other 32 interrupts are. That is, each interrupt source is assigned a priority through its Priority Level Select Register (PLSR) with a value from 0 to 31, with 0 being the lowest priority. When an EPORT interrupt occurs, the priority level bit set for that pin will have the corresponding bit set in the Interrupt Pending Register (IPR). The EPORT interrupts can, of course, all have the same priority level, and in fact be serviced by a common interrupt service routine.
Yes. CPHA must be set to one to operate the SPI without a Slave Select.
Yes. The databus does not have any internal pull-ups or pull-downs to automatically select a default configuration. Therefore, when the RCON is going to be asserted, ALL pins involved in setting the chip configuration needs to be set to the appropriate polarity for the specific application.
When writing to the SPICR register, in some cases the data that is loaded into the internal counter is incorrect for each ISPI interval. However, the register which latches the data written functions properly. Reading back the register returns the correct value. The bits affected by this problem are bits 5, 6, 7, 10 and 11. The following behavior occurs when setting one or more of these bits.
Crystal Gain on MC68HCF1 on the following mask sets is not as strong at the 68HC08 or 68HC12 families: F43V,E87J,C94R. The Technical Data Manual suggest a 10 Mega Ohm resistor in parallel with the crystal. This should be reduced to 1 MOhm resistor. It is important to remember that crystal impedance various from crystal manufacture to manufacturer. It is recommended to make sure that the impedance is appropriate for your component.
The MMC2001 uses a peripheral bus that requires 32-bit accesses for many of the registers. Throughout the data manual you will see the sentence "Access this register with 32-bit loads and stores only". When "ITCSR.EN = 1" is changed to "ITCSR = 0x01", the access will be successful. What is happening is that the assembly code for "ITCSR.EN = 1" generated by the compiler uses a byte access to set a single bit, whereas the form "ITCSR = 0x01" makes a 32-bit access to change the entire register.
NO.
If the BGACK pin is asserted, the CPU will halt when an external bus access is attempted. The CPU will simply stall until BGACK is released to a logic 1.
On devices that use a Single Chip Integration Module (SCIM), the Bus Grant Acknowlege Pin is always enabled as that function as opposed to CSE, its alternate function. Software can be used to change the function of the pin to CSE, even in Single Chip Mode.
If an attempt to place an M68HC16 or M68300 device in BDM mode is made and the Bus Grant Acknowledge pin is asserted, the device will enter the BDM mode but all BDM commands will cause the internal bus to stall. The stall occurs because accesses by the CPU to the BDM state machine appear as 'EXTERNAL' bus cycles.
To prevent this problem from occurring, a pull-up resistor must always be connected to the BGACK pin. The BGACK pin, as well as the BR (Bus Request) pin, should never be allowed to float.
The Software Watchdog is controlled via the System Protection Control Register (SYPCR).
Bits 6, 5 and 4 of this register are used to control the time out period. The initial value of bit 6, the SWP bit, is the inverse of the logic level on the MODCK pin at the release of reset. The initial values of bits 5 and 4 are logic 0’s. All of these bits can be modified with software.
When these bits are modified by software, the change in Software Watchdog Time Out Period does not take place immediately. The change takes place on the next
negative edge of the clock signal driving the Software Watchdog Timer after a "write 55, write AA" sequence is performed in software.
In other words, if the applications software simply writes to the SYPCR register, modifying the Watchdog Time Out Period, but does not perform a "write 55, write AA" sequence, the watchdog period will not change.
Yes. Take a look at the file asm16vec.txt for the complete description and listing.
Please ensure that both PBMOR and C12MOR are addressed in your .ASM file. Even if you do not intend to use any of the mask options, you should still ORG at these two addresses and FCB (form constant bytes) of $00 (or whatever value). It is always possible that an external programmer might copy $FF to these locations if left unaddressed.
RSTCONF must be pulled high. This will cause the MPC555 to try to use the internal configuration word (CFMCFIG) since the default value of the HC bit is '0'. So, you will need to use a debugger to reprogram the CFMCFIG register so that the HC bit is '0', and all of the other bits you need are programmed for your application. When you reset the device after programming the CFMCFIG, the MPC555 will use the configuration word that is in the CFMCFIG. Then you should be able to reprogram the flash using the debugger.
During reset and just after reset (before the TPU channels are programmed) the TPU pins are configured as inputs.
It is pin 84. It is marked as Vdd in the documentation.
Yes. The documentation is incorrect. The MODA bit can be written after a reset in normal modes. If the HC11F1 is reset into single chip mode, MODA bit in the HPRIO needs to be set to change to expanded mode. If the HC11F1 is reset into expanded mode, then the MODA bit needs to be cleared.
This is because there MUST be some time delay between each line of the .s19 file that is being programmed. You can do this one of two ways. The way that you do choose depends on the terminal program that you use. When each line of the .s19 file has been successfully programmed, the Bootloader will send a '*' to the terminal. You can select character delay in some terminal programs that will look for this character, and when it sees it, the terminal SW will transmit the next line of data. If you do not have this capability, you will need to use line delay. If you have not used the flash all that much, you can set this value for about 5 ms. As the flash is used more, you may need to increase this number. The way you can tell is if you are not getting a complete reprogram of the flash, like before the addition of the delay.
NO.
In the QSM the interrupt vector number is written into the QILR-QIVR register at $FF FC04. The default value for this register is $000F. $F specifies the Uninitialized Vector in the Interrupt Vector Table.
When initializing the INTV field, it is important to realize that bit 0 is actually ignored. When the SCI causes an interrupt, bit 0 of the QILR-QIVR register will be read as a logic 0. When the SPI causes an interrupt, bit 0 of the QILR-QIVR register will be read as a logic 1.
Assume that the vector number 64 (Vector Offset = $100) is written to the INTV field. Then the SCI would use vector number 64 (Vector Offset = $100) and the SPI would use vector number 65 (Vector Offset = $101).
However, the same results would be obtained if the vector number 65 (Vector Offset = $101) is written to the INTV field. Once again, the SCI would use vector number 64 (Vector Offset = $100) and the SPI would use vector number 65 (Vector Offset = $101), not vector number 66 (Vector Offset = $102).
Once again, the QSM hardware drives bit 0 of the INTV field. Bit 0 of the actual register is ignored.
The consequences of writing vector number 65 to the INTV field is that the software writer may assume that vector numbers 65 and 66 are being used. The fact is that vector numbers 64 and 65 will be used. When this particular programming error is made, i.e., using an odd number in the INTV field, the SCI will appear to take the wrong vector.
The interrupt vector locations for the MSCAN on the MC68HC912BC32 are: