marți, 25 decembrie 2018

DDS cu Attiny85

Zilele trecute, cautind un generator sinusoidal la 50Hz cit mai simplu si stabil, am dat de articolul de aici cu update aici. Parea sa fie ceea ce cautam si i-am facut un test rapid. Omul prezinta un generator de functii in gama 1Hz- 5KHz cu reglajul frecventei din encoder. Formele de unda se aleg printr-o apasare scurta.
Schema preluata mai jos este foarte simpla:
Atentie la pinii lui Attiny85:

La iesire eu am folosit rezistente de 3K3 in locul celor de 4K7, si condensatori de 1nF in locul celor de 4,7nF
Terminalele encoderul traduse pentru encoderul meu arata astfel:

x = GND
Y = SW
C = +5V
A = DT
B = CLK (inversarea lui A cu B afecteaza doar sensul)

Codul pentru varianta finala in care exista si semnalul sinusoidal este aici. Eu nu am facut decit sa dau copy/paste si apoi sa incarc codul in ATTINY85. Initial am pus pe pe Attiny85 bootloaderul cu clock intern 8MHz.

A iesit ca mai jos:
Frecventa si forma de unda implicita se seteaza ca mai jos:
void setup() {
  Wire.begin();
  // Is it a power-on reset?
  if (MCUSR & 1) {
    Wave = 0; Freq = 100;     // Start with 100Hz Sine

Eu am ales sa porneasca cu 50Hz pentru ca voi renunta la encoder si oled. Urmeaza sa fie adaptat intr-un invertor sinusoidal caruia i-a explodat circuitul original. Partea de defazare este pe placa invertorului si este functionala, fiind anterior testata cu semnal de pe un generatorul de mai jos:


Radio cu TEA5767, afisare pe TFT 1,44", reglaj cu encoder

Am testat functionarea unui radio FM cu modul TEA5767 (proaspat sosite) cu un arduino pro-mini, cu afisare pe TFT 1,44" 128x128 (la fe...