Ondeggiatore: Difference between revisions

From ciapini
Jump to navigation Jump to search
(Created page with "== DDS == AD9834 http://www.analog.com/en/digital-to-analog-converters/direct-digital-synthesis-dds/ad9834/products/product.html === Filtro di ricostruzione === l'uscita de...")
 
 
(46 intermediate revisions by the same user not shown)
Line 1: Line 1:
== DDS ==
[[Category:Radio]]
''VFO & controller per ricevitori a conversione diretta (e non)''


AD9834 http://www.analog.com/en/digital-to-analog-converters/direct-digital-synthesis-dds/ad9834/products/product.html
== Codice ==


=== Filtro di ricostruzione ===
http://nebbia.esiliati.org/repos/cesco/ondeggiatore/


l'uscita del DDS va fatta passare per un 'filtro di ricostruzione', che tagli via per quanto possibile le spurie e le armoniche di campionamento del DAC
== Interfaccia ==


si puo copiare da questo: http://www.pongrance.com/super-dds.html che pero ha un clock di 80mhz (cambia poco)
=== Input ===
 
* up + down
* left + right
* enter+exit
 
=== display ===
 
* ST7032i 16x2, 3.3v, SPI
* ST7032i 16x2, 3.3v, I2C
* SSD1675A 104x212, 3.3v, SPI
 
http://www.buydisplay.com/default/16x2-lcd-3-3v-character-cog-display-module-black-on-white
 
{|style="color:blue; background-color:#ffffdd;" cellpadding="10" cellspacing="0" border="1"
!Pin No.
!Pin Name
!Descriptions
|-
|1||XRESET||External reset pin, Only if the power on reset used, The XRESET pin must be fixed to VDD, Active Low.
|-
|2||RS||Select Registers. 0: Instruction Register(for write) Busy Flag & Address Counter(for read) 1: Data Register(for white and read)
|-
|3||CSB||Chip Select Input Pin. Low Active.
|-
|4||SCL||Clock Input Pin
|-
|5||SDA||Input Data Pin
|-
|6||VSS||GND
|-
|7||VDD||Power Supply
|-
|8||VOUT||DC/DC voltage converter. Connect a capacitor between this terminal and VDD when the built-in booster is used.
|-
|9||PSB||SI4(SPI):PSB=0, PSI2B=1;
|-
|10||PSI2B||SI2(IIC):PSB=1,PSI2B=0;
|-
|11||CAP1P||Connect capacitors between CAP1P and CAP1N
|-
|12||CAP1N||Connect capacitors between CAP1P and CAP1N
|}
 
== Dispositivi supportati ==
 
=== AD9834 ===
 
http://www.analog.com/en/digital-to-analog-converters/direct-digital-synthesis-dds/ad9834/products/product.html
 
75Mhz, 10bit


o questo http://www.elecraft.com/manual/KX1_Owner%27s_Manual_Rev_E.pdf, che e' tagliato un po piu basso
Usa i piedini DDS_CS, SCK, SDO


http://www.analog.com/static/imported-files/application_notes/351016224AN_837.pdf
=== AD9850 ===


* ad9951 http://www.m0rjd.co.uk/LO.html
http://www.analog.com/en/products/rf-microwave/direct-digital-synthesis/ad9850.html


=== oscillatore ===
SSOP28, 3.3-5 V, 125Mhz, 10bit, SFDR > 50 dB @ 40 MHz


quel DDS non ha PLL, ergo bisogna trovare un oscillatore >= 75 mhz
Usa i piedini DDS_CS, SCK, SDO sul uC


http://global.kyocera.com/prdct/electro/pdf/clock/kc7050a_c3_e.pdf e' ok
In commercio si trovano gia assemblati due moduli:


== uC ==
==== Modulo con Rset esposta ====  


* PIC24F16KM202 http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en560805
[[File:AD9850-Module.jpg|foto]]


* riceve l'input dai tasti (6 pin) o dall'encoder (4 + 2)
[[File:9850 DDS rset.jpg|thumb|none]]
* riceve l'input da eventuale PTT (shift) (1 pin)
* riceve l'input da eventuale Carrier Detect (per lo scan) (1 pin)
* controlla il LCD (SPI)
* controlla il DDS (SPI)
* controlla la Rset del DDS (1 pin)
* controlla il banco filtri (4 pin)
* controlla la backlight (1 pin)
* si interfaccia con la memoria EEPROM (SPI)


24 pin totali di I/O
==== Modulo HC-SR08 ====


* DDS, lcd e memoria esterna possono convivere sul modulo SPI
[[:File:HC-SR08 AD9850 Module.png|schema]]


=== Mappa pin ===
Piedinatura:


{|style="color:green; background-color:#ffffdd;" cellpadding="10" cellspacing="0" border="1"
{|style="color:blue; background-color:#ffffdd;" cellpadding="10" cellspacing="0" border="1"
!Pin
!Pin
!Funzione
!Funzione
!Nome
!porta sul uC
!I/O
|-
|1|| ||||MCLR/RA5||
|-
|2|| ||LCD_CS||RA0||O
|-
|-
|3|| ||LCD_RS||RA1||O
|1||VCC
|-
|-
|4|| ||BACKLIGHT||RB0/PGED1||O
|2||W_CLK
|-
|-
|5|| ||CD_IN||RB1/PGEC1||I
|3||FU_UD
|-
|-
|6|| ||U1RX||RB2 o U1RX||I
|4||SDI
|-
|-
|7|| ||PTT_IN||RB3||I
|5||Reset
|-
|-
|8|| || ||VSS||
|6||GND
|-
|-
|9|| ||FILTER_1||RA2||O
|7||Square Out 1
|-
|-
|10|| ||FILTER_2||RA3||O
|8||Square Out 2
|-
|-
|11|| ||FILTER_3||RB4||O
|9||Sine Out 1
|-
|-
|12|| ||FILTER_4||RA4||O
|10||Sine Out 2
|-
|-
|13|| || ||VDD||
|11||GND
|-
|-
|14|| ||QE_UD_CHANNEL_A||RB5||I
|12||D7
|-
|-
|15|| ||QE_UD_CHANNEL_B||RB6||I
|13||D6
|-
|-
|16|| ||U1TX||RB7 o U1TX||O
|14||D5
|-
|-
|17|| ||ENTER_SW||RB8||I
|15||D4
|-
|-
|18|| ||EXIT_SW||RB9||I
|16||D3
|-
|-
|19|| ||QE_LR_CHANNEL_A||RA7||I
|17||D2
|-
|-
|20|| ||QE_LR_CHANNEL_B||RA6||I
|18||D1
|-
|-
|21|| ||SDI||RB10/SDI1||I
|19||D0
|-
|-
|22|| ||SCK||RB11/SCK1||O
|20||VCC
|-
|-
|23|| ||RSET||RB12/DAC1OUT||O
|-
|24|| ||SDO||RB13/SDO1||O
|-
|25|| ||EEPROM_CS||RB14||O
|-
|26|| ||DDS_CS||RB15||O
|-
|27|| || ||AVSS||
|-
|28|| || ||AVDD||
|}
|}


== tasti ==
=== SI570 ===


io sarei per una cosa stile nokia:
Si570 CAC000141DG http://www.silabs.com/Support%20Documents/TechnicalDocs/si570.pdf


enter+exit
Fout = (fXTAL * RFREQ)/(HSDIV * N1)
* http://g4oep.atspace.com/si570vfo/570VFO.htm
* http://www.cliftonlaboratories.com/si570_kit_from_k5bcq.htm


up+down
=== Si5351a ===


left+right (che potrebbe essere un encoder rotativo)
https://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351-B.pdf


== display ==
0.0025 — 200 MHz


16x2 HD44780
* https://www.qrp-labs.com/synth/si5351ademo.html


* LCD a caratteri da 3.3v
== Filtro ==
** 16x2 http://www.newhavendisplay.com/nhd0216hzfswfbw33v3c-p-5169.html
** 16x2 http://www.ebay.com/itm/1602-3-3V-16x2-character-LCD-Display-Module-with-Yellow-Green-Display-Backlight-/190888625064


oppure SPI
l'uscita dei DDS va fatta passare per un 'filtro di ricostruzione', che tagli via per quanto possibile le spurie e le armoniche di campionamento del DAC
** http://www.buy-display.com/default/serial-16x2-cog-character-lcd-display-module-1.html


un fet IRLML2502 controlla l'accensione della backlight
si puo copiare da questo: http://www.pongrance.com/super-dds.html che pero ha un clock di 80mhz (cambia poco)
 
o questo http://www.elecraft.com/manual/KX1_Owner%27s_Manual_Rev_E.pdf, che e' tagliato un po piu basso
 
http://www.analog.com/static/imported-files/application_notes/351016224AN_837.pdf
 
* ad9951 http://www.m0rjd.co.uk/LO.html
 
== uC ==
 
* PIC24F16KM202 http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en560805
 
* riceve l'input dai tasti (6 pin) o dall'encoder (4 + 2)
* riceve l'input da eventuale PTT (shift) (1 pin)
* riceve l'input da eventuale Carrier Detect (per lo scan) (1 pin)
* controlla il LCD (SPI)
* controlla il DDS (SPI) / Oscillatore (I2C)
* controlla la Rset del DDS (1 pin)
* controlla il banco filtri (4 pin)
* controlla la backlight (1 pin)
* si interfaccia con la memoria EEPROM (SPI)
 
24 pin totali di I/O
 
* DDS, lcd e memoria esterna possono convivere sul modulo SPI
 
=== Mappa pin ===
 
Usa il layout di [[CodecBoard16]]


== memoria esterna ==
== memoria esterna ==
Line 192: Line 245:
* frequency register su eeprom interna
* frequency register su eeprom interna
* DDS clock
* DDS clock


la memoria viene divisa in blocchi da 32byte
la memoria viene divisa in blocchi da 32byte
Line 236: Line 287:
|band_name||band_step||frequency_min||frequency_max||flag
|band_name||band_step||frequency_min||frequency_max||flag
|}
|}
=== interfaccia ===
# root
## menu rancio
## navigazione
### frequenza
### step/canale
### scan
### store frequenza corrente
#### nome canale
#### gruppo canale
### banda frequenze
### gruppo canali
* frequenza: 10 caratteri (mm.kkk.hhh)
* nome canale: 16 caratteri
* scan flag: 1 carattere (S/M) (''scan'', ''manual'')
* tx flag: 1 carattere (T/R)
* mode flag: 1 carattere (F/C/G/B) (''frequency'', ''channel'', ''group'', ''band'')

Latest revision as of 22:13, 2 April 2018

VFO & controller per ricevitori a conversione diretta (e non)

Codice

http://nebbia.esiliati.org/repos/cesco/ondeggiatore/

Interfaccia

Input

  • up + down
  • left + right
  • enter+exit

display

  • ST7032i 16x2, 3.3v, SPI
  • ST7032i 16x2, 3.3v, I2C
  • SSD1675A 104x212, 3.3v, SPI


http://www.buydisplay.com/default/16x2-lcd-3-3v-character-cog-display-module-black-on-white

Pin No. Pin Name Descriptions
1 XRESET External reset pin, Only if the power on reset used, The XRESET pin must be fixed to VDD, Active Low.
2 RS Select Registers. 0: Instruction Register(for write) Busy Flag & Address Counter(for read) 1: Data Register(for white and read)
3 CSB Chip Select Input Pin. Low Active.
4 SCL Clock Input Pin
5 SDA Input Data Pin
6 VSS GND
7 VDD Power Supply
8 VOUT DC/DC voltage converter. Connect a capacitor between this terminal and VDD when the built-in booster is used.
9 PSB SI4(SPI):PSB=0, PSI2B=1;
10 PSI2B SI2(IIC):PSB=1,PSI2B=0;
11 CAP1P Connect capacitors between CAP1P and CAP1N
12 CAP1N Connect capacitors between CAP1P and CAP1N

Dispositivi supportati

AD9834

http://www.analog.com/en/digital-to-analog-converters/direct-digital-synthesis-dds/ad9834/products/product.html

75Mhz, 10bit

Usa i piedini DDS_CS, SCK, SDO

AD9850

http://www.analog.com/en/products/rf-microwave/direct-digital-synthesis/ad9850.html

SSOP28, 3.3-5 V, 125Mhz, 10bit, SFDR > 50 dB @ 40 MHz

Usa i piedini DDS_CS, SCK, SDO sul uC

In commercio si trovano gia assemblati due moduli:

Modulo con Rset esposta

foto

9850 DDS rset.jpg

Modulo HC-SR08

schema

Piedinatura:

Pin Funzione
1 VCC
2 W_CLK
3 FU_UD
4 SDI
5 Reset
6 GND
7 Square Out 1
8 Square Out 2
9 Sine Out 1
10 Sine Out 2
11 GND
12 D7
13 D6
14 D5
15 D4
16 D3
17 D2
18 D1
19 D0
20 VCC

SI570

Si570 CAC000141DG http://www.silabs.com/Support%20Documents/TechnicalDocs/si570.pdf

Fout = (fXTAL * RFREQ)/(HSDIV * N1)

Si5351a

https://www.silabs.com/Support%20Documents/TechnicalDocs/Si5351-B.pdf

0.0025 — 200 MHz

Filtro

l'uscita dei DDS va fatta passare per un 'filtro di ricostruzione', che tagli via per quanto possibile le spurie e le armoniche di campionamento del DAC

si puo copiare da questo: http://www.pongrance.com/super-dds.html che pero ha un clock di 80mhz (cambia poco)

o questo http://www.elecraft.com/manual/KX1_Owner%27s_Manual_Rev_E.pdf, che e' tagliato un po piu basso

http://www.analog.com/static/imported-files/application_notes/351016224AN_837.pdf

uC

  • riceve l'input dai tasti (6 pin) o dall'encoder (4 + 2)
  • riceve l'input da eventuale PTT (shift) (1 pin)
  • riceve l'input da eventuale Carrier Detect (per lo scan) (1 pin)
  • controlla il LCD (SPI)
  • controlla il DDS (SPI) / Oscillatore (I2C)
  • controlla la Rset del DDS (1 pin)
  • controlla il banco filtri (4 pin)
  • controlla la backlight (1 pin)
  • si interfaccia con la memoria EEPROM (SPI)

24 pin totali di I/O

  • DDS, lcd e memoria esterna possono convivere sul modulo SPI

Mappa pin

Usa il layout di CodecBoard16

memoria esterna

Connettori

Controllo

Pin Funzione Nome
1 FILTER_1
2 FILTER_2
3 FILTER_3
4 FILTER_4
5 CD
6 PTT

UART

Pin Funzione Nome
1 Massa GND
2 Uart tx TX
3 Uart rx RX

Firmware

Features

  • canali con nome alfanumerico su memoria esterna
  • bande con nome alfanumerico su memoria esterna
  • step (1,10,100,500,1000,1250,2500,5000,9000,10000,50000,100000,1000000) (4 byte) o semplicemente potenze di 10 ? su eeprom interna
  • frequenza 0 - 30 MHz su eeprom interna (4 byte)
  • shift TX/RX (+- 0 - 30 MHz) su eeprom interna (4 byte)
  • IF (+- 0 - 30 MHz) su eeprom interna (4 byte)
    • additiva: il display mostra la frequenza dell'IF + la frequenza del VFO
    • sottrattiva: il display mostra la frequenza dell'IF - la frequenza del VFO
  • scan (volatile)
    • dentro banda
    • dei canali
  • filtri su eeprom interna
    • numero (1 byte)
    • fmin (4 byte)
    • fmax (4 byte)
  • phase register su eeprom interna
  • frequency register su eeprom interna
  • DDS clock

la memoria viene divisa in blocchi da 32byte

ogni nuovo canale/banda viene memorizzato nel primo blocco/canale flaggato come non attivo

quando si naviga tra i canali/bande, vengono letti i blocchi in ordine finche non si trova il successivo canale/banda

Flag

00 non attivo
01 canale
10 gruppo
11 banda

Canale

16-31 12-15 1 0
channel_name frequency group_id flag

Gruppo

16-31 1 0
group_name group_id flag

Banda

16-31 12-15 8-11 4-7 0
band_name band_step frequency_min frequency_max flag