<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>ColdFire/68K Microcontrollers and ProcessorsのトピックRe: 68000 interrupt acknowledge cycle duration</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/68000-interrupt-acknowledge-cycle-duration/m-p/135574#M1627</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;In a 68000 system the E clock (originally the cycle clock for the 6800 CPU) is generated by dividing the system clock by 10 - the E clock was low for six clocks and high for four clocks. At the original 68K speed of 10 MHz this gave a suitable 1 MHz clock for 6800 peripheral devices.&lt;BR /&gt;&lt;BR /&gt;When the VPA signal is activaated in response to a external cycle, the CPU will synchronize to the E clock and terminate the cycle after the next active E clock.&lt;BR /&gt;&lt;BR /&gt;Since your interrupt is not synchronized to the E clock, there is a random delay based on the state of the E clock when the interrupt acknowledge occures.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;&lt;BR /&gt;Hugh&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 02 Jun 2007 03:58:22 GMT</pubDate>
    <dc:creator>hmsmith</dc:creator>
    <dc:date>2007-06-02T03:58:22Z</dc:date>
    <item>
      <title>68000 interrupt acknowledge cycle duration</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/68000-interrupt-acknowledge-cycle-duration/m-p/135573#M1626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;SPAN&gt;I'm working with a MC68000 based system where the interrupt acknowledge cycle for autovectored interrupts seems to be taking a variable amount of cycles (26/32/44) rather than the 44 cycles listed in the 68000 manual. I'd like to know exactly what defines the cycle duration.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First, some background on the circuit: A periodic interrupt occurs which asserts /IPL2 through /IPL0 accordingly to request a level 1 interrupt. When /AS goes low and FC2,FC1,FC0 are high, /VPA is pulled low. It remains asserted until any of /AS or FC2,FC1,FC0 are negated. The 68000 always terminates the cycle by pulling /AS high after the variable cycle delay; this isn't an issue of /VPA being negated too early.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I get a shorter cycle time depending on what the 68000 is doing; e.g. executing NOPs gives 26 cycles, waiting in a STOP #$2000 condition tends to give 32 cycles, and so on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've monitored all the other signals and there seems to be nothing that would impact the timing, I'm assuming this is some kind of internal decision the 68000 makes. But I don't know the criteria involved.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The exact timing for an interrupt acknowledge cycle looks like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Finish executing current instruction&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Stack PCL at SSP-2 (8 cycles for RAM access)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Interrupt acknowledge cycle (26/32/44 cycles, variable)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;4. Stack SR at SSP-6 (8 cycles for RAM access)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;5. Stack PCH at SSP-4 (8 cycles for RAM access)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6. Read interrupt vector low word (10 cycles for ROM access)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;7. Read interrupt vector high word (10 cycles for ROM access)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;8. Execute first instruction from ISR&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My concern is that the the periodic interrupt has some jitter introduced between each interrupt as the the time is off by a variable amount of cycles per interrupt, which I need to eliminate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Rather than rework the design I'd like to know why the 68000 does this even if it's a limitation of the CPU and something I can't control. (for example, maybe the specification of 44 cycles indicates a maximum; rather than the absolute count?)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Jun 2007 03:28:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/68000-interrupt-acknowledge-cycle-duration/m-p/135573#M1626</guid>
      <dc:creator>CharlesM</dc:creator>
      <dc:date>2007-06-02T03:28:08Z</dc:date>
    </item>
    <item>
      <title>Re: 68000 interrupt acknowledge cycle duration</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/68000-interrupt-acknowledge-cycle-duration/m-p/135574#M1627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;In a 68000 system the E clock (originally the cycle clock for the 6800 CPU) is generated by dividing the system clock by 10 - the E clock was low for six clocks and high for four clocks. At the original 68K speed of 10 MHz this gave a suitable 1 MHz clock for 6800 peripheral devices.&lt;BR /&gt;&lt;BR /&gt;When the VPA signal is activaated in response to a external cycle, the CPU will synchronize to the E clock and terminate the cycle after the next active E clock.&lt;BR /&gt;&lt;BR /&gt;Since your interrupt is not synchronized to the E clock, there is a random delay based on the state of the E clock when the interrupt acknowledge occures.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;&lt;BR /&gt;Hugh&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Jun 2007 03:58:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/68000-interrupt-acknowledge-cycle-duration/m-p/135574#M1627</guid>
      <dc:creator>hmsmith</dc:creator>
      <dc:date>2007-06-02T03:58:22Z</dc:date>
    </item>
  </channel>
</rss>

