|

楼主 |
发表于 2024-7-10 13:15:51
|
显示全部楼层
- import machine
- from machine import UART, Pin, Timer, ADC, PWM
- class TFreqGen():
- #410 5 82 41 164
- freq=0 #发生频率
- k=5 #倍频
- en=0
- i=0
- tim=Timer()
- def __init__(self):#Q0 I1
- self.pq=Pin(0,Pin.OUT)#Q
- self.pi=Pin(1,Pin.OUT)#I
- def setFreq(self,v):
- self.freq=v
- def write(self,this):
- if self.i<4:
- self.i+=1
- else:
- self.i=0
- if self.i==0:
- self.pq.on()
- elif self.i==1:
- self.pi.on()
- elif self.i==2:
- self.pq.off()
- else:
- self.pi.off()
- def start(self):
- self.en=1
- self.tim.init(tick_hz=int(self.freq*2/self.k), period=1, mode=Timer.PERIODIC, callback=self.write)
- def stop(self):
- self.en=0
- self.tim.deinit()
- class TAdDa():
- en=0
- def __init__(self):
- ai=ADC(Pin(26))
- aq=ADC(Pin(27))
- amic=ADC(Pin(28))
- def readIQRX(self): #I26 Q27
- ai.read_u16()
- aq.read_u16()
- def readMic(self): #MIC28
- mic.read_u16()
-
- machine.freq(200000000) #超频200M
- print("curfreq",machine.freq())
- fg=TFreqGen()
- fg.freq=409.9
- fg.start()
- # fg.stop()
复制代码
代码是Timer产生90度相位的,IQ驱动信号,5次谐波差不多能到410MHz
108MHz的话,基本上3次谐波足够了
ADC采集信号,解调还没写,代码待测试 |
|