-
Thread
Hilfestellung: STM32 - SPI - TX/RX-DMA
NVIC_InitStructure); SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Rx, ENABLE); /* The Data transfer is performed in the SPI interrupt routine */ /* Enable the SPI peripheral */ SPI_Cmd(SPIx, ENABLE); } void DMA_Config(void) { /* Dma config */ RCC_AHB1PeriphClockCmd(SPI_DMAx_CLK,
DMA_Init(SPI_SLAVE_Rx_DMA_Channel, &DMA_InitStructure); /* Enable SPI_SLAVE_Rx_DMA_Channel Transfer Complete & Half interrupt */ DMA_ITConfig(SPI_SLAVE_Rx_DMA_Channel, DMA_IT_TC, ENABLE); DMA_ITConfig(SPI_SLAVE_Rx_DMA_Channel,DMA_IT_HT, ENABLE); /* SPI_SLAVE configuration --------
-
Thread
3.5" DD-Disketten auslesen
problemlos "bare metal" programmieren kann. D.h.: Der Code zur Erlangung eines Image und zum Transfer dieses Image auf heutiges Rechengerät z.B. via UART würde wohl weniger als 200..300 Zeilen Assembler ausmachen.
Hardware. Das ist natürlich ein Argument ... > D.h.: Der Code zur Erlangung eines Image und zum Transfer dieses Image > auf heutiges Rechengerät z.B. via UART würde wohl weniger als 200..300 > Zeilen Assembler ausmachen. das Du hiermit komplett ins absurde verkehrst.
-
Thread
10-Bit ADC (Arduino) einlesen und 10-Bit DAC (TLC5615) ausgben
00. So funktioniert das ganze mit 16-Bit: ---------------------------------------- SPI.transfer(B00001111); (0000 --> dummy bits) SPI.transfer(B11111100); ---------------------------------------- Ausgang geht bei einer REF von 2.5V auf 5V (V=2 DAC)! Nur wie sende ich
-
Thread
msp430: Binärsequenz ausgeben @ 2Mhz
Problem(e): Single-Modus: Maximale Geschwindigkeit bei 1.25Mhz, oder gehts schneller? Block Transfer: CPU Auslastung 100%! (wesshalb eigentlich?), dadurch kann nicht nahtlos zwischen den Kanälen gewechselt werden. Burst-Block Modus: Unbrauchbar, da nach jedem 4te Byte ein Unterbruch entsteht.
Habe das selber noch nicht gemacht, würde es aber in etwa so ablaufen lassen: DMA im Single-Transfer-Modus, als Trigger wird 0100 in DMAxTSELx verwendet. Möglicherweise ist es sinnvoll, den SPI im Slavemode laufen zu lassen, denn dann kannst Du einen externen Bittakt nutzen. Die DMA/SPI-Ablaufsteuerung
-
Thread
MCP23017 - Abfrage Taster
unsigned char i2c_start(unsigned char addr)[/c] Issues a start condition and sends address and transfer direction. Parameters addr address and transfer direction of I2C device Return values 0 device accessible 1 failed to access device Man muss also noch etwas ändern: [c] uint8_t Data
-
Thread
Wiederverwendung von Code
data port // #define LCD_DATA_MASK 0xF0 // upper nibble of port is used for 4 bit data transfer #define LCD_DATA_MASK 0x0F // lower nibble of port is used for 4 bit data transfer #define LCD_ROWS 4 // number of lines #define LCD_COLS 20
-
Thread
flexibles RGB Led Display
verschachtelt mit dem Ausgabecode? Könnte nur mit einer Sache übherhaupt klappen: paralleler 8Bit-Transfer (also z.B. ein "LPT" als Quelle). In Ermangelung einer solchen Schnittstelle habe ich es mir gespart, die oben beschriebenen Ansätze in konkreten Code zu überführen. Ich würde statt dessen einfach
könnte ich ganz entspannt den bestehenden Code verwenden. In 321 Takten kann ich nämlich ganz locker Transfer und DoubleBuffering für einen Durchsatz von dann nur noch 1/5 der genannten Werte realisieren. Das ist sehr viel einfacher, als das, was der Demo-Code macht, um den Effekt zu berechnen. Und modular
-
Thread
Rust - ist das hier um zu bleiben?
Regeln [pre] *Prefer* to have single, fixed owners for dynamically allocated objects. *Prefer* to transfer ownership with smart pointers. [/pre] zu viele "prefer" haben?
-Regeln*Prefer* to have single, fixed > owners for dynamically allocated objects. *Prefer* to transfer ownership > with smart pointers. > zu viele "prefer" haben? und wir sind wieder bei dem die haben wohl schlechte Regeln oder schlechte Mitarbeiter Argumentation - google investiert viel Zeit
-
Thread
[ASM] USI tiny SPI Slave im Interrupt Mode
PCINT: in SREG_SAVE,SREG push r16 sbic USI_SPI_PORT-2,usi_SPI_CS rjmp usi_spi_transfer_end usi_spi_transfer_start: sbi GPIOR0,SPI_ON ; SPI Auswertung einschalten in r16,USI_SPI_PORT-1 sbr r16,(1<<usi_SPI_DO) out USI_SPI_PORT-1,r16 rjmp pcint_end
SPI_pRD_BUFFER+0),r16 sts (SPI_pRD_BUFFER+1),r17 sbis GPIOR0,SPI_OVERRUN rjmp usi_spi_transfer_complied cbi GPIOR0,SPI_OVERRUN rjmp usi_spi_end usi_spi_transfer_complied: sbic GPIOR0,NEW_SPI_DATA rjmp usi_spi_end ldi r16,byte1(SPI_RD_BUFFER+SPI_RD_BYTES) ldi
-
Thread
DAC AD5724 - Fragen dazu
paar Ideen über das interne Zahlenformat. Hmm, ich dachte ich nehme von Arduino den Befehl SPI.transfer(X), wobei X ein Byte bzw. 8 Bit sind. So würde ich die Befehle losschicken. Aber vielen Dank für deine hilfreichen Antworten.
Ideen über das interne Zahlenformat. > > Hmm, ich dachte ich nehme von Arduino den Befehl SPI.transfer(X), wobei > X ein Byte bzw. 8 Bit sind. Ja, aber irgendwie müssen doch deine Werte erstmal in diese Bytes hineinkommen. Ich verstehe dich hier noch nicht, du willst doch sicher nicht nur
-
Thread
Platinen fräsen - Tips gesucht!
Ich hab auch beide Verfahren durch. Ich hab mit toner transfer und ätzen immer schnell perfekte Ergebnisse gehabt, allerdings waren doppelseitige Platinen immer ein unlösbares Problem. Ich weis, adere bekommen das hin, aber mit meinem Setup gings einfach nicht
Alternative Vorgehensweise: Mit einer billigen China GRBL Fräse die Löcher bohren und dann mit Toner Transfer die Konturen aufbringen. Klappt ganz gut.
-
Thread
Probleme mit Variablen oder Timings
Endlosschleife), Initialwert ist 1. (Ich geb mir einige Debuginfos per UART aus...) Der Wert wird in "transferColorData" ins richtige Format gepackt und übertragen. Allerdings nur beim ersten mal richtig... Der output sieht so aus: init done sending value: schedule update Status: grayscale cycle running
initialisiere und benutze ich komplett unabhängig von der avrlib (und via printf und stdout) - beim spi transfer hab ich auch die interruptnutzung deaktiviert... bis auf die timer läuft jetzt alles ohne interrupts ich stellte dannt fest, dass sich der controler nach dem ersten main-loop zurückgesetzt hat
-
Thread
Kabellose Rückmeldung Modelleisenbahn ESP8266(?) [Elektronik Anfänger]
fließen lassen kann bei einem bestimmten LED-Strom. Also: 10mA durch die LED, 250% CTR (current transfer ratio), dann kann der Ausgangstransistor maximal 25mA fließen lassen. Da dieser CTR von mehreren Dingen abhängig ist (Exemplarstreuung, Temperatur, sehr erheblich auch vom LED-Strom), werden die
> lassen kann bei einem bestimmten LED-Strom. > Also: 10mA durch die LED, 250% CTR (current transfer ratio), dann kann > der Ausgangstransistor maximal 25mA fließen lassen. > Da dieser CTR von mehreren Dingen abhängig ist (Exemplarstreuung, > Temperatur, sehr erheblich auch vom LED-Strom), werden
-
Thread
Atmega SPI Geschwindigkeit (Arduino schneller als C?)
Arduiono-Standard-Funktionen irgendwo in ihren C-Implementierung einsehbar? Mich würde interessieren wie SPI.transfer() intern umgesetzt ist. Danke euch allen für eure Hinweise, sobald ich zu Hause bin setze ich sie um und messe erneut. Grüße Narf Karl Heinz schrieb im Beitrag #3421385: > Habs zu spät
Arduiono-Standard-Funktionen irgendwo in ihren > C-Implementierung einsehbar? Mich würde interessieren wie SPI.transfer() > intern umgesetzt ist. https://github.com/arduino/Arduino/tree/master/libraries/SPI LG, Sebastian
-
Thread
Freescale HCS08 Positives u. negatives Acknowledge am I2C Bus
/kann. Beschrieben ist das auf der Seite 6 deines Datenblattes. > A slave can slow down the transfer by pulling the SCL line to low after > the falling edge (clock stretching). Jedesmal wenn du Clk auf 1 setzt musst du prüfen ob er wirklich auf 1 ist und gegebenenfalls solange warten bis er 1
Tatsache dass es beim ersten Mal geht und dann nicht mehr ist eher ein Hinweis darauf dass der erste Transfer nicht richtig abgeschlossen ist !!! Gruss Steve
-
Thread
Freeverb Kammfilter Implementierung verstehen
delay-line's input. The particular lowpass used in Freeverb is a unity-gain one-pole lowpass having the transfer function [math] H(z) = \frac{1-d}{1-d\,z^{-1}}. [/math] When d=0 , the LBCF reduces to the feedback comb filter (FBCF) of §2.6.2 in which the feedback was not filtered. The overall LBCF transfer
-
Thread
GnuWin32 complete package Download. Sourceforge OFFLINE!
0 Aug 1 2014 5.2.1-1 drwxr-xr-x 2 ftp ftp 242 Jul 20 2009 5.3.0 226 Transfer complete ftp> cd 5.3.0 250 CWD command successful ftp> ls 229 Entering Extended Passive Mode (|||57191|) 150 Opening ASCII mode data connection for file list -rw-r--r-- 1 ftp ftp
5.3.0-src.exe -rw-r--r-- 1 ftp ftp 9371720 Apr 21 2005 coreutils-5.3.0-src.zip 226 Transfer complete ftp> exit [/pre] Ich würde ja mal vermuten, dass du hier das coreutils-5.3.0.exe beispielsweise benötigst. Sorry, ich habe kein Windows hier.
-
Thread
I2C und STM8
data while(!(I2C->SR1 & ((1<<7) | (1<<2)))); //wait for TX to be empty and BTF to finish byte transfer I2C->CR2 |= (1<<1); //generate stop while(I2C->CR2 & (1<<1)); //wait for stop } [/c] Habt ihr eine Idee, wo mein Fehler liegt?
data while(!(I2C->SR1 & ((1<<7) | (1<<2)))); //wait for TX to be empty and BTF to finish byte transfer I2C->CR2 |= (1<<1); //generate stop while(I2C->CR2 & (1<<1)); //wait for stop } [/c] Mit meinem Logic Analyzer hab ich aber überprüft, das definitiv die Adresse (*0x3A*) gesendet wird (
-
Thread
Probleme mit SRAM 23LCV1024
der steigenden Flanke übernommen werden. [code] 3.2 Serial Output (SO) The SO pin is used to transfer data out of the 23LCV1024. During a read cycle, data is shifted out on this pin after the falling edge of the serial clock. 3.3 Serial Input (SI) The SI pin is used to transfer data into the
-
Thread
SATA-III M.2 SSD Adapter - Problem
signals. It support 1:2 or 2:1 multiplexer or demultiplexer switch, supporting up to 6 Gpbs data transfer bandwitch, with low On Resistance, Low Insertion Loss, operating at 3.3V supply. ASM1456B could be used for SATA/SAS signal interface switching, application in computers, consumer electronics, instrumentation
ausführen kann er aber auch darüber. Deswegen läuft das System erstmal, bis zum ersten größeren Bulk transfer. Deshalb: auch wenn es erstmal funktioniert, mehr Speicher einbauen als freigegeben kann gefährlich sein!
-
Thread
Beispielprogramm für RFM12 433MHz Funk-Module
... ... _delay_us(10); sbi(RF_PORT, CS); while(RF_PIN&(1<<IRQ)); // wait until transfer done _delay_us(10); rf02_trans(0xC464); // TX off after 10us }
Chip Select //*** out SPDR,r17 ;Erstes Byte senden t1: sbis SPSR,SPIF ;warten bis Transfer zu Ende rjmp t1 in r17,SPDR ;Angekommenes Byte wieder in r17 //*** out SPDR,r16 ;Zweites Byte senden t2: sbis SPSR,SPIF ;warten bis Transfer zu Ende rjmp t2 in
-
Thread
Kennt sich wer in Comsol aus? (Thermodynamik)
flüssigem Wasser in abhängigkeit der Zeit. Ich pröble nun schon den halben Tag in Comsol mit dem "Heat transfer in Fluids" und dem "Heat transfer with phase change" herum, aber ich komme einfach nicht drauf, wwie ich das Volumen des flüssigen Wassers bestimmen kann. Kennt sich jemand hier mit Comsol aus
-
Thread
ILD206T Optokoppler Frage
zulässigen Strom. >Aus welchen Werten kann ich mir den rausrechnen? Ja, aus dem CTR, Current Transfer Ratio, auf gut deutsch Stromübertragungsfaktor. Der liegt bei dir zwischen 63..125%, macht bei einem max. zulässigen LED Strom von 30mA ca. 18,9..37,8mA. MFG Falk
->30mA (aber: "Dissipation" und "Derating" beachten) also wohl eher 10-20mA b)CTR = CurrentTransferRatio -> schlimmstenfalls nur 63% bei dem Koppler den du hast. CTR*I_led=Iout -> Wenn dein Relay mit 10mA zufrieden ist könnte es gehen Wenn dus genauer wissen willst, musst du in die Diagramme
-
Thread
USB-Laufwerk implementieren
und der Host-PC kümmert sich um das Filesystem? - welcher USB-Typ ist hier zu verwenden - Bulk-Transfer? Jeder Hinweis/Einstiegspunkt/Link ist willkommen!
Filesystem und kann selber gleichzeitig lesen und schreiben. http://de.wikipedia.org/wiki/Media_Transfer_Protocol
-
Thread
Von USB HID zu USB 2.0
will es mit USB_HS realisieren. Außer einen speziellen Treiber für die USB-High Speed und den Bulk-Transfer muss ich nichts ändern oder? D.h. das USB-High Speed Protokoll mit den Daten kann genauso gut mit den USB-HID Datenprotokoll kommunizieren. Habe ich das so richtig verstanden? Gruß Tine
Der HID-Treiber auf dem PC läuft nur im Interrupt-Transfer-Modus. Für High Speed musst du ein Protokoll wie CDC implementieren, oder das Gerät direkt mit WinUSB ansprechen.
-
Thread
Fritz!Box, IP Telefone und makeln/weiterleiten
mitbringen. Wir haben z.B. im Büro IP-Tischtelefone von Grandstream (GXP-2020). Die haben eine "Transfer"-Taste ... das Funktionert auch an einer Fritzbox, Beispiel: Gespräch wird an Tel1 angenommen, Anrufer soll zu Tel2 weitergeleitet werden. Also an Tel1 zweite Accounttaste drücken und Tel2 rufen, ext. Anrufer wird derweil automatisch geparkt. Tel2 meldet sich, ich drücke an Tel1 die Transfer-Taste und lege auf. Gespräch ist auf Tel2 ...
-
Thread
VCP unerkennbar STM32F4
dem Abschluß des ersten Nutz-Paketes zum Host hin nicht gemerkt, daß man für neue Daten einen der Transfer-Puffer sendebereit machen müßte. Das ist so ähnlich wie bei manchen UART-Cores, die einen Interrupt nur dann liefern, wenn der TX-Puffer leer _geworden_ ist, aber nicht, wenn er bereits leer ist.
VCP-Code den 1 ms Tick vom USB dazu benutzt, um sowas zu testen und in solchen Fällen den Sende-Transfer wieder anzuwerfen, falls er zuvor zum Stillstand gekommen war und jetzt neue Daten anliegen. W.S.
-
Thread
microSD mittels EClamp2410 an uC - Fehlersuche
tion or SPI mode selection during power up and is disconnected by the user during regular data transfer. Hört sich für mich an als müsste er deaktivierbar sein. Letztlich scheint es ein Problem mit der Leitungslänge zu sein. Wenn ich eine microSD-Verlängerung dazwischen hänge funktioniert die Übertragung
tion or SPI mode selection during power up and is > disconnected by the user during regular data transfer. Klingt nach Unsinn. 50k sind für normale Digitalsignale praktisch Luft. Für einfache Eingänge wie die Kartendetektion aber ausreichend. Und DAT0 braucht einen Pull Up in der Initialisierungsphase
-
Thread
Arduino mit WTV020-M01
clockPin, LOW); delay(2); // * 0x8000 = 100000000 00000000 = 16 Bits, Send Command as Serial Transfer * for (unsigned int mask = 0x8000; mask > 0; mask >>= 1) { digitalWrite(clockPin, LOW); delayMicroseconds(50); // * Set Data-Bit on the Line * if (command & mask
clockPin, LOW); delay(2); // * 0x8000 = 100000000 00000000 = 16 Bits, Send Command as Serial Transfer * for (unsigned int mask = 0x8000; mask > 0; mask >>= 1) { digitalWrite(clockPin, LOW); delayMicroseconds(50); // * Set Data-Bit on the Line * if (command & mask
-
Thread
SPI Slave - "Registerkonzept" mit STM32
DMA-Controller, also das Einrichten der Adresse, etc. Das braucht die meiste Zeit, der eigentliche Transfer der Bytes brauchen weniger Zeit (Achtung, PSoC-Wissen, auch hier die Vermutung, dass es beim STM32 nicht anders ist). In beiden Fällen würde ich den von dir erwähnten Registeraufbau auch im RAM
interruptgesteuert zu machen, aber schön kurz und knackig: der Interrupt kümmert sich nur um den Transfer der Daten von/zu den "Registern". Wenn sich da was geändert hat, dann signalisiert du das dem Hauptprogramm über ein Flag, und das Hauptprogramm übernimmt dann die Änderungen. Und wenn gelesen wird
-
Thread
[S] Leute die einen Logic Analyzer (MiniLA) bauen wollen
nämlich die zu schreibende Adresse? Oder versteh ich dich da falsch. Meinst du dass der ganze Transfer soweit verschoben ist, dass sich die eigentlichen Addressinfos mit den Daten überschneiden?? Hast du da evtl ein Bildchen dazu?
, dass heißt Daten werden zum PC übertragen... Ich kann in der Software nirgends finden wo der Transfer der Daten programmiert ist. Ich denke dass hier der Fehler liegt, denn alles andere auf dem Bus funktioniert. Read(Firmware)-Write(Trigger) ohne Probleme. Was allerdings möglich ist, dass das Timing
-
Thread
ARM-GCC: No strict alias
/* Enable the SPI peripheral */ SPI_Cmd(SPIx, ENABLE); /* Waiting the end of Data transfer */ while( DMA_GetFlagStatus(DMA_StreamTx, DMA_FlagTcif_Tx)==RESET ); while( DMA_GetFlagStatus(DMA_StreamRx, DMA_FlagTcif_Rx)==RESET ); /* Clear DMA Transfer Complete Flags */ DMA_ClearFlag