<?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: FRDM-KL25Z with AD9850 DDS in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367519#M18965</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I finally solved the problem! I was watching all the SPI signals on the oscilloscope as you suggested, but everything was ok. Then, I decided to look at the reset signal, but it wasn't cleared in the initialization, then I found the error... in line 13 of my code I wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;#define ADReset_OFF&amp;nbsp;&amp;nbsp; GPIOA_PCOR = 1&amp;lt;13&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;I missed one of this characters: &amp;lt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;It should be:&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-size: 12px; font-family: Consolas, 'Courier New', Courier, mono, serif;"&gt;#define ADReset_OFF&amp;nbsp;&amp;nbsp; GPIOA_PCOR = 1 &amp;lt;&amp;lt; 13&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="color: #000000; font-size: 10pt;"&gt;It's working now. Thanks for your help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 15 Mar 2015 23:59:46 GMT</pubDate>
    <dc:creator>juanm</dc:creator>
    <dc:date>2015-03-15T23:59:46Z</dc:date>
    <item>
      <title>FRDM-KL25Z with AD9850 DDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367515#M18961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi! I have a cheap AD9850 module but I'm having troubles interfacing it with the FRDM-KL25Z board.&lt;/P&gt;&lt;P&gt;I found this mbed code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://developer.mbed.org/users/ptamike/code/AD9850-function-generator-SPI-driver/file/a643b6a454aa/main.cpp" rel="nofollow noopener noreferrer" title="http://developer.mbed.org/users/ptamike/code/AD9850-function-generator-SPI-driver/file/a643b6a454aa/main.cpp" target="_blank"&gt;AD9850-function-generator-SPI-driver - a mercurial repository | mbed&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried it with my board and it works. &lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;I ported the code to a Coldfire V1 JM128 and it works, but when I try to port it to the FRDM-KL25Z with Codewarrior v10.6 it doesn't work... so I think I'm doing something wrong in the initialization of the peripherals.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Here is my code for the FRDM-KL25Z:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14258540483036497" jivemacro_uid="_14258540483036497" modifiedtitle="true"&gt;
&lt;P&gt;#include "derivative.h" /* include peripheral declarations */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#include "mcg.h"&lt;/P&gt;
&lt;P&gt;#include "lptmr.h"&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;// PTA13 - Reset&lt;/P&gt;
&lt;P&gt;// PTD0 - Chip Select&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define CS_ON&amp;nbsp; GPIOD_PSOR = (1&amp;lt;&amp;lt;0)&lt;/P&gt;
&lt;P&gt;#define CS_OFF&amp;nbsp;&amp;nbsp; GPIOD_PCOR = 1&amp;lt;&amp;lt;0 &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;#define ADReset_ON&amp;nbsp; GPIOA_PSOR = (1&amp;lt;&amp;lt;13)&lt;/P&gt;
&lt;P&gt;#define ADReset_OFF&amp;nbsp;&amp;nbsp; GPIOA_PCOR = 1&amp;lt;13 &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;unsigned long int reverseBits (unsigned long int source);&lt;/P&gt;
&lt;P&gt;void SPI_InitMaster( void );&lt;/P&gt;
&lt;P&gt;void writeSPI(unsigned long int frq, unsigned char phase);&lt;/P&gt;
&lt;P&gt;void CLK_init(void);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;int main(void)&lt;/P&gt;
&lt;P&gt;{&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; SIM_COPC = SIM_COPC_COPT(0x00); /* Disable the WDOG module */&lt;/P&gt;
&lt;P&gt;&amp;nbsp; pll_init(8000000, LOW_POWER, CRYSTAL,4,24,MCGOUT); //Core Clock is now at 48MHz using the 8MHZ Crystal ((8MHz/4)*24)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; lptmr_init(10000, 0);&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI_InitMaster();&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // This routine produces a continuous frequency sweep&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; unsigned long int targetFrq=0x147AE148; // Frequency word = ([Desired freq in MHz] * 34.3597384)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; unsigned long int increment=0xD6B; //100Hz step&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset the AD9850. Active high logic. Minimum reset period 5 clock cycles (5/125MHz)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADReset_OFF;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_delay_ms(5);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADReset_ON;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_delay_ms(5);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADReset_OFF;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; for(;;) {&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; while (targetFrq&amp;lt;0x148bFFFF) // up to 10.001MHz&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeSPI(reverseBits(targetFrq),0); // Don't use phase so set to zero.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetFrq=targetFrq+increment;&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp; while (targetFrq&amp;gt;0x147AE148) // down to 10MHz&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeSPI(reverseBits(targetFrq),0);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetFrq=targetFrq-increment;&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp; }&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; return 0;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;/****************************************************************&lt;/P&gt;
&lt;P&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; initial the spi module to master mode&lt;/P&gt;
&lt;P&gt;*****************************************************************/&lt;/P&gt;
&lt;P&gt;void SPI_InitMaster( void )&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // enable clock gate for spi module&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC4 |= SIM_SCGC4_SPI0_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; // enable PORT&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; SIM_SCGC5 |= SIM_SCGC5_PORTD_MASK|SIM_SCGC5_PORTA_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // disable SPI&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C1 &amp;amp;= ~SPI_C1_SPE_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // configure I/O to SPI function&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //PORTD_PCR0 &amp;amp;= ~PORT_PCR_MUX_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //PORTD_PCR0 |= PORT_PCR_MUX(2)|PORT_PCR_DSE_MASK;&amp;nbsp; //Use PTD0 as SPI0_SS_b&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; PORTD_PCR0 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;&amp;nbsp; //PTD0 es SS&lt;/P&gt;
&lt;P&gt;&amp;nbsp; PORTA_PCR13 = PORT_PCR_MUX(1) | PORT_PCR_DSE_MASK;&amp;nbsp; //PTA13 es Reset&lt;/P&gt;
&lt;P&gt;&amp;nbsp; GPIOD_PDDR |=&amp;nbsp; (1&amp;lt;&amp;lt;0);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; GPIOA_PDDR |=&amp;nbsp; (1&amp;lt;&amp;lt;13);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD_PCR3 &amp;amp;= ~PORT_PCR_MUX_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; PORTD_PCR3 |= PORT_PCR_MUX(2)|PORT_PCR_DSE_MASK;&amp;nbsp; //Use PTD3 as SPI0_MISO&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD_PCR2 &amp;amp;= ~PORT_PCR_MUX_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; PORTD_PCR2 |= PORT_PCR_MUX(2)|PORT_PCR_DSE_MASK;&amp;nbsp; //Use PTD2 as SPI0_MOSI&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD_PCR1 &amp;amp;= ~PORT_PCR_MUX_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; PORTD_PCR1 = PORT_PCR_MUX(2)|PORT_PCR_DSE_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Use PTD1 as SPI0_SCK&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C1 |= SPI_C1_MSTR_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_BR = 0b01010001; //Divido por 6 y despues por 4 entonces si el BUS CLK = 24 MHz, el SPI CLK = 1 MHz&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //SPI0_C1 |= SPI_C1_SSOE_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; //SPI0_C2 |= SPI_C2_MODFEN_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C1 &amp;amp;= ~SPI_C1_SSOE_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C2 &amp;amp;= ~SPI_C2_MODFEN_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //SPI0_C1 |= SPI_C1_CPHA_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C1 &amp;amp;= (~SPI_C1_CPHA_MASK); //CPHA = 0&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //SPI0_C1 |= SPI_C1_CPOL_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C1 &amp;amp;= (~SPI_C1_CPOL_MASK); //CPOL = 0&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //SPI0_C1 |= SPI_C1_LSBFE_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C1 &amp;amp;= (~SPI_C1_LSBFE_MASK); //MSB&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; SPI0_C1 |= SPI_C1_SPE_MASK; //Activa SPI&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;unsigned long int reverseBits (unsigned long int source)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;// Unfortunately need to invert bit order of the desired frequency setting since MBED only allows for MSB first from SPI. We need LSB first for AD9850&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long int mask=0;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i=0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long int target=0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long int bitTarget=0x80000000; // Hard-wired for 32-bit inversion&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0;i&amp;lt;32;i++) { // ditto&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mask=1&amp;lt;&amp;lt;i;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bitTarget=1&amp;lt;&amp;lt;(31-i); // ditto&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (source &amp;amp; mask)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target=target | bitTarget;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return target;&lt;/P&gt;
&lt;P&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void writeSPI(unsigned long int frq, unsigned char phase)&lt;/P&gt;
&lt;P&gt;{&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;// Send the 40-bit packet. NB: KL25Z only supports 8-bit SPI so send five 8-bit packets&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // First do chip select. Need to use a GPIO to fake the chip select since MBED doesn't allow to set positive logic CS signal&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS_ON; // assert chip select (a.k.a FQ_UD frequency update input to AD9850)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_delay_ms(1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS_OFF;&lt;/P&gt;
&lt;P&gt;&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; while(!(SPI0_S &amp;amp; SPI_S_SPTEF_MASK ) )&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("nop");&lt;/P&gt;
&lt;P&gt;&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D = frq&amp;gt;&amp;gt;24;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI0_S &amp;amp; SPI_S_SPTEF_MASK ) )&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("nop");&lt;/P&gt;
&lt;P&gt;&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D = frq&amp;gt;&amp;gt;16;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI0_S &amp;amp; SPI_S_SPTEF_MASK ) )&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("nop");&lt;/P&gt;
&lt;P&gt;&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D = frq&amp;gt;&amp;gt;8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI0_S &amp;amp; SPI_S_SPTEF_MASK ) )&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("nop");&lt;/P&gt;
&lt;P&gt;&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D = frq;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(!(SPI0_S &amp;amp; SPI_S_SPTEF_MASK ) )&lt;/P&gt;
&lt;P&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm("nop");&lt;/P&gt;
&lt;P&gt;&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; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI0_D = phase;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Now pulse FQ_UD again to load the word into the DDS&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS_OFF;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_delay_ms(1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS_ON;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time_delay_ms(1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS_OFF;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The delay and clock initialization routines are from the lptmr and mcg libraries provided by Freescale.&lt;/P&gt;&lt;P&gt;Thanks in advance!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 08 Mar 2015 22:43:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367515#M18961</guid>
      <dc:creator>juanm</dc:creator>
      <dc:date>2015-03-08T22:43:26Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KL25Z with AD9850 DDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367516#M18962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please refer attached KL25 SPI master/slave example code attached.&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Mar 2015 08:50:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367516#M18962</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-03-09T08:50:50Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KL25Z with AD9850 DDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367517#M18963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the code. I have seen the SPI initialization, but I can't find any differences between your attached code and mine (with the exception that I'm using a GPIO as SS).&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 09 Mar 2015 17:04:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367517#M18963</guid>
      <dc:creator>juanm</dc:creator>
      <dc:date>2015-03-09T17:04:40Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KL25Z with AD9850 DDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367518#M18964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you get any signal output from KL25 SPI port with scope? If the SPI communication signals as expected?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ma Hui&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Mar 2015 07:44:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367518#M18964</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2015-03-10T07:44:58Z</dc:date>
    </item>
    <item>
      <title>Re: FRDM-KL25Z with AD9850 DDS</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367519#M18965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I finally solved the problem! I was watching all the SPI signals on the oscilloscope as you suggested, but everything was ok. Then, I decided to look at the reset signal, but it wasn't cleared in the initialization, then I found the error... in line 13 of my code I wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;#define ADReset_OFF&amp;nbsp;&amp;nbsp; GPIOA_PCOR = 1&amp;lt;13&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;I missed one of this characters: &amp;lt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;It should be:&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-size: 12px; font-family: Consolas, 'Courier New', Courier, mono, serif;"&gt;#define ADReset_OFF&amp;nbsp;&amp;nbsp; GPIOA_PCOR = 1 &amp;lt;&amp;lt; 13&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 12px;"&gt;&lt;SPAN style="color: #000000; font-size: 10pt;"&gt;It's working now. Thanks for your help!&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Mar 2015 23:59:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FRDM-KL25Z-with-AD9850-DDS/m-p/367519#M18965</guid>
      <dc:creator>juanm</dc:creator>
      <dc:date>2015-03-15T23:59:46Z</dc:date>
    </item>
  </channel>
</rss>

