<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=12199&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-07-06T13:49:16+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12199&amp;mode</id>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2015-07-06T13:49:16+01:00</updated>
<published>2015-07-06T13:49:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12199&amp;p=133756#p133756</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12199&amp;p=133756#p133756"/>
<title type="html"><![CDATA[Re: AD9850 błędna częstotliwość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12199&amp;p=133756#p133756"><![CDATA[
Ok. Już sobie poradziłem z tym problemem. Błąd był w wysyłaniu bitów w funkcji SendSoftSpi().<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 6 lip 2015, o 13:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2015-07-03T21:44:21+01:00</updated>
<published>2015-07-03T21:44:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12199&amp;p=133577#p133577</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12199&amp;p=133577#p133577"/>
<title type="html"><![CDATA[AD9850 błędna częstotliwość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12199&amp;p=133577#p133577"><![CDATA[
Witam.<br />Proszę o pomoc, bo już nie mam sił do tego. Kupiłem dwa moduły AD9850 i na obydwóch jest ten sam problem, więc jest to raczej wina programu aniżeli sprzętu. Problem wygląda tak, że częstotliwość zadeklarowana w programie, nijak ma się z częstotliwością generowaną przez układ. Po wpisaniu AD9850Update(100) otrzymuję wynik 1.3kHz na wyjściu, z kolei po wpisaniu AD9850Update(1000) otrzymuję 724Hz na wyściu. Po wpisaniu AD9850(20000) na wyjściu są już grube Mhz. <br /><br />Układ podłączyłem tak:<br /><br />DATA -&gt; PC0<br />W_CLK -&gt; PC1<br />FQ_UP -&gt; PC2<br />RESET -&gt; PC3<br /><br />main.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 3 lip 2015<br /> *      Author: Damian<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;SOFT_SPI/S_SPI.h&quot;<br /><br />#define RESET PC3<br /><br />void ad9850_init(void);<br />void AD9850Update(uint32_t frequency) ;<br /><br /><br /><br /><br />int main(void)<br />{<br />InitSoftSpi();<br />DDRC |= (1&lt;&lt;RESET);<br />ad9850_init();<br /><br /><br />while(1)<br />{<br />AD9850Update(1000);<br /><br />}<br />}<br /><br /><br />void ad9850_init(void)<br />{<br />   /* PORTC &amp;= ~(1&lt;&lt;SCS);<br /><br />    PORTC &amp;= ~(1&lt;&lt;RESET);<br />    PORTC |= (1&lt;&lt;RESET);<br />    PORTC &amp;= ~(1&lt;&lt;RESET);<br /><br />    PORTC |= (1&lt;&lt;SSCK);<br />    PORTC &amp;= ~(1&lt;&lt;SSCK);<br /><br />    PORTC |= (1&lt;&lt;SCS);<br />    PORTC &amp;= ~(1&lt;&lt;SCS);*/<br /><br />//PORTC &amp;= ~(1&lt;&lt;SCS);<br /><br />PORTC |= (1&lt;&lt;RESET);<br />_delay_ms(1);<br />PORTC |= (1&lt;&lt;RESET);<br />_delay_ms(1);<br />PORTC &amp;= ~(1&lt;&lt;RESET);<br /><br />PORTC |= (1&lt;&lt;SSCK);<br />_delay_ms(1);<br />PORTC &amp;= ~(1&lt;&lt;SSCK);<br /><br />PORTC |= (1&lt;&lt;SCS);<br />_delay_ms(1);<br />PORTC &amp;= ~(1&lt;&lt;SCS);<br />}<br /><br />void AD9850Update(uint32_t frequency) {<br /><br />uint32_t tuningWord;<br /><br />      //tuningWord = frequency * 4294967295/125000000;<br /><br />    tuningWord = (frequency * 34) + (frequency &gt;&gt; 2) + (frequency &gt;&gt; 4) + (frequency &gt;&gt; 5) + (frequency &gt;&gt; 6) + (frequency &gt;&gt; 12) + (frequency &gt;&gt; 13);<br /><br /><br /><br />    SendSoftSpi(tuningWord);<br />    SendSoftSpi(tuningWord &gt;&gt; 8);<br />    SendSoftSpi(tuningWord &gt;&gt; 16);<br />    SendSoftSpi(tuningWord &gt;&gt; 24);<br />    SendSoftSpi(0x00);<br /><br /><br />    PORTC |= (1&lt;&lt;SCS);<br />    _delay_ms(1);<br />    PORTC &amp;= ~(1&lt;&lt;SCS);<br /><br />}[/syntax]<br /><br />S_SPI.c<br />[syntax=c]/*<br /> * S_SPI.c<br /> *<br /> *  Created on: 3 lip 2015<br /> *      Author: Damian<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;S_SPI.h&quot;<br /><br /><br /><br /><br />void InitSoftSpi(void) {<br /><br />DDRC |= (1&lt;&lt;SMOSI)|(1&lt;&lt;SSCK)|(1&lt;&lt;SCS);<br />}<br /><br /><br />void SendSoftSpi( uint8_t bajt ) {<br />uint8_t cnt=0x80;<br /><br />SCK_0;<br /><br />while( cnt ) {<br />if( bajt &amp; cnt ) MOSI_1;<br />else MOSI_0;<br />SCK_1;<br />SCK_0;<br />cnt&gt;&gt;=1;<br />}<br /><br /><br />//PORTC |= (1&lt;&lt;SCS);<br /><br /><br /><br />//PORTC &amp;= ~(1&lt;&lt;SCS);<br />}[/syntax]<br /><br />S_SPI.h<br />[syntax=c]/*<br /> * S_SPI.h<br /> *<br /> *  Created on: 3 lip 2015<br /> *      Author: Damian<br /> */<br /><br />#ifndef SOFT_SPI_S_SPI_H_<br />#define SOFT_SPI_S_SPI_H_<br /><br />/* software SPI */<br />#define SMOSI PC0 //   &lt;---- A (SER IN) DATA<br />#define SSCK PC1//   &lt;---- SHIFT CLOCK (SC) W_CLK<br />#define SCS PC2// &lt;---- LATCH CLOCK (LC) FQ_UP<br />#define SCK_0 PORTC &amp;= ~(1&lt;&lt;SSCK)<br />#define SCK_1 PORTC |= (1&lt;&lt;SSCK)<br />#define MOSI_0 PORTC &amp;= ~(1&lt;&lt;SMOSI)<br />#define MOSI_1 PORTC |= (1&lt;&lt;SMOSI)<br /><br />void InitSoftSpi(void);<br /><br />void SendSoftSpi( uint8_t bajt );<br /><br /><br /><br /><br />#endif /* SOFT_SPI_S_SPI_H_ */[/syntax]<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 3 lip 2015, o 21:44</p><hr />
]]></content>
</entry>
</feed>