<?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>topic Re: SPI problems for MC1321x programming in C in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208782#M17800</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi drdr,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I said the actual SPI bit will work without delays. At the slave end the bytes must be unloaded out of the SPI register by the code running there. Normally this will be done quite quickly and transparently but once, say, a whole command is sent it may need time to gather the response and write it to the SCI in order to send it back. This quite often takes additinal time that must be allowed for in the master code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 07 Mar 2009 17:23:30 GMT</pubDate>
    <dc:creator>peg</dc:creator>
    <dc:date>2009-03-07T17:23:30Z</dc:date>
    <item>
      <title>SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208771#M17789</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am having trouble reading from the internal modem of an MC13212.&amp;nbsp; I have my code below and I am expecting to see a reset value of 0x007F from register GPIO_dir as per section 5.14 in document MC1321xRM.pdf and instead I am seeing 0x0000.&amp;nbsp; Please note that in my code I am using local port registers simply as a means to monitor the output.&amp;nbsp; Any suggestions will be greatly appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks and regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;drdr&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/********************************/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;hidef.h&amp;gt; /* for EnableInterrupts macro */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "derivative.h" /* include peripheral declarations */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#define&amp;nbsp; ce_L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTED_PTED2&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void readREG() {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; PTEDD = 0xff; &amp;nbsp;&amp;nbsp;&amp;nbsp; //set the ce_L pin as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI1C1 = 0x54;&amp;nbsp;&amp;nbsp; //=01010100 to enable SPI, disable interrupts, standard operation (tried 0x50)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ce_L = 0; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //intiate transfer of three bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!SPI1S_SPTEF);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //wait for SPI1D to be ready for 1st transfer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI1D=0x8B;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //initiate transfer to read from register GPIO_dir (0B) in modem&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!SPI1S_SPRF);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //wait for SPI1D to receive data from modem&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; PTADD=SPI1D;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //meaningless data -&amp;gt; just using PTADD to clear flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!SPI1S_SPTEF);&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //wait for SPI1D to be ready for 2nd transfer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI1D=0xFF;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //send anything to get 1st byte of data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!SPI1S_SPRF);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //wait for SPI1D to receive data from modem&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; PTBDD=SPI1D;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //correctly received 0x00 in PTBDD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!SPI1S_SPTEF);&amp;nbsp; &amp;nbsp;&amp;nbsp; //wait for SPI1D to be ready for 3rd transfer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; SPI1D=0x86;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //send anything to get 2nd byte of data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(!SPI1S_SPRF);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; //wait for SPI1D to receive data from modem&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; PTCDD=SPI1D;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //expecting 0x7F but instead get 0x00 in PTCDD again!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ce_L = 1; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //terminate transfer of three bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void main(void) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; EnableInterrupts; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable interrupts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ce_L=1;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //will start high when its output is enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; readREG();&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; for(;&lt;/SPAN&gt;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif"&gt;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/A&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __RESET_WATCHDOG(); /* feeds the dog */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } /* loop forever */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Dec 2008 10:02:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208771#M17789</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2008-12-10T10:02:19Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208772#M17790</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;Hi Guys,&lt;BR /&gt;&lt;BR /&gt;I completely re-wrote the code in the style that seems common on this forum and still it fails to work.&amp;nbsp; I run the code with and without the monitoring software and can tell that the values that I am getting are all 0x00 becuase of the LEDs I have on my board.&amp;nbsp; If anyone can find something that I am forgetting to set please let me know.&lt;BR /&gt;&lt;BR /&gt;Thank you very much for your time,&lt;BR /&gt;drdr&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;#include &amp;lt;hidef.h&amp;gt; /* for EnableInterrupts macro */&lt;BR /&gt;#include "derivative.h" /* include peripheral declarations */&lt;BR /&gt;&lt;BR /&gt;#define&amp;nbsp; ce_L&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTED_PTED2&lt;BR /&gt;#define&amp;nbsp; enable_ce&amp;nbsp;&amp;nbsp;&amp;nbsp; PTEDD_PTEDD2&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;void delay(int count)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; while(count--); &amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void init_SPI(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SPI1C1 = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //in binary=01010000 to enable master SPI, disable interrupts, standard operation&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SPI1C2 = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //default state for SPI control2&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SPI1BR = 0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //default state for baud rate control&lt;BR /&gt;&amp;nbsp;&amp;nbsp; ce_L=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset CE before transaction begins&lt;BR /&gt;&amp;nbsp;&amp;nbsp; enable_ce = 1;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;byte SPI_transOne( byte val)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!SPI1S_SPTEF);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SPI1D = val;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Send byte value&lt;BR /&gt;&amp;nbsp;&amp;nbsp; while (!SPI1S_SPRF);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Wait for completion of transfer&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return SPI1D;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void SPI_comms(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; ce_L = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //intiate SPI transfer&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; (void)SPI_transOne( 0x8B);&amp;nbsp; //send byte &amp;amp; ignore returned byte&lt;BR /&gt;&amp;nbsp; delay(10);&lt;BR /&gt;&amp;nbsp; PTADD = SPI_transOne( 0);&amp;nbsp;&amp;nbsp; //Dummy send to read a byte&lt;BR /&gt;&amp;nbsp; delay(10);&lt;BR /&gt;&amp;nbsp; PTBDD = SPI_transOne( 0);&amp;nbsp;&amp;nbsp; //Dummy send to read a byte&lt;BR /&gt;&amp;nbsp; delay(10);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; ce_L = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //terminate SPI transfer&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;void main(void) {&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; init_SPI();&lt;BR /&gt;&amp;nbsp; SPI_comms();&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; for(;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" id="smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __RESET_WATCHDOG(); /* feeds the dog */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; } /* loop forever */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Dec 2008 01:34:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208772#M17790</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2008-12-12T01:34:44Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208773#M17791</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hello drdr,&lt;BR /&gt;&lt;BR /&gt;One easy test which is probably appropriate at this point is to disconnect the masters MISO line at the slave and pull it high. Now if you receive all FF's your code in the master is working. Now you need to look at why the slave is not responding as expected.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Dec 2008 05:55:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208773#M17791</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2008-12-12T05:55:44Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208774#M17792</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi Peg,&lt;BR /&gt;&lt;BR /&gt;Thank you for your response and suggestion.&amp;nbsp; I wonder if it is possible to do this with an integrated MCU and modem in one mc13212 chip.&amp;nbsp; And if so, how?&lt;BR /&gt;&lt;BR /&gt;Thanks and regards,&lt;BR /&gt;&lt;BR /&gt;Andrey&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Dec 2008 07:48:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208774#M17792</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2008-12-12T07:48:40Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208775#M17793</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi,&lt;BR /&gt;You take a very small knife and ........&lt;BR /&gt;No, sorry my fault. Obviously it is not possible to do this in this case.&lt;BR /&gt;The actual SPI code looks OK but I don't know about the actual mode, commands etc required here.&lt;BR /&gt;Suggest you look at the examples etc.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Dec 2008 18:39:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208775#M17793</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2008-12-12T18:39:01Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208776#M17794</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;Thanks again Peg.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;If anyone knows of sample code for an MC1321x part, I would really appreciate it.&amp;nbsp; Since this is just a hobby of mine, I cannot afford to buy a software stack.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;&lt;BR /&gt;drdr&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 13 Dec 2008 03:29:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208776#M17794</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2008-12-13T03:29:11Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208777#M17795</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Hi drdr,&lt;BR /&gt;&lt;BR /&gt;Why can't you use SMAC. It is also a good place to look to see how it is all done.&lt;BR /&gt;BTW, in your code for C1 you have the correct value in the comment but the code actually has zero.&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 13 Dec 2008 07:20:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208777#M17795</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2008-12-13T07:20:34Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208778#M17796</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Good catch Peg.&amp;nbsp; I must have pasted an older code by accident.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I didn't realize that I could download SMAC without purchasing&amp;nbsp;a development board but since your post I found out from a Freescale representative that it is indeed possible.&amp;nbsp; I will follow your suggestion.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thank you&amp;nbsp;very much for your time and expertise,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;drdr&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 13 Dec 2008 10:51:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208778#M17796</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2008-12-13T10:51:27Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208779#M17797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For anyone interested, I figured out what my issue was, though I don't understand why part of it is necessary and I hope someone knows a way around it.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One uncontroversial&amp;nbsp;error that I had was forgetting to take the modem out of reset.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; After adding the following I was able to read/write using the BDM's step-by-step mode.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;PTDDD_PTDDD3 = 1;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;PTDD_PTDD3 = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However not until I put a considerable (and somewhat debilitating) delay into my master to slave transfer function that it worked as stand-alone.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void delay(int count)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; while(count--);&amp;nbsp;&lt;BR /&gt;}&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;byte SPI_transOne( byte val)&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; while (!SPI1S_SPTEF);&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; delay(255);&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; //very important delay...for some reason&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; SPI1D = val;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt; // Send byte value&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; while (!SPI1S_SPRF);&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; // Wait for completion of transfer&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt; return SPI1D;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;If anyone can tell me why I need a delay after my check I would greatly appreciate it.&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;Thank you,&lt;/P&gt;&lt;P class="MsoNormal"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="MsoNormal"&gt;drdr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 07 Mar 2009 02:20:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208779#M17797</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2009-03-07T02:20:44Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208780#M17798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello drdr,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This delay is not required for the SPI to operate.&lt;/P&gt;&lt;P&gt;The slave device may require some "processing time" after a certain amount of bytes are sent or a complete command is sent.&lt;/P&gt;&lt;P&gt;More than likely the delay is only required sometimes and not at every transfer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 07 Mar 2009 06:24:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208780#M17798</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2009-03-07T06:24:11Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208781#M17799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Peg,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Shouldn't these checks have taken care of that?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while (!SPI1S_SPTEF);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while (!SPI1S_SPRF);&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Otherwise how can I tell when it needs the delay and when it doesn't?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;drdr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 07 Mar 2009 10:27:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208781#M17799</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2009-03-07T10:27:01Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208782#M17800</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi drdr,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I said the actual SPI bit will work without delays. At the slave end the bytes must be unloaded out of the SPI register by the code running there. Normally this will be done quite quickly and transparently but once, say, a whole command is sent it may need time to gather the response and write it to the SCI in order to send it back. This quite often takes additinal time that must be allowed for in the master code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 07 Mar 2009 17:23:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208782#M17800</guid>
      <dc:creator>peg</dc:creator>
      <dc:date>2009-03-07T17:23:30Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208783#M17801</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Peg,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The only operations I performed was to set GPIO_Dir and GPIO_Data_Out in the modem, so I don't see why any of that would take very long since I'm not expecting a response from the slave.&amp;nbsp; Either way, how can any logic to the master code work without some sort of feedback from the slave?&amp;nbsp; Unless there is a predictable table of the maximum times it takes to do certain operations, the master can never know for sure if it's okay to continue if there is no feedback.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;drdr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Mar 2009 11:01:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208783#M17801</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2009-03-10T11:01:13Z</dc:date>
    </item>
    <item>
      <title>Re: SPI problems for MC1321x programming in C</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208784#M17802</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Peg,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You were right about the delay not being necessary for every SPI access.&amp;nbsp; In fact, my problem was the lack of a 25ms wait needed after the modem's reset (which I formerly performed right before the access).&amp;nbsp; I hope not to come across any modem operation that requires more time as it seems extremely difficult to take such an event into account.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;drdr&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Mar 2009 00:55:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/SPI-problems-for-MC1321x-programming-in-C/m-p/208784#M17802</guid>
      <dc:creator>drdr</dc:creator>
      <dc:date>2009-03-12T00:55:28Z</dc:date>
    </item>
  </channel>
</rss>

