<?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>Kinetis MicrocontrollersのトピックReading Mass Flow Sensor EEPROM</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446890#M26404</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm having a bit of trouble working out exactly how to read an Atmel EEPROM with an SPI interface that contains some calibration numbers. I only have to read the first 80 bytes, but I'm just having a bit of trouble as to how I would go about doing this using a Freescale FRDM K64F Board. I understand the basics of the board and have written programs on it for controlling stepper motors, taking analog inputs, etc. I also understand EEPROM to an extent but not exactly how it works. Is there any guide I can be directed to to help me understand EEPROM better or better yet, how I would write a code for this purpose? Again, I only have to read the EEPROM so that simplifies things a bit, but its still a bit out of my grasp.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 10 Jun 2015 15:08:41 GMT</pubDate>
    <dc:creator>adegonge</dc:creator>
    <dc:date>2015-06-10T15:08:41Z</dc:date>
    <item>
      <title>Reading Mass Flow Sensor EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446890#M26404</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm having a bit of trouble working out exactly how to read an Atmel EEPROM with an SPI interface that contains some calibration numbers. I only have to read the first 80 bytes, but I'm just having a bit of trouble as to how I would go about doing this using a Freescale FRDM K64F Board. I understand the basics of the board and have written programs on it for controlling stepper motors, taking analog inputs, etc. I also understand EEPROM to an extent but not exactly how it works. Is there any guide I can be directed to to help me understand EEPROM better or better yet, how I would write a code for this purpose? Again, I only have to read the EEPROM so that simplifies things a bit, but its still a bit out of my grasp.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jun 2015 15:08:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446890#M26404</guid>
      <dc:creator>adegonge</dc:creator>
      <dc:date>2015-06-10T15:08:41Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Mass Flow Sensor EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446891#M26405</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So the EEPROM has a spi interface, is that correct?&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On an EEPROM, generally, you write a short op code for READ, then an 8 bit address, then the EEPROM provides the data back.&amp;nbsp; You have to chip select the EEPROM if there are multiple devices on the SPI bus.&amp;nbsp; You also have to keep the PSI clock running to get the part to shift back the data one bit at a time into the SPI input register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can use a Kinetis BSP SPI function, or write your own if you understand the Kinetis registers. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you need an register level SPI example, there are a few around.&amp;nbsp; Post and I can put one up as well.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Larry&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jun 2015 17:36:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446891#M26405</guid>
      <dc:creator>larryc</dc:creator>
      <dc:date>2015-06-10T17:36:37Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Mass Flow Sensor EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446892#M26406</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's some direct register access SPI code.&amp;nbsp; Sends a command to an encoder to read position and reads back 8 bytes of data.&amp;nbsp; Long but tested working..&lt;/P&gt;&lt;P&gt;NOTE:&amp;nbsp; Best to remove extra CR's in this paste in - not sure why they occur&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;static void&lt;BR /&gt;prvSetupHardware( void )&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;{&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static unsigned char encoder[1000];&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the interrupt on SW1. */&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; taskDISABLE_INTERRUPTS();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;#define&lt;BR /&gt;WANT_SPI_MUX_SETUP&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;#ifdef&lt;BR /&gt;WANT_SPI_MUX_SETUP&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;#define&lt;BR /&gt;BYTES_TO_READ 8&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Turn on the SPI0 clock&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC6 |= SIM_SCGC6_DSPI0_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTE26 A0 - encode mux selection&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTE27 A1&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTE28 A2&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTE12 A3&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR26 = PORT_PCR_MUX( 1 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_SRE_MASK&amp;nbsp;&amp;nbsp; |&lt;BR /&gt;PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR27 = PORT_PCR_MUX( 1 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_SRE_MASK&amp;nbsp;&amp;nbsp; |&lt;BR /&gt;PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR28 = PORT_PCR_MUX( 1 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_SRE_MASK&amp;nbsp;&amp;nbsp; |&lt;BR /&gt;PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTE_PCR12 = PORT_PCR_MUX( 1 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_SRE_MASK&amp;nbsp;&amp;nbsp; |&lt;BR /&gt;PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PDDR |= (1&amp;lt;&amp;lt;26);&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PDDR |= (1&amp;lt;&amp;lt;27);&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PDDR |= (1&amp;lt;&amp;lt;28);&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PDDR |= (1&amp;lt;&amp;lt;12);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set mult out A0-A2 to 0 ENDAT mux&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOE_PDOR &amp;amp;= ~((1&amp;lt;&amp;lt;26)&amp;nbsp; | &lt;BR /&gt;(1&amp;lt;&amp;lt;27)&amp;nbsp; |&amp;nbsp; (1&amp;lt;&amp;lt;27) | (1&amp;lt;&amp;lt;12) );&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set up needed pins for SPI0&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTD0 - CS0&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTD1 - Clock&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTD2 - DOut&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTD3 - DIn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // All pins - ALT2 config for SPI0, nor&lt;BR /&gt;IRQ/DMA, high drive strength and fast slew (0 for fast slew)&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD_PCR0 = PORT_PCR_MUX( 2 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_SRE_MASK&amp;nbsp;&amp;nbsp; |&lt;BR /&gt;PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD_PCR1 = PORT_PCR_MUX( 2 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_SRE_MASK&amp;nbsp;&amp;nbsp; |&lt;BR /&gt;PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD_PCR2 = PORT_PCR_MUX( 2 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_SRE_MASK&amp;nbsp;&amp;nbsp; |&lt;BR /&gt;PORT_PCR_DSE_MASK;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD_PCR3 = PORT_PCR_MUX( 2 ) |&lt;BR /&gt;PORT_PCR_IRQC(0) | PORT_PCR_PE_MASK /* |&amp;nbsp;&amp;nbsp; &lt;BR /&gt;PORT_PCR_PS_MASK */ ;&amp;nbsp; //pull down&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PTE26, 27, 28, 12&amp;nbsp; output for encoder mux selection.&amp;nbsp; pull down.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set up the SPI0 MCR register for what we&lt;BR /&gt;need&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Looks like we need:&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; &lt;BR /&gt;Use Master mode - the encoder is the slave&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; &lt;BR /&gt;Continuous clock?&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; &lt;BR /&gt;?? Use CS5 as peripheral CS ?? - Need to enable it in PCR&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; &lt;BR /&gt;PCS lines - set active low or high - use high for now (1 = inactive&lt;BR /&gt;high)&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; &lt;BR /&gt;Clear TX Fifo (1)&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; &lt;BR /&gt;Clear RX Fif0 (1)&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; &lt;BR /&gt;Run SCLK Continuous (1)&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_MCR = SPI_MCR_HALT_MASK |&amp;nbsp;&amp;nbsp; // stop the SPI;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_MCR_MSTR_MASK |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // master mode&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&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; SPI_MCR_CONT_SCKE_MASK |&amp;nbsp; // sclk cont&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_MCR_DCONF(0) |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SPI mode&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SPI_MCR_PCSSE_MASK |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //cs5 continuous&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_MCR_PCSIS(1) |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cs0 inactive hi&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_MCR_CLR_RXF_MASK |&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_MCR_CLR_TXF_MASK ; // Last&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for (int z=0; z&amp;lt;13; z++)&lt;BR /&gt;printf(".");&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CTOR configuration&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // We want:&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp; &lt;BR /&gt;Double baud rate?&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp; &lt;BR /&gt;Frame size is 8 (size is fmsz+1)&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp; &lt;BR /&gt;Delay&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp; &lt;BR /&gt;Close phase - output fulling receive falling&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_CTAR0 = (/*&lt;BR /&gt;SPI_CTAR_DBR_MASK*/&amp;nbsp; SPI_CTAR_FMSZ(7)&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // BR 5 and PBR 0 is 1Mhz&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // BR 4 and PBR 0 is 2Mhz - this doesnt&lt;BR /&gt;work&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | SPI_CTAR_PDT(7) | SPI_CTAR_BR(5) |&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_CTAR_PBR(0) |&lt;BR /&gt;SPI_CTAR_CPHA_MASK&amp;nbsp; |&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_CTAR_LSBFE_MASK |&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_CTAR_PCSSCK(0) |&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_CTAR_CSSCK(3)&amp;nbsp; );&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SPI_CTAR_CPOL_MASK );&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;#ifdef&lt;BR /&gt;ENCODER_STARTUP&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp; while ( 1 ) {&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Do a read and wait &lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_MCR = ~SPI_MCR_HALT_MASK &amp;amp;&lt;BR /&gt;SPI0_MCR;&amp;nbsp; // clear the halt bit&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char command = 0x70;&amp;nbsp;&amp;nbsp; // read &lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //unsigned char command = 0x5a;&amp;nbsp;&amp;nbsp; // read w/ reset&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear tranfer count register&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // SPI0_TCR = 0;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int spi_cnt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (spi_cnt=0;&lt;BR /&gt;spi_cnt&amp;lt;BYTES_TO_READ; spi_cnt++ )&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_PUSHR = (command&amp;nbsp; | SPI_PUSHR_CONT_MASK | SPI_PUSHR_PCS(1) |&lt;BR /&gt;SPI_PUSHR_CTAS(0));&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //while (!(SPI0_SR &amp;amp;&lt;BR /&gt;SPI_SR_TFFF_MASK)&amp;nbsp; );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command = spi_cnt+1;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!(SPI0_SR &amp;amp;&lt;BR /&gt;SPI_SR_RFDF_MASK)&amp;nbsp; );&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char byte;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; encoder[spi_cnt] = SPI0_POPR;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_SR = SPI_SR_RFDF_MASK;&amp;nbsp;&amp;nbsp; // clear the reception flag (not&lt;BR /&gt;self-clearing)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("byte read&lt;BR /&gt;%0x\n",SPI0_POPR );&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Last byte transfer/receiver&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command = 0xff;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_PUSHR = (command&amp;nbsp; | /* SPI_PUSHR_CONT_MASK | */&lt;BR /&gt;SPI_PUSHR_PCS(1) | SPI_PUSHR_CTAS(0));&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!(SPI0_SR &amp;amp;&lt;BR /&gt;SPI_SR_TFFF_MASK)&amp;nbsp; );&amp;nbsp; // wait for transmit&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (!(SPI0_SR &amp;amp;&lt;BR /&gt;SPI_SR_RFDF_MASK)&amp;nbsp; );&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char junk = SPI0_POPR;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_SR = SPI_SR_RFDF_MASK;&amp;nbsp;&amp;nbsp; // clear the reception flag (not&lt;BR /&gt;self-clearing)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: Calibri; font-size: 11pt;"&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jun 2015 19:01:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446892#M26406</guid>
      <dc:creator>larryc</dc:creator>
      <dc:date>2015-06-10T19:01:57Z</dc:date>
    </item>
    <item>
      <title>Re: Reading Mass Flow Sensor EEPROM</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446893#M26407</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Larry,&lt;/P&gt;&lt;P&gt;So I found the SPI functions in Kinetis and that appears to be exactly what I'm looking for. I'm having a bit of trouble with the syntax but I do see all the desired I/O pins defined in the function and I've found them all on the board so once I figure out how to issue the ReceiveBlock command I should be good to go, thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Jun 2015 20:06:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Reading-Mass-Flow-Sensor-EEPROM/m-p/446893#M26407</guid>
      <dc:creator>adegonge</dc:creator>
      <dc:date>2015-06-10T20:06:14Z</dc:date>
    </item>
  </channel>
</rss>

