-
Thread
Der vhdl-Schnipsel-Anfängerfragen Thread
> HW wird das Spartan3E-Dev Board mit dem ADC von Linear. Das hat Dual-Edge FFs nur in den IO-Zellen. Du kannst sowas nicht machen: [vhdl] if (cs = '0') then aclk <= '0'; counter := 0; elsif (run = '1') then
verzeiht, aber ich habe Eure Erfahrung net. Insofern habe ich auch keine Ahnung, wie man sonst SPI-ADCs ansteuern würde. Freiwillig würde ich mir kein SPI-ADC antun, insbesondere nicht in Zusammenhang mit einem FPGA - aber es ist nunmal drauf, dann macht es sicher auch Sinn, es zu verwenden ;)
-
Thread
Signale verzögern IDELAY
, ich habe eine generelle Frage, aber auch eine konkrete Anwendung. Das ist eine Platine mit ADC und SPI, zwischen der Platine und dem FPGA sitzt ein Digitalisolator. Der verzögert die Signale um ein paar ns. Jetzt geht also die SPI_CLK und das SPI_CONV vom FPGA zum ADC und die SPI_DO gehen vom
. Hast du mal die Typenbezeichnung des ADC und des Isolators? Spricht was dagegen, den SPI Takt langsamer zu machen?
-
Thread
VHDL Debuging
dafür die praktischen Beispiele. Naja, ganz einfaches Beispiel: Du hast auf deinem Design einen SPI-Master, der einen externen Mehrkanal-ADC zyklisch einlesen soll. Der SPI-Master hat als Eingaenge eine Clock, evtl. einen Reset, dann die SPI-Signale nCS, SCK, MOSI, MISO. Er muss deinem Design natuerlich auch sowas wie adc0_wert, adc1_wert, adc0_valid, adc1_valid 'nach oben' durchreichen. Diese SPI-Master Component kommt in eine TB rein. Eine weitere Component in der TB ist dein externer ADC. Der wird mit deinem SPI-Master
-
Thread
ADC liefert nur gerade Werte.
Inhalt als fertiges Sample übernommen. Soweit so gut. Jetzt bekomme ich aber nur gerade Werte vom ADC. Im Datenblatt steht Zweierkomplement, in VHDL wandele ich das so um: [vhdl]output <= std_logic_vector(unsigned(not(input)) +1);[/vhdl] Habt ihr irgendeine Idee was falsch laufen könnte? Wenn ich Statt der ADC-Werte einen Zähler im FPGA verwende und dessen Wert zum PC schicke funktioniert das wunderbar. Was ich auch nicht verstehe ist wieso [vhdl]output <= std_logic_vector(to_unsigned(to_integer(signed
-
Thread
Ist folgende Aussage zu FPGA & VHDL korrekt?
Was möchteste machen, ne analoge Spannung via ADC diskretieren und die digitalisierten Werte vom ADC per SPI abholen? Sollte gehen... ansonsten versteh ich die Frage nicht. Mal mal auf, was du eigentlich meinst.
Damit diese Emulation des ADC samt Multiplexer halbwegs realitätstreu erfolgt, muss natürlich der ADC bzw. sein Registermodell ordentlich nachgebildet werden, ebenso auch das Timing bzw. die SPI-Betriebsart. Es hängt ganz empfindlich
-
Thread
Frage zu DCM und "schrägem" Takt
den Zugriff regeln. Das SPI-Modul bezieht seinen Takt mal vom DAC-, mal vom ADC- und mal vom Verstärkermodul...
verfügbar, wenn man das Steinchen im Master-Modus betreibt. Master-Modus heißt für mich, dass der ADC den SPI-Takt erzeugt (deshalb habe ich ihn als gegeben eingestuft). Selbst wenn ich den ADC im Slave-Modus betreiben will, ist die Spanne, die mein SPI-Takt variieren darf nicht sehr groß, denn der
-
Thread
Wittig(welec) DSO W20xxA Hardware
Anpassung des derzeitigen VHDL Designs- ADC Kalibrierung notwendig) Gruß, brunowe
Hallo, @Alfsch: Das timing der einzelnen ADC und die Realisierung in VHDL ist recht komplex. Es lässt sich dennoch sagen, das die einzelnen ADC's mit einer Freq. von 250MHz sampeln (bei 1GSa/s- wie aus Guidos Foto oben ersichtlich). In der
-
Thread
Sinc3 Filter von VHDL in Bit Logik umsetzen
Hallo, Aktuell bastel ich gerade an einer Schaltung mit einem AMC3306 ADC, mein erster Kontakt zu einem Sigma-Delta ADC. Mein Problem ist das ich keinen blassen Schimmer von VHDL, FPGA und dem nötigen Filter habe. Mit hilfe der Bilder Sinc3.png (https://www.ti.com/lit/an
Also braeuchtest du irgendeine > Hardwareunterstuetzung an deinem ESP, damit du nicht jedes Bit vom ADC > einzeln per Software reinbitten musst. Also irgendsowas wie ein > I2S/SPI/USART Hardwareinterface, was sich entsprechend zurechtbiegen > laesst. Vorher musst du dir ueber Filteranforderungen und
-
Thread
FPGA Oszilloskop mit VGA Ausgang
die folgenden Interfaces zur Verfügung: - DAC-Schnittsteller für Gleichspannungsverschiebung - SPI zur Konfiguration des VGA - digitale I/Os zur Umschaltungen des Eingangsspannungsteilers - differentiellen Ausgänge zu den ADC's (SMA) - analoger Eingang zum Einstellen von Vcm (SMA) - differentielle
mal nicht wirklich viel. Juergen Schuhmacher schrieb im Beitrag #2352012: > Was willst Du da per SPI einstellen? Bandbreitenbegrenzung, Verstärkung (genau genommen Signaldämpfung) und abschalten was nicht gebraucht wird. Letztlich geht es doch um die optimale Aussteuerung des ADC, schließlich will
-
Thread
ADC Daten zwischenspeichern
Projekt benötige ich aber noch mehr I/Os - gibt es also eine Lösung die Daten intern zu speichern? [vhdl] library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity adc_spi is Port ( clk50 : in STD_LOGIC; start_conv : in STD_LOGIC
'); SCK : out STD_LOGIC); end adc_spi; architecture Behavioral of adc_spi is type state_type is (IDLE, START,HI,LO,FINE); signal next_state, state : state_type; signal counter : integer range 0 to 35 :=0; signal
-
Thread
FPGA mit SPI oder ADC
aber laut Spec weder ADC/DAC noch einen freien SPI Bus. Wäre für jegliche Tipps dankbar! Grüße Chris
und ein Lauflicht... Ein SPI-Interface wird dann in ein paar Zeilen selber geschrieben. Hier z.B. in VHDL: http://www.lothar-miller.de/s9y/categories/45-SPI-Master http://www.lothar-miller.de/s9y/categories/26-SPI-Slave
-
Thread
AD Converter Timing Problems
Ich denke, dass dieses an der vom Hersteller verwendeten Technologie liegt. D.h. beim vorliegenden ADC hat man 2 x 8 Kanäle. Jeder Kanal ist gleich ausgeführt. Im VHDL Design dementsprechend auch. 4) Ja habe ich zur Verfügung. Sieht alles brauchbar aus. (Anzahl der Bits, welche in einen Frame passen
Das hier ist auch Quatsch [vhdl] CLK => FCO, -- for testing 3xDCO (3 x 4 bit blocks = 12 bit) CLKB => Low, CLKDIV => DCO, -- adc data clock (max. 390 MHz) OCLK
-
Thread
Finite-State-Machine stürzt ab
) ("000000000000"), -- Schiebetakt '0' ("011000000100"), -- For so häufig wie in "Anzahl ADC" definiert --AD7192 INIT --( ("001100000000"), -- SPI Wait Ready ("000100001000"), -- SPI send "(1<<RS0)" ("000100001000"), -- SPI send "(1<<CLK1)" ("000100000000"), --
ADC" definiert --( ("001100000000"), -- SPI Wait Ready ("000100010000"), -- SPI send "(1<<RS1)" ("000100000000"), -- SPI send "0" ("000100000001"), -- SPI send "(1<<CH0)" (
-
Thread
VHDL Eingang einen Wert zuweisen
entstellt werden, aber die verschwinden sowieso. Das mit den Tastern ist erstmal dazu da dass ich in vhdl reinkomme Im nächsten Schritt soll ein SPi Master implementiert werden mit dem ich dann einen Adc auslese. Das uart Modul habe ich gemacht um mir die Werte später auf dem Rechner anzeigen zu lassen
unbedeutenden Wissensvorsprung vor dir. Moppel schrieb im Beitrag #3690702: > Im nächsten Schritt soll ein SPi Master implementiert werden mit dem ich > dann einen Adc auslese. Als kleiner Denkanstoss: http://www.lothar-miller.de/s9y/categories/45-SPI-Master Dort finden sich nach kurzer Suche auch zwei
-
Thread
Problem mit der Flankenerkennung
50mhz. im moment sieht mein Lösungsansatz so aus, dass ich mithilfe der SPartan6 PLL komponentne einen SPi Takt von 62,5 und einen Systemtakt von 125Mhz generiere. mit den 62,5 erreiche ich die 1MSPS des ADc und die 125 werde ich dann zum verarbeiten der Daten verwenden. Würde eurer meinung etwas gegen
moment sieht mein > Lösungsansatz so aus, dass ich mithilfe der SPartan6 PLL komponentne > einen SPi Takt von 62,5 und einen Systemtakt von 125Mhz generiere. mit > den 62,5 erreiche ich die 1MSPS des ADc und die 125 werde ich dann zum > verarbeiten der Daten verwenden. > Würde eurer meinung etwas
-
Thread
HMCAD1520 FMC Eval Board
DDR) b.) FrameClock ( 125Mhz bei 8 Bit Daten) c.) 8 Datenleitungen (2 pro Analog Kanal). d.) ein Spi (Rück) Kanal zur Steuerung des ADC. Vereinfacht braucht man nur 1 seriellen Datenkanal zu betrachten, die Zugehörigkeit zu den Modi und Analog Kanälen kann ich nach der DeSerialisierung über Multiplexer
b.) FrameClock ( 125Mhz bei 8 Bit Daten) > c.) 8 Datenleitungen (2 pro Analog Kanal). > d.) ein Spi (Rück) Kanal zur Steuerung des ADC. Du kannst doch 1:4 Serialisieren. dann müsstes du bei 250Mhz Clock im FLGA sein. und dann mit Nachbehandlungslogik. Bernd hatte es auch schon vorgeschlagen.
-
Thread
Hilfe bei VHDL-Modul für ADC128S022 im DE0-Nano Board
constant drivers for net "TX_REG[13]" at ADC_SPI.vhd(111) Error (10028): Can't resolve multiple constant drivers for net "TX_REG[12]" at ADC_SPI.vhd(111) Error (10028): Can't resolve multiple constant drivers for net "TX_REG[11]" at ADC_SPI.vhd
(111) Error (10028): Can't resolve multiple constant drivers for net "TX_REG[7]" at ADC_SPI.vhd(111) Error (10028): Can't resolve multiple constant drivers for net "TX_REG[6]" at ADC_SPI.vhd(111) Error (10028): Can't resolve multiple constant drivers for net "TX_REG[5]" at ADC_SPI.vhd
-
Thread
SPI und Spartan3
Hallo Dirk, ich möchte über einen spi-fähigen ADC Werte einlesen, verarbeiten und dann wieder über einen spi-fähigen DAC ausgeben. D. h. ich bräuchte einen MASTER-Code. Aber ich seh mir trotzem den "Logic Analyzer bauen"-Thread an.
und sck_out)? Welchen Clock nimmst du für was? Leider habe ich noch mehr Fragen! Was macht spi_sm? Was besagt die Zeile data_int <= (others => '0'); in output_sr? Was sind wordlength, DORD und load PS: SPI bzw. VHDL entwickelt sich immer mehr zum Alptraum für
-
Thread
DA Wandlung mit Spartan 3AN Board
Im einfachsten Fall so etwa: [vhdl] : : --Inputs signal CLK_50MHZ : std_logic := '0'; signal btn_south : std_logic := '1'; --Outputs signal SPI_SCK : std_logic; signal SPI_MOSI : std_logic; signal
<= not CLK_50MHz after CLK_50MHz_period/2; btn_south <= '0' after 100 ns; process (SPI_SCK,SPI_MOSI,DAC_CS) begin if (DAC_CS = '1') then dacout <= sr(15 downto 8); else if rising_edge(SPI_SCK) then sr <= sr(22 downto 0) & SPI_MOSI;
-
Thread
VHDL Einsteigerfragen
eigentlich grundsätzlich nicht gemacht sind. Sprich, es würde darauf hinauslaufen, dass ihr einen extrenen ADC benötigt und diesen dann vom FPGA aus z.B. per SPI ansprecht. Wobei ihr dann natürlich auch das SPI erstmal im FPGA "bauen" müsst. Also wie du sieht: Alles viel viel umständlicher, als wenn man es
euch, ob das so richtig ist. [vhdl] entity main is Port ( ASI_ASIC_IN_DUTY : in STD_LOGIC_VECTOR (1 downto 0); ADC_PARALLEL_IN_OUT: inout STD_LOGIC_VECTOR (7 downto 0); ADC_CSTART : out STD_LOGIC
-
Thread
microCore, ein Echtzeitprozessor in VHDL für FPGAs
Resourcenverwaltung an die Hardware delegieren kann. Inklusive MUTEX (MUTual EXclusion). Nehmen wir mal den ADC128S102, ein ADC mit SPI-Interface und vorgelagertem 8-Kanal MUX. Den kann man in einem Multitaskingsystem in uForth so ansprechen: [code] <kanalnummer> ADC ! ADC @ Sample ! das wäre in C:
blub schrieb im Beitrag #6589741: > -FPGA bereits fertig programmiert (schlüsselfertig) > -ADC, ca 10 bit, 10kS/s, 4 Kanäle > -ca 32k RAM/ROM > -ca 10 I/O auf 3.3V oder 5V > -ca. 2x PWM, 2x SPI, 2x I2C > -(special) 2x EXCEPTION/PAUSE-Eingänge, 2x Interrupt-Ein. > -Spannungsversorgung und
-
Thread
Ansteuerung DA-Wandler Spartan 3 Starter Kit
DA-Wandlers kann ich ja alles mittels Simulation überprüfen. Danach geht es nur per Hardware (Oszi). [vhdl] library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.sine_package.all; entity adc_out is port ( clock : in std_logic; SPI_SCK : out std_logic
kannst Du erstmal solange simulieren/rumnspielen, bis dein "DA-Wandler" was erkennt. Duke [vhdl] entity dac_spi is port ( SPI_SCK : in std_logic; SPI_MOSI : in std_logic; DAC_CLR : in std_logic; DAC_CS : in std_logic ); end entity dac_spi;
-
Thread
SPI in VHDL, unerklärliches Verhalten
Hallo, ich möchte einen ADC vom Typ MCP3008 per SPI ansprechen. Dazu benutze ich folgenden Prozess, um eine Kommunikation zu erreichen, wie sie in FIGURE 6.1 auf Seite 21 des Datenblatts zu sehen ist: [vhdl] process(fxclk_signal
wie ein Template einfach aus dem Kopf holen zu können. Der vollständige MCP3008/SPI VHDL Code ist zu finden hier: https://www.micro-nova.com/resources/ unter "Tutorials & Example Code", "On-board ADC Reference Design" (ich wollte die ZIP-Datei jetzt nicht einfach so verlinken).
-
Thread
VHDL Konfiguration ADC
Hallo, ich habe einen MAX V Baustein von Altera mit dem ich einen ADC mittels SPI ansteuere. Der ADC muss am Anfang konfiguriert werden. Dies geschieht über 16 Bits (Bsp. 0101011111111111). Die konfiguration soll die Logik übernehmen. Hierzu muss an der SDO Leitung dieser
hier im Forum um. Dieses Problem taucht /laufend/ auf. http://www.mikrocontroller.net/search?query=spi+vhdl+adc&forums[]=9&sort_by_date=1 Thomas Ulrich schrieb im Beitrag #2667225: > vektor(14 downto 0) <= vektor (15 downto 1); Damit wäre das MSB speichernd und du hättest implizit einen arithmetischen
-
Thread
Einen Softcore (AVR) an andere FPGA anpassen?
die ganzen Module (Usart, Timer, PIOs, SPI,.. ) an den Datenbus gehangen?
das > Ergebnis geht dann als Lese-Daten-Bus zur CPU zurück. Das würde ja zu dem hier passen: [vhdl] bus_out [cnt_add_bits] = | tmp_busses_bits; [/vhdl]
-
Thread
Allererster Versuch - Frequenzteiler
Bedeutung ist: Anderes Thema -> anderer Thead würde ich vorziehen. Meine Probleme liegen eher nicht bei SPI sondern bei der Umsetzung von "irgendwas" in VHDL. Es wäre wohl sinnvoll wenn es hier bei diesem Thema bleibt, denn ich werde sicher noch ein paar weitere grundlegende Fragen haben. Gruß, Norbert
Moin Norbert, SPI ist sicher nicht mein Problem, dafür habe ich schon zu viele LCD's, SD Karten, ADC's, etc. über diesen erschlossen. ES sollte nur ein Beispiel sein. Ich mach meinen eigenen Thread auf. Trotzdem viel
-
Thread
MAX1000 Erfahrungen
clkCounter( 22 ); -- output the highest bit to the led END IF; END PROCESS; END logic; [/vhdl]
:= 'X'; -- reset_n pll_clk : out std_logic -- clk ); end component unsaved; [/vhdl]
-
Thread
ADC IP für AD7961 funktioniert nach synthese nicht
Takt: Du könntest auch bei deinen 100 MHz DDR IOs verwenden, dann bekommst du auch zumindest 100 MHz SPI hin. Für > 3 MSample/s würde das genügen.
Welchen Baustein verwendest du denn? Auch für den AD7961 steht im Datenblatt typischerweise 250 MHz SPI Takt. Ich sehe gerade, dass ich das auch nicht richtig gemacht habe, ich verwende einen SPI Takt von 125 MHz. Funktioniert trotzdem aber wohl nicht so gut weil die Pause nicht so lang ist. Korrekt
-
Thread
DDS Compiler und Phase Increment
Hallo Kurt, meintes du es vielleicht so ? [vhdl] library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity adc_out is port ( clock : in std_logic; -- 50 MHz Clock SPI_SCK : out std_logic; SPI_MOSI : out std_logic; DAC_CLR : out std_logic; DAC_CS : out std_logic; led : out std_logic_vector(7 downto 0) ); end entity adc_out; architecture rtl
-
Thread
Erzeugen mehrerer Instanzen mit Generate; so richtig?
verschiedenen SPI-Schnittstellen echte Namen statt Nummern geben willst? [vhdl] signal adc_spi_out : spi_out_t; signal dac_spi_out : spi_out_t; signal gain_spi_out : spi_out_t; [/vhdl] > Vor allem noch ein
in einem gemeinsamen Package. - Bei mir gibt es zu jedem Typ noch eine default-Konstante ala: [vhdl] constant default_spi_out_c : spi_out_t := SS => '0', SCLK => '0', MOSI => '0'); [/vhdl] Ich habe dadurch nie Probleme mit nicht initialisierten Signalen, da bei der Initialisierung
-
Thread
Grundsatzfrage zu neuen Designstrategien (SoC/VHDL)
damit fast schon die USB-Welt durch Anbindung an einen FT232. Wenn UART zu kompliziert ist, dann über SPI auf einen (externen) µC, der seinerseits eine UART bedient. An fertigen Komponenten werden eingesetzt: - BlockRAM: klar kann man den auch direkt in VHDL beschreiben, aber dann muss ich auch (auswendig
schaffen. Diese kosten aber auch Zeit und muss gepflegt und dokumentiert werden. Ich hatte da mal ein SPI Modul angefangen. http://www.dossmatik.de/vhdl/spimaster.pdf Meine Grundidee ist eine Softcore-CPU zu nutzen und den größten Teil der Programmierung in C auszulagern. Das ist den meisten Programmieren
-
Thread
LVDS Clock at Artix7?.
To configure the Clockdivider AD9508 i use a carefully crafted el'cheapo SPIish interface: [vhdl]library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; entity AD9508_SPI is Port( clk: in std_logic; start: in std_logic; data: in std_logic_vector(8*6*4-1 downto 0);
when counter < 1663 else '1'; nCS <= '0' when s_control = s_send_conf else '1'; end Behavioral;[/vhdl] clk: in std_logic; that is a 100 MHz Clock in the FPGA start: in std_logic; is a start signal, it starts the SPI action data: in std_logic_vector(8*6*4-1 downto 0); are the 6*4 Bytes, Registers
-
Thread
Sinus Referenz 100 kHz
geht eben NICHT direkt wieder raus. Denn raus kommt ein 1 MHz Takt (maximal) für den CNV Eingang am ADC. Die SCK ist schnell, aber das ist nur die Clock für das SPI Interface, da ist Jitter egal.
können ruhig mehr Jitter haben. Ob der SPI oder die Logik im FPGA etwas jittert, macht ja an der Auflösung des ADC nix mehr. Muss der SPI-Takt eigentlich synchron zum ADC-Takt sein? Bei einem µC statt FPGA müsstest du wahrscheinlich eine
-
Thread
CRUVI - ist das hier um zu bleiben?
GBit/s. - Ist spezifiziert wie viel Strom ein Modul ziehen darf? - Ist für den LS Connector eine SPI Belegung spezifiziert? Gerne auch mit mehrenen SDOs falls man wie ich einen ADC IC mit mehreren Kanälen verwenden will. Und eine Anmerkung: Beim LS Modul finde ich die Anordnung bezüglich der Richtung
Analogzeug am anderen Ende der Platine haben. Naja. Andererseits, ich könnte auch meinen langsamen ADC der nur SPI verwendet ebenfalls mit einem CRUVI-HS Stecker anschließen. Warum auch nicht. Den schnellen ADC layoute ich gerade, und zwar für CRUVI-HS. Leon B. schrieb im Beitrag #6923712: > Hi
-
Thread
Softcore Erweiterung
ausgibt? So etwas müsste doch relativ "schnell" > realisierbar sein oder nicht? Du meinst ein ADC Interface oder? Ein ganzen ADC synthetisieren geht meines wissen ohne weiteres nicht!
du 1. einen Wandler 2. ein Interface, das den Wandler einliest. Du kannst 2. machen, z.B. über ein SPI-Interface, das dann vom Leon angesprochen wird. Das wäre eine hübsche Projektarbeit... > So etwas müsste doch relativ "schnell" realisierbar sein oder nicht? Kannst du schon "relativ" gut mit VHDL
-
Thread
Starten mit FPGAs, aber wie/womit genau?
ich mich, wie ich damit einfach das hinbekomme, was ein 10Zeiler beim µC ist. Beispielsweise einen ADC-Wert via SPI oder Parallel empfangen, den Spannungswert berechnen und dann als Zahl über ein VGA-Signal ausgeben. Irgendwas, was eben wirklich sequenziell abgearbeitet wird. Aber das wird bestimmt noch
einfach das hinbekomme, 2) Offenbar kannst Du Dir das nicht vorstellen. > Beispielsweise einen ADC-Wert via SPI oder > Parallel empfangen, den Spannungswert berechnen und dann als Zahl über > ein VGA-Signal ausgeben. Du brauchst: Eine Schaltung, die einen ADC ansteuert Eine Schaltung,
-
Thread
SPI Takt aus FSM
sie sich sogar. Ein ähnliches Problem hab ich aber noch bei einer AD Wandler Ansteuerung, auch SPI. Die erzeugt auch den Takt indem sie den FPGA Takt durch 2 teilt, allerdings damit bei der fallenden Flanke des SPI Takts der SDA vom ADC ausgelesen werden kann. Ein Prozess darf nicht auf die positive
" zu erzeugen. So etwa: [vhdl] signal gated_clock : STD_LOGIC; : case SPI_State when shift => gated_clock <= '1'; : end process; spiclk <= gated_clock and clk25; [/vhdl] Aber sowas macht
-
Thread
ARTY S7 Board, AD-Wandler,FPGA SPARTAN
-16.1.pdf ADC Sequencer . Start wait ... Stop ....get_result... VHDL Code .... https://www.embeddedrelated.com/showarticle/89.php How to Create ADC Design in MAX 10 Device Using Qsys Tool Gruss Holger.
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/archives/ug-m10-adc-16.1.pdf > ADC Sequencer . Start wait ... Stop ....get_result... > VHDL Code .... > https://www.embeddedrelated.com/showarticle/89.php > > How to Create ADC Design in MAX 10 Device Using Qsys
-
Thread
VHDL Komponente, mehrfach instanziieren aber unterschiedlich bedaten.
Hallo allerseits, ich bin bzgl. VHDL und Ausnutzung der Features eher konservativ unterwegs, haette da aber jetzt gerne mal ein Problem :o) Ich habe verschiedene SPI-Interfaces mit identischen Chips oder zumindest Protokoll-kompatiblen Chips, aber jeweils unterschiedlicher Topologie: * 2x ChipSelect mit 4-Kanal+AUX ADC * 2x ChipSelect mit 3-Kanal ADC * 4x ChipSelect mit 8-Kanal ADC Also, die SPI-Master-FSM ist eigentlich immer die gleiche, aber die Kommandosequenzen sind in den 3 Faellen halt unterschiedlich.
-
Thread
Anbindung FPGA an USB2.0/3.0
gesampelt werden, da die Phaseninformation benötigt wird. Ich plane im Moment dafür 4 separate 12 Bit ADC Wandler (SPI) zu nutzen. Es sieht nicht so aus, als ob es Mirkocontroller gibt, die genügend SPI Hardware und vorallendingen schnelles USB haben um das kontinuierlich zu bewerkstelligen. Theoretisch
glaube ich nicht ganz. Soweit ich das sehe gibt es in der PRU zwei Schieberegister, bleiben noch 2 SPI in Software übrig. Man müsste sehen das man das Timing der Schieberegister mit den Software SPIs synchronisiert bekommt? Bei den ADC die ich verwenden möchte muss das SPI dann mit 14 MHz laufen, da
-
Thread
6 Maschinen gleichzeitig Messen / Steuern (FPGA und Multiplexer)
konfus. Wozu möchtest du Multiplexer nutzen? Ich vermute, du meinst einen Analog-Digital-Wandler (ADC). Der ADC misst den Signalpegel, gibt ihn per Schnittstelle (z.B. SPI oder I2C) an den Controller (FPGA oder µC) weiter und der schickt das ganze dann per USB an den PC. TommyT schrieb im Beitrag
konfus. Wozu möchtest du Multiplexer nutzen? >Ich vermute, du meinst einen Analog-Digital-Wandler (ADC). Der ADC misst >den Signalpegel, gibt ihn per Schnittstelle (z.B. SPI oder I2C) an den >Controller (FPGA oder µC) weiter und der schickt das ganze dann per USB >an den PC. Oh okay. Da hab
-
Thread
HMCAD1511 Interface
Über Tips bin ich dankbar! Noch ein Nachtrag/Hinweis: Zuerst hatte ich einen Fehler in meinem SPI und habe statt 16 nur 15 Datenbits gesendet. Als Resultat wurde der ADC ziemlich heiß und hat nichts ausgegeben, also auch nicht LCLK und FCLK.
Ich musste noch die LCLK Phase ändern und den Takt um 1 nach vorne schieben. Insgesamt gebe ich als SPI diese 6 24 Bit Worte aus: x"310101" -- clk_div = 1, single channel x"3A0202" -- input 1 for all ADC2,1 x"3B0202" -- input 1 for all ADC4,3 x"420000" -- phase LCLK = 270° x"530010" -- no delay
-
Thread
Einsteigerfreundliches board für Roboter motion
Stefan S. schrieb im Beitrag #6633819: > Wäre ein adc so ein hardwarspezifisches Bauteil? Ic brauch das > mindestens um den Strom durch die Motoren zu messen. Der ADC wäre wiederum ein externes Modell / Teil der Testbench. Auch das kannst du natürlich
Stefan S. schrieb im Beitrag #6633819: > Wäre ein adc so ein hardwarspezifisches Bauteil? Ic brauch das > mindestens um den Strom durch die Motoren zu messen. Ein ADC *im* FPGA wäre evtl. so ein Bauteil. Allerdings kann man den meist auch einfach als
-
Thread
yC Programmierung vs. FPGA Programmierung
Es gab (oder gibt noch) MC mit eingebauten CPLDs, damit konnte man sich neue Schnittstellen(TWI, SPI, ADC usw) oder weitere Schnittstellen(weitere Timer) erstellen. Mit denen konnte ich damals den Unterschied sehr gut lernen.
Programmierung im herkömmlichen Sinn. Es wird ein Schaltplan entwickelt bzw. beschrieben, z.B. in VHDL.
-
Thread
FSM mit ADC synchronisieren
Hallo, bin neu hier und bin VHDL Anfänger. Ich bin gerade dabei eine Resolver Auswertung in VHDL zu realisiere und habe irgendwie Schwirigkeiten meine FSM einsynchronisieren. Die FSM soll eine SPI und den Cordic steuern. Die
Modul, das den SPI und deine FSM verknüpft... > Wie kann ich am besten das Problem in den Griff bekommen damit bei jeder > steigender Flanke des Signal ADC_CLK die FSM den Spi Transfer einleitet? Du ermittelst die
-
Thread
Quartus v16.0 - Dauer des Fitters
geroutet werden sollten. Bezüglich der Input- und Output-Delays: Der FPGA kommuniziert mit einem ADC (SPI) und mit einem Seriell-zu-USB Wandler (RS232). Andere ICs, mit denen kommuniziert wird, gibt es nicht. Ich denke, dass dann die Timings anhand der Spezifikation (Datenblatt) der beiden ICs (SPI
im Beitrag #4684974: > Bezüglich der Input- und Output-Delays: > Der FPGA kommuniziert mit einem ADC (SPI) und mit einem Seriell-zu-USB > Wandler (RS232). Andere ICs, mit denen kommuniziert wird, gibt es nicht. > Ich denke, dass dann die Timings anhand der Spezifikation (Datenblatt) > der beiden
-
Thread
Vivado Simulation
fuer ein SPI Standardmodul, was du zur Verifikation dann immer wieder nehmen kannst. Verschiedene SPI Modes werden dann idealerweise durch ensprechende Generics gesetzt. Ich mache sowas z.B. fuer den Startup
Da wird man betr. div. Memories schon mal fuendig. Alles andere wuerde ich nicht mehr in plain VHDL nachbauen. Das geht besser mit Software-Co-Simulation, sofern es nicht zwingend aus einem HDL-Guss sein muss. Fuer I2C/SPI-Backends (register) bediene ich mich der herkoemmlichen XML-Techniken um die