-
Thread
LVDS Clock am Artix7
[get_ports CLK_AD9508_OUT3n] set_property IOSTANDARD DIFF_SSTL15 [get_ports CLK_AD9508_OUT3p] set_property IOSTANDARD DIFF_SSTL15 [get_ports CLK_AD9508_OUT3n] Da ist auch gleich die erste Frage: DIFF_SSTL15 habe
performance (FALSE) setting for referenced I/O standards IOSTANDARD => "DIFF_SSTL15") port map ( O => CLK_AD9508_OUT3, -- Clock buffer output I => CLK_AD9508_OUT3p, -- Diff_p clock buffer input (connect directly to top-level port) IB => CLK_AD9508_OUT3n -- Diff_n clock buffer input (connect directly to top-level
-
Thread
LVDS Clock at Artix7?.
Figure 90 Page 33. In the FPGA I have the following: In XDC: ## Clock signal Sch name = CLK_AD9508_OUT3 set_property PACKAGE_PIN G4 [get_ports CLK_AD9508_OUT3p] set_property PACKAGE_PIN F4 [get_ports CLK_AD9508_OUT3n] set_property IOSTANDARD DIFF_SSTL15 [get_ports CLK_AD9508_OUT3p] set_property
port) );[/vhdl] And in the .xdc File: [code]set_property PACKAGE_PIN G4 [get_ports CLK_AD9508_OUT3p] set_property PACKAGE_PIN F4 [get_ports CLK_AD9508_OUT3n] set_property IOSTANDARD LVDS_25 [get_ports CLK_AD9508_OUT3p] set_property IOSTANDARD LVDS_25 [get_ports CLK_AD9508_OUT3n][/code]
-
Thread
DAC macht seltsame Stufen.
jeweils ein THS3215. Den Takt bekommt der DAC schön aus einem Taktteiler, einem AD9508 https://www.analog.com/media/en/technical-documentation/data-sheets/AD9508.pdf . Der DAC liefert dann selber einen Takt DCO an den FPGA und mit diesem Takt werden Samplewerte aus einer großen Sinustabelle
Gustl B. schrieb im Beitrag #5849428: > Wenn ich den Takt langsamer mache im AD9508 bleiben die Stufen, werden > aber eben auch länger. Daraus folgere ich, dass es kein Timingproblem > ist. In welchen Bereich läuft denn die Taktung bei deiner Scope-Aufnahme. Sind es die 25MHz
-
Thread
Vivado Simulation
etwas spezifizieren? "Hardware Strom geben" heisst hier ein gleichzeitiges Power-Up von FPGA und dem AD9508? Ebenso "Strom wegnehmen", ist da auch das gesamte System gemeint oder nur der FPGA? "Muell schreiben" bedeutet hier daten vom FPGA zum AD9508? Dann hat das nicht unbedingt etwas mit dem AD9508
Stellen. Das Problem ist jetzt gefixt, ich warte nach dem FPGA Boote kurz, währenddessen bekommt der AD9508 einen Reset und nach dem Reset geht es mit dem SPI los. Die Register werden jetzt einzeln nacheinander beschrieben und wieder gelesen. Dazu musste ich aber für die Simulation den AD9508 zu einem
-
Thread
Clock Fan-out buffer
bis wenig Ahnung, aber ich würde irgendetwas differentielles verwenden wie LVDS. Ich werde band den AD9508 https://www.analog.com/media/en/technical-documentation/data-sheets/AD9508.pdf verwenden. Da kommt ein LVDS Oszillator ran und die Ausgänge gehen an FPGA und alle weiteren Bausteine die einen Takt
noch die Phase einstellen und der kann auch CMOS wenn man es denn braucht. Edit: Du kannst den AD9508 natürlich auch mit einem Takt aus dem FPGA füttern und die Ausgänge dann als LVDS/CMOS weiterreichen. Und man kann den Stein auch mit einem CMOS Takt füttern, also ein FPGA Pin reicht. Das SPI muss
-
Thread
ADC CNV Jitterfrei - Schaltung
Rauscharmer LDO, weder beim Si-Clk noch beim AD9508, oder habe ich das übersehen? Mit der VCC wo alles andere auch dran baumelt, wirst Du nicht mal im Ansatz an die angegeben Daten kommen. Schau mal ins Datenblatt bzw. im Schaltplan zum Eval-Kit vom AD9508, die verbauen da nicht ohne Grund so einen µV-RMS-Low-Noise-LDO. :) Zum Jitter wurde in den anderen Beiträgen ja eigentlich schon alles gesagt, bei deinen geforderten Bit-breiten und Frequenzen
-
Thread
MAX10 SC nur mit 3.3V Versorgt differentieller HSTL 1.8V Input?
oder ... einen festen Taktgeber und dahinter einen programmierbaren Taktbuffer mit Teiler wie den AD9508? Und dann gibt es echt viele Bauteile die Differentiell nach LVCMOS wandeln. Auch Taktbuffer. Und das ohne viel zusätzlichen Jitter.
#7822632: > einen festen Taktgeber und dahinter einen > programmierbaren Taktbuffer mit Teiler wie den AD9508? Nun dies wäre auch eine Möglichkeit, zusätzlich jitter cleaner etc. Aber auch unsauber - aber halt an einer anderen Stelle als mit dem AD9912. Gustl B. schrieb im Beitrag #7822632: > Und
-
Thread
Xilinx Gigabit Transceiver als Frequenzteiler und PPL
ob zu den 500€ noch 9€ dazukommen oder nicht ist doch nicht kriegsentscheidend?! Ich verwende den AD9508, der kostet sogar etwas weniger.
haben, sondern ihn in Messpausen fortlaufend kalibrieren (nicht justieren). > Ich verwende den AD9508, der kostet sogar etwas weniger. Vielen Dank für den Tipp. Der Baustein ist durchaus interessant. Mein derzeitiger Favorit wäre ansonsten der HMC988 von Hittite/AD.
-
Thread
Korg Drehpotentiometer mit Folienpotentiometer "ersetzen" bzw zusätzlich Steuern
man mit einem µController auch einfach lösen. Man hängt den Touch mit seinen 3 Anschlüssen an die AD-Wandlereingänge eines Mega48, sagen wir mal. Der Wird aus der Referenz mit versorgt. Dann hängt am Mega noch ein R2R-Netzwerk als AD-Wandler. Ablaufprogramm in Pseudo-Code ist z.B. folgender: [pre
Ende Führe_Wandlung_aus: Beginn HI hart auf V+ ziehen. Pullup an WP ausmachen. Wandlung am AD anstoßen. Auf AD-Ergebnis warten. (Mehrere AD-Wandlungen in einem puffer zusammenaddiert und nachher durch die Anzahl geteilt bringen eine Mittelung ->weniger Rauschen) AD-Ergebnis auf R2R-DA augeben
-
Thread
Zeit problem bei schleifen
from stack +00000070: 91DF POP R29 Pop register from stack +00000071: 9508 RET Subroutine return @00000072: funktion ---- test.c --------------------------------------------------------------------------------------- 5: { +00000072:
equal 27: } +0000008A: E081 LDI R24,0x01 Load immediate +0000008B: 9508 RET Subroutine return +0000008C: 94F8 CLI Global Interrupt Disable +0000008D: CFFF RJMP PC-0x0000 Relative jump +0000008E
-
Thread
Takten eines schnellen ADCs
ich finde. Bei langsameren ADCs hatte ich bisher einen Taktgeber und dann einen Taktteiler wie der AD9508 verwenden, aber der kann nix schnelleres als LVDS. Und wenn ich kein LVDS verwenden kann müsste ich ja LVPECL verwenden wie ich das sehe. Da brauchen dann so Taktteiler ICs richtig viel Strom, meistens
genug bleibt bei hohen Frequenzen und wenn nicht dann bekommt man eben mehr Jitter drauf. Beim AD9508 kann man den LVDS Strom einstellen: [code]These bits determine the OUT0 driver mode 000 = LVDS 0.5 × 3.5 mA (1/2 amplitude) 001 = LVDS 0.75 × 3.5 mA (3/4 amplitude) 010 = LVDS 1 × 3.5 mA
-
Thread
Wieso will das EEPROM nicht?
+00000064: 83BE STD Y+6,R27 Store indirect with displacement +00000065: 83AD STD Y+5,R26 Store indirect with displacement +00000066: 838C STD Y+4,R24 Store indirect with displacement 199: File not found +00000067: 818C LDD
I/O register +00000093: BE0F OUT 0x3F,R0 Out to I/O location +00000094: 9508 RET Subroutine return +00000095: CFFF RJMP PC-0x0000 Relative jump +00000096: 00FF ??? Data or unknown opcode
-
Thread
Grundlagen zur parallelen Verarbeitung von hohen Datenmengen
MSps oder mehr. Die Auflösung ist relativ egal, daher werde ich 8 Bits verwenden. Ich dachte an den AD9484BCPZ-500 (500 MSps, 500 MHz LVDS SDR) oder den HMCAD1511 (1 GSps, 500 MHz DDR LVDS). Ich bekomme also 500 MByte/s oder mehr ins FPGA, kann die Logik aber vermutlich nicht mit 500 MHz takten. Möchte
in einen Taktverteiler wie den https://www.analog.com/media/en/technical-documentation/data-sheets/AD9508.pdf . Wobei ich den Sampletakt ja sowieso nicht im FPGA brauchen kann, das FPGA bekommt dann vom ADC den FrameClock (1/8 Fsample) und den halben Sampletakt für den SerDes. Das mit dem AD9508 wäre
-
Thread
Scannerkopf verwenden, aber wie?
Auf der Platine befindet sich ein SCSI-Treiberbaustein mit der bezeichnung: Z0538010VSC SCSI 9508 ZZ Dann ist noch ein IC mit der Bezeichnung 7406 an den Schnittstellen. Wenn jemand einen Treiber für XP findet, kann ich das ja versuchen. Grüße Gzah
Such mal auf der Hauptplatine, ob du ein IC WM81xx finden kannst, das ist der CCD Controller mit AD Wandler usw. Es kann aber auch sein, dass das ganze mit einem ASIC gelöst wurde. Ist auf der Platine ein 8051 uC und ein EPROM von Winbond ?
-
Thread
Problem beim SRAM testen
to data space 271: Ram_Check(iTempRamAdress, (iTempRamAdress + iRam_CheckAnzahl)); +000004AD: 91800116 LDS R24,0x0116 Load direct from data space +000004AF: 91900117 LDS R25,0x0117 Load direct from data space +000004B1: 91200118 LDS R18,0x0118 Load
+000004D5: F3D8 BRCS PC-0x04 Branch if carry set 298: } +000004D6: 9508 RET Subroutine return [/avrasm] Warum ist das so extrem seltsam umgsetzt? Es sieht für mich so aus, alsob die Befehle in zum Teil falscher Reihenfolge auftreten oder
-
Thread
Stackprobleme Mega2560
register on stack +000001AC: 93DF PUSH R29 Push register on stack +000001AD: 93CF PUSH R28 Push register on stack [/code] Im Disassemblerwindow sieht der Return-Teil so aus (13x pop?!) [code] : for(adr_count = 1; adr_count <= 7; adr_count
from stack +000002EE: 90AF POP R10 Pop register from stack +000002EF: 9508 RET Subroutine return [/code] Diverse Optimierungsparameter hab ich durchprobiert, immer das selbe Problem. Auffällig ist, dass der Stackpointer zum Zeitpunkt des
-
Thread
GCC Optimierung?
immediate with carry +000001AC: 0F2C ADD R18,R28 Add without carry +000001AD: 1F3D ADC R19,R29 Add with carry +000001AE: 91E00472 LDS R30,0x0472 Load direct from data space +000001B0: 91F00473 LDS R31,0x0473 Load direct from
from stack +000001C3: 910F POP R16 Pop register from stack +000001C4: 9508 RET Subroutine return[/code]
-
Thread
Fehler in AVR-GCC 3.4.6
from stack +00001296: 902F POP R2 Pop register from stack +00001297: 9508 RET Subroutine return [/avrasm] Man beachte, 00001170 bis 00001172 und 00001281 bis 00001285. Hier wird der Stack "manipuliert" und genau dieser Part ist im Assembler
register pair +000012AC: 8188 LDD R24,Y+0 Load indirect with displacement +000012AD: 8199 LDD R25,Y+1 Load indirect with displacement +000012AE: 2B89 OR R24,R25 Logical OR +000012AF: F409 BRNE PC+0x02 Branch if not
-
Thread
AVR GCC switch statement springt wirr
R17 Copy register +000074AC: E090 LDI R25,0x00 Load immediate +000074AD: 91200D1D LDS R18,0x0D1D Load direct from data space +000074AF: 91300D1E LDS R19,0x0D1E Load direct from data space +000074B1: 2B82 OR R24,R18 Logical
from stack +00007516: 90BF POP R11 Pop register from stack +00007517: 9508 RET Subroutine return[/pre]
-
Thread
[C-Code Optimierung] RDM responder
Subtract immediate +000000AC: F798 BRCC PC-0x0C Branch if carry cleared +000000AD: 01C9 MOVW R24,R18 Copy register pair +000000AE: 2B23 OR R18,R19 Logical OR +000000AF: F011 BREQ PC+0x03 Branch if equal +000000B0:
immediate +000000B1: E090 LDI R25,0x00 Load immediate 170: } +000000B2: 9508 RET Subroutine return [/c] Hier der Aufruf: [c] if((compare(&(rdm->Data[0]), DevID) != 1) && (compare(&(rdm->Data[6]), DevID) != 2)) +00000229: E660 LDI
-
Thread
Jedermann/Piraten/Amateur-funk
sich ONLINE verabreden müsste auf den UNTEREN Kanälen..meinst Du nicht? Führt das Funken irgendwie ad absurdum
die Hustler CB "Klemmstock" Antenne? https://funkbasis.de/download/file.php?id=16612&sid=7489ce74ce9508a1083140696ff1f5ba Oder hat noch ein "Nasa" Mikrofon?
-
Thread
Bitshift schlecht implementiert?
R26 Copy register +000002AC: 2FAB MOV R26,R27 Copy register +000002AD: 27BB CLR R27 Clear Register +000002AE: 940E01EE CALL 0x000001EE Call subroutine 102: rf_sendspi((uint8_t)RF_MyAddress); +000002B0: 9180037E LDS
from stack +000002CC: 90EF POP R14 Pop register from stack +000002CD: 9508 RET Subroutine return [/avrasm] Ganz toll finde ich da besonders die Schleife bei der Verschiebung um 20 Bit, die durch den folgenden Cast ja ohne Weiteres entfallen