<?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: S12X SPI - reading concern in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-SPI-reading-concern/m-p/857334#M16150</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edward, &lt;/P&gt;&lt;P&gt;I have tried using the above code with settings but it does not work. I may be doing wrong, so&amp;nbsp;I will check once again.&lt;/P&gt;&lt;P&gt;I will try further more with the settings&amp;nbsp;of slave and see&amp;nbsp;if it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the code warrior, I see for the read "data" value&amp;nbsp;it shows that it is "not allocated" in a window while performing debugging. Could you please suggest?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 13 Feb 2019 11:48:56 GMT</pubDate>
    <dc:creator>pratimavishwaka</dc:creator>
    <dc:date>2019-02-13T11:48:56Z</dc:date>
    <item>
      <title>S12X SPI - reading concern</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-SPI-reading-concern/m-p/857332#M16148</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sir,&lt;/P&gt;&lt;P&gt;This is regarding the SPI communication with RF transceiver. I am trying to establish Master- Slave communication using SPI&amp;nbsp;with microcontroller (Master) and RF transceiver (Slave). The microcontroller used is S12X series : MC9S12XEQ512 (SPI1 port is used), RF transceiver which has 3 wire interface for SPI communication (SCLK, DIO, CS).&lt;/P&gt;&lt;P&gt;The microcontroller pins MISO1 and MOSI1 are shorted together on board to interface with DIO line of 3 wire- SPI Transceiver IC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the following code:&lt;/P&gt;&lt;P&gt;#define W_OSC 0x45; &amp;nbsp;&amp;nbsp; //write command: 0x1 and register address as 0x05: transceiver//&lt;/P&gt;&lt;P&gt;#define W_PC 0x40;&lt;/P&gt;&lt;P&gt;#define RD_OSC 0x85;&amp;nbsp;&amp;nbsp; //read command: 0x2 and register address as 0x05: transceiver//&lt;/P&gt;&lt;P style="margin: 0cm 0cm 8pt;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void SPI_TXR_Init(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;unsigned char Test0;&lt;/P&gt;&lt;P&gt;unsigned char STATUS1;&lt;/P&gt;&lt;P&gt;unsigned char STATUS2;&lt;/P&gt;&lt;P&gt;STATUS1=0;&lt;/P&gt;&lt;P&gt;STATUS2=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI1DR=0x00FF; &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; //start of sending SCK //&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test0=SPI1SR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI1DRH=W_OSC;&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; //for writing//&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI1DRL=0xB0;&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;// 0000 1100 oscillator frequency which is 176//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(50);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//defined//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test0=SPI1SR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI1DRH=RD_OSC;&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;// for reading//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI1DRL=0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(50);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;PTP_PTP3=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;// CS high//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(10);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;PTP_PTP3=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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// CS low//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(10);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;DDRP_DDRP0=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;&amp;nbsp;//Micro SPI pins, MISO_R for input//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;DDRP_DDRP1=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; // Micro SPI pins MOSI_R for input//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;PTP_PTP1=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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Micro SPI pins MOSI_R is low/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;PTP_PTP0=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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Micro SPI pins MISO_R is low/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(150);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(150);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test0=SPI1SR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS1=SPI1DRH;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //tried to store data here//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS2=SPI1DRL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(50);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI1DRH=W_PC;&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;//for writing//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;SPI1DRL=0x30;&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; // 0011 0000 Enable Mixer, Baseband enable , disable PA only//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;delay(50);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test0=SPI1SR;&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;//want to read this as well//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void main(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;//code for clock setting to 25MHz//&lt;/P&gt;&lt;P&gt;//port setting//&lt;/P&gt;&lt;P&gt;DDRP_DDRP0=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; //MISO_R for input//&lt;/P&gt;&lt;P&gt;DDRP_DDRP1=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; //MOSI_R for output//&lt;/P&gt;&lt;P&gt;DDRP_DDRP2=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; //SCK_R for output//&lt;/P&gt;&lt;P&gt;DDRP_DDRP3=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; //CS_R is output//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PTP_PTP3=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;// CS_R is high/&lt;/P&gt;&lt;P&gt;PTP_PTP1=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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // MOSI_R is low/&lt;/P&gt;&lt;P&gt;PTP_PTP0=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; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// MOSI_R is low/&lt;/P&gt;&lt;P&gt;PTP_PTP2=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; // SCK is set high//&lt;/P&gt;&lt;P&gt;//SPI initialization//&lt;/P&gt;&lt;P&gt;SPI1CR1_SPE=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;//SPI enabled, port pins are dedicated to SPI functions.//&lt;/P&gt;&lt;P&gt;SPI1CR1_SPIE=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; // SPI interrupts disabled.//&lt;/P&gt;&lt;P&gt;SPI1CR1_SPTIE=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; // interrupt request are disabled//&lt;/P&gt;&lt;P&gt;SPI1CR1_MSTR=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;//SPI is in master mode.//&lt;/P&gt;&lt;P&gt;SPI1CR1_CPOL=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; //Active-high clocks selected. In idle state SCK is low.//&lt;/P&gt;&lt;P&gt;SPI1CR1_CPHA=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; //Sampling of data occurs at odd edges//&lt;/P&gt;&lt;P&gt;SPI1CR1_SSOE=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; //SS is not enabled//&lt;/P&gt;&lt;P&gt;SPI1CR1_LSBFE=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; //MSB first//&lt;/P&gt;&lt;P&gt;SPI1CR2=0x49;&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;// 0100 1001 (16 bit transfer, MODFEN=0, BIDIROE=1, SPC0=1, SS pin used, ouput buffer disabled,master mode //&lt;/P&gt;&lt;P&gt;SPI1BR=0x07;&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;&amp;nbsp; // Baud rate: 97.66 kbit/s in D-10B (25MHz / 256)//&lt;/P&gt;&lt;P&gt;SPI1CR1_SSOE=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; //SS is enabled//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;//Powering up of TXR//&lt;/P&gt;&lt;P&gt;PORTA_PA0=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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Drive high for normal operation of MAX7032//&lt;/P&gt;&lt;P&gt;delay(200);&lt;/P&gt;&lt;P&gt;PTP_PTP3=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; &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; // CS_R is low to enable the slave/&lt;/P&gt;&lt;P&gt;delay(200);&lt;/P&gt;&lt;P&gt;PORTA_PA1=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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Drive high for normal operation of MAX7032, TX/-RX_R//&lt;/P&gt;&lt;P&gt;SPI_TXR_Init();&lt;/P&gt;&lt;P&gt;….&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For this code, I am able to send commands to RF transceiver from microcontroller, but when it comes to reading, I didn’t get any data.&lt;/P&gt;&lt;P&gt;I tried reading for address register: 0x05 and 0x00, but the code does not return any value.&lt;/P&gt;&lt;P&gt;Could you please check and let me know where is the problem?&lt;/P&gt;&lt;P&gt;Also, would like to know what is the procedure of reading the data from SPI so as to ensure the data is written&amp;nbsp;to slave is correct.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Feb 2019 06:16:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-SPI-reading-concern/m-p/857332#M16148</guid>
      <dc:creator>pratimavishwaka</dc:creator>
      <dc:date>2019-02-12T06:16:18Z</dc:date>
    </item>
    <item>
      <title>Re: S12X SPI - reading concern</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-SPI-reading-concern/m-p/857333#M16149</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;To read from slave device you need to send something to it.&lt;/P&gt;&lt;P&gt;Test0=SPI1SR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS1=SPI1DRH;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //tried to store data here//&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS2=SPI1DRL;&lt;/P&gt;&lt;P&gt;^^ this clears SPIF but only pulls data from data register, it doesn't clock SPICLK, so doesn't read anything new from your slave. This is simple read write routine for master:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;unsigned char putspi(unsigned char data)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; SPIDR = data; /* initiate transfer, first status reg read is done in init routine*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; // wait while clocking&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while(!(SPISR &amp;amp; SPISR_SPIF_MASK))&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// read and return data&amp;nbsp;received from slave&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return SPIDR;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To send&lt;/P&gt;&lt;P&gt;putspi(data);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to read&lt;/P&gt;&lt;P&gt;data=putspi(0/*any data or data according to your protocol*/);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since you have bidirectional data line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SPICR2 &amp;amp;= ~SPICR2_BIDIROE_MASK; /* disable output buffer*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; data = putspi(0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SPICR2 |= SPICR2_BIDIROE_MASK; /* enable output buffer */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know details of your CS pin requirements, but usually automatic SS toggle by S12(X)&amp;nbsp;doesn't match&amp;nbsp;slave protocol requirements, just toggle CS when necessary bitbanging&amp;nbsp;I/O pin. Since slave may drive data pin while CS is asserted, reenable BIDIROE after releasing CS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your initialization toggling different SPICRx pins may not work operating standalone without BDM debugger, you'd better write all SPICRx bits simultaneously.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void SPIInit(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; (void)SPISR; //read status, required&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SPIBR = 0; /*set bit rate, use appropriate value &amp;nbsp;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; // set up CR1/2 bits all at once. Don't guess CPOL/CPHA settings, guessed CPOL/CPHA&amp;nbsp;will&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; // sometimes work and 99% bite you later.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SPICR1 = SPICR1_SPE_MASK | SPICR1_MSTR_MASK /*| SPICR1_CPOL_MASK*/&amp;nbsp; /*| SPICR1_CPHA_MASKCPHA*/;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SPICR2 |= SPICR2_SPISWAI_MASK | SPICR2_BIDIROE_MASK | SPICR2_SPC0_MASK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Feb 2019 12:12:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-SPI-reading-concern/m-p/857333#M16149</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2019-02-12T12:12:59Z</dc:date>
    </item>
    <item>
      <title>Re: S12X SPI - reading concern</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-SPI-reading-concern/m-p/857334#M16150</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edward, &lt;/P&gt;&lt;P&gt;I have tried using the above code with settings but it does not work. I may be doing wrong, so&amp;nbsp;I will check once again.&lt;/P&gt;&lt;P&gt;I will try further more with the settings&amp;nbsp;of slave and see&amp;nbsp;if it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the code warrior, I see for the read "data" value&amp;nbsp;it shows that it is "not allocated" in a window while performing debugging. Could you please suggest?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 13 Feb 2019 11:48:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12X-SPI-reading-concern/m-p/857334#M16150</guid>
      <dc:creator>pratimavishwaka</dc:creator>
      <dc:date>2019-02-13T11:48:56Z</dc:date>
    </item>
  </channel>
</rss>

