-
Thread
Trigger im Netzwerk realisieren
die Datei /etc/services verwiesen. Dort steht z.B. [c] ftp-data 20/tcp # File Transfer [Default Data] ftp-data 20/udp # File Transfer [Default Data] ftp 21/tcp # File Transfer [Control] telnet 23/tcp # Telnet telnet 23/udp
-
Thread
Digitalpoti für Audio / Störgeräusche
value) { digitalWrite(pin, LOW); //When Slave is LOW, the MCP listens to the master SPI.transfer(0x11); SPI.transfer(value); digitalWrite(pin, HIGH); //When Slave is HIGH, the MCP does not listen to the master } [/c] Übersprechen: Ja, kann sein, wenn ich die Kabel vom Arduino in die
kommunizieren Warum? Wieviel tausend mal pro sec. ändert sich "value"? edit: B.t.W. Was tut "SPI.transfer(0x11);"
-
Thread
joy-it SBC-TTL hat gar keinen CH340G
5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0020 1x 32 bytes bInterval 0 Endpoint
5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval [/pre]
-
Thread
Audio-Projekt
ausgeführt. rein theroretisch hast du somit eine latenz von nur 1 sample (plus noch 2 samples für den transfer vom/zum wandler) die latenz die man vom pc her kennt kommt nur dadurch zustande das der pc keine so schnelle reaktion auf ein sample zeigen kann. da werden mehrere samples zwischengepuffert (das
grenzfrequenz um die bässe nur in die mitte zu legen, oder oder oder ...) >2 samples für den transfer vom/zum wandler) >Das ist unvermeidbar ? bei dem design das ich verwende ist es unvermeidbar (brauche immer noch ein daten register neben dem schiebe-register), aber ich wüsste nicht warum das
-
Thread
Platine mit 0,1mm Leiterbahn erstellen (2.Versuch) Gesperrt
Axel R. schrieb im Beitrag #3946008: > Ist ein Prototyp Toner-Transfer, belichtet (Tintenpi..er, Laser, Bauriedl) oder wie? Wäre ganz interessant - auch welches Gerät / Material (Folie / Transparentpapier, etc.)
Dieter Frohnapfel schrieb im Beitrag #3946058: > Toner-Transfer, belichtet (Tintenpi..er, Laser, Bauriedl) oder wie? > Wäre ganz interessant - auch welches Gerät / Material (Folie / > Transparentpapier, etc.) @Axel R.: Eine Antwort wäre nett ...
-
Thread
MP3-Player mit Ethernet und USB (Review & Interesse)
Decoding... alles zur selben Zeit? Zumindest zu USB MSD Class kann ich aus Erfahrung sagen, das der Transfer Speed bei USB einbricht sobald der Kontroller noch irgend etwas anderes macht ausser USB zu verarbeiten. @Miu >Warum eigentlich FTP und Webserver, abgesehen davon, dass dies durchaus >möglich
sollten es schon sein. > Zumindest zu USB MSD Class kann ich aus Erfahrung sagen, das der > Transfer Speed bei USB einbricht sobald der Kontroller noch irgend etwas > anderes macht ausser USB zu verarbeiten. So pauschal kann man das nicht sagen. Wenn der Controller die komplette Rechenleistung
-
Thread
STM32 UART DMA STM32CubeMX
else { huart->State = HAL_UART_STATE_BUSY_TX; } /* Set the UART DMA transfer complete callback */ huart->hdmatx->XferCpltCallback = UART_DMATransmitCplt; /* Set the UART DMA Half transfer complete callback */ huart->hdmatx->XferHalfCpltCallback = UART_DMATxHalfCplt
->hdmatx, *(uint32_t*)tmp, (uint32_t)&huart->Instance->TDR, Size); /* Enable the DMA transfer for transmit request by setting the DMAT bit in the UART CR3 register */ huart->Instance->CR3 |= USART_CR3_DMAT; /* Process Unlocked */ __HAL_UNLOCK(huart);
-
Thread
Suche günstigen und "kleinen" FPGA mit PCIe
schrieb im Beitrag #4921898: > Warum nicht einfach USB? Wenn du mir eine Lösung findest einen DMA Transfer über USB einzuleiten :/ Ebenso ist USB im FPGA auch keine spaßige Sache. ich erinnere mich noch an die schlaflosen Nächte mit nem STM32...
erheblichem Mehraufwand verbunden. Softwaremäßig sollte das iwie gehen. Nur schade, dass der DMA Transfer im Rechner wegfällt.
-
Thread
Bezeichnung für Kehrwert der Übertragungsfunktion?
leo.org transfer function -> inverse transfer function Geht das in Deine Richtung?
Übertragungsfunktion" bzw. "Dämpfungsfunktion" und an die englischen Begriffe "tranfser function" bzw. "inverse transfer function" halten. Vielen Dank für Eure Unterstützung. Mit freundlichen Grüßen Guido
-
Thread
Problem mit dem BMA180 Beschleunigungssensor
SPI.begin(); } void loop() { int rc, acc_x, acc_y, acc_z; digitalWrite(CSPin,LOW); SPI.transfer(0x82); rc = SPI.transfer(0x00); acc_x = (rc & 0xfc) >> 2; rc = SPI.transfer(0x00); acc_x = acc_x | ( (rc & 0xff) << 6); acc_x = u2s(acc_x); digitalWrite(CSPin,HIGH); } [/c]
-
Thread
8b10b mit CDR und frame detection Intel
nicht um was besonderes, also keine richtige IP mit firmengeheimnissen etc. Ist ja nur data transfer, eigentlich jammerschade dass dies bei FPGAs so eine grosse Sache ist. Viele stehen vor basic data transferproblemen und beschäftigen sich mit dem Quatsch anstatt richtige IP zu machen. Leider
absurd das Ganze ist. Ein KMU muss für mehrere Monate seinen einzigen FPGA Entwickler für ein Data Transfer Problem abbreufen.
-
Thread
Problem mit Werteübergabe zu miener Funktion
__delay32(100); // Initialisiere Übertragung SPI1BUF = 0x00FA; while(!transferDone); transferDone = 0; dummyRead = SPI1BUF; __delay32(1000); for(i = 0; i < length; i++) // Die Schiebeoperationen der for-Schleife dienen zum Spiegeln
((tByte & 0x80) >> 3); SPI1BUF = (lByte << 8) | hByte; while(!transferDone); transferDone = 0; dummyRead = SPI1BUF; } PORTBbits.RB2 = 1; // Deaktiviere Chip-Select } [/c]
-
Thread
Problem mit Interrupts
> Interface besitzt, beschreibt (senden), nun kommt der Timerinterrupt, > "killt" diesen I2C Transfer, und fragt eigenständig über I2C (emfpangen) > den Zustand einiger Taster über einen IO-Expander ab. Nach beenden des > Interruptes läuft die Displayroutine weiter und das Display macht mist >
> Interface besitzt, beschreibt (senden), nun kommt der Timerinterrupt, > "killt" diesen I2C Transfer, und fragt eigenständig über I2C (emfpangen) > den Zustand einiger Taster über einen IO-Expander ab. Nach beenden des > Interruptes läuft die Displayroutine weiter und das Display macht mist >
-
Thread
Fragen zum DMA
CPU" unterschiedlich verstehen kann. Denn zwar tut die CPU nichts zu einem gerade laufenden DMA Transfer, andererseits *darf* sie dann aber auch nichts anderes tun. Sie wird vom DMAC [1] angehalten, weil CPU und DMAC den gleichen Bus benutzen. Für eine dritte Instanz, sagen wir mal eine CPU-hungrige Funktion, ist die CPU in der Konsequenz trotzdem kurz weg, während der DMA Transfer läuft. Aus deren Sicht macht es keinen Unterschied, ob die CPU gerade fehlt weil der DMAC den Bus braucht, oder ob sie fehlt weil sie gerade selber Daten von A nach B schaufelt. Nächster Punkt:
-
Thread
STm32F103: Beispielcode der Chan FatFs zum Laufen bekommen
#5167521: > am einfachsten ist foolproof - bitbanging. Am Besten ist ein DMA gesteuertes SPI Transfer mit maximalen 20 Mhz was noch so eben auf einem Lochraster durchgeht. Ich kann das selbst schreiben aber das dauert mit Testen halt 3-4 Tage je abends daher fragte ich ob es vielleicht schon jemand
Byte Datenworten. Ich meine nur, eine korrekt SPI Rotuine sieht so aus: [c] uint8_t SPI_TransferByte(uint8_t data) { while (SPI_I2S_GetFlagStatus(RF_SPI, SPI_I2S_FLAG_TXE) == RESET); /* Wait for SPIz Tx buffer empty */ SPI_I2S_SendData(RF_SPI,data);
-
Thread
Wie lauten diese Codezeilen (Keil-Compiler) für GCC?
the access SCK = 0; for(j=0;j<8;j++) { SDA = transbit; // To Start transfer From Highest bit SCK = 1; // Enable at rising SCK edge SCK = 0; // Prepare write signal for next bit transdata = transdata<<1; // One bit left shift } _CS
> > Lars schrieb im Beitrag #5043416: >> for ... >> SDA = transbit; // To Start transfer From Highest bit > ... >> transdata = transdata<<1; // One bit left shift > > Ich denke, die Bit-Position ist hier nicht unwichtig. > > Und generell, wenn der µC einen BIT-adressierbaren
-
Thread
Gibt es Neues im Bereich Lötstopplack und DIY?
lötstop mittels toner Transfer verfahren https://hackaday.com/2014/01/27/toner-transfer-pcbs-double-sided-with-color-silkscreen/
https://ncrmnt.org/2014/01/18/toner-transfer-solder-mask/
-
Thread
STM32f3 8bit SPI DMA Problem
/ DMA transfer still running //} DMA_SetCurrDataCounter(DMA1_Channel2, BUFFER_SIZE); //nur notwendig bei mehr als 1 transfer DMA_SetCurrDataCounter(DMA1_Channel3, BUFFER_SIZE); // Chip Select Low
Channel3_IRQHandler(void){ if(DMA_GetITStatus( DMA1_IT_TC3)) { // Test on DMA Stream Transfer Complete interrupt //DMA_ClearITPendingBit(DMA1_Stream4, DMA_IT_TCIF4); // Clear DMA Stream Transfer Complete interrupt pending bit DMA_ClearITPendingBit(DMA1_IT_TC3); } } [/c]
-
Thread
Hilfe bei Signalbestimmung bzw Auswertung mittels Arduino
. Ein "Transfer" bedeutet beides gleichzeitig. Siehe: https://de.wikipedia.org/wiki/Serial_Peripheral_Interface#Protokollablauf_und_Einstellm%C3%B6glichkeiten Wahrscheinlich gibt es mehr spi.h-Dateien als ich
beinhaltet und umgekehrt. Senden ohne Empfangen bzw. das Umgekehrte geht garnicht beim SPI-Bus. Ein "Transfer" bedeutet beides gleichzeitig." Ich empfehle Dir, Dich nochmal ausführlich mit dem SPI-Protokoll zu beschäftigen.
-
Thread
Buerodrucker der kleines Papierformat duplex bedrucken kann
etwas - die Karten sind dann aber auf der Rolle - und es ist kein Laser: [[http://www.thermo-transfer.de/kartendruck-drucker]]
schaue ich mir mal genauer an. 5k ist natuerlich schon happig. @Klaus: Also das mit dem Thermal-Transfer Verfahren kannte ich noch nicht. Bei der Verwendung von 2 x 450m Baender (duplex) kann man bei der Kartengroesse die ich verwende um die 2500 Karten drucken. Das hiesse, dass wir die Baender alle
-
Thread
Hat jemand Erfahrung mit dem 2,4GHz-Transceiver RFM70?
Größe = 2Byte. Mir geht es um das Auslesen. ich habe die folgende Routine: CS = low SPI_transfer(0x61); // Read FIFO payload SPI_transfer(0x00); // 1. dummybyte x = USIDR; SPI_transfer(0x00); // 2. dummybyte y = USIDR; CS = high und hier ist irgendwo der Wurm drinnen.
gleichzeitig gelesen. Das finde ich bei deiner Funktion nicht. Wie schaut den deine Funktion [c] SPI_transfer(0x00); [/c] aus ? Hier müßte doch eigentlich gleich das empfangene Datum zurück kommen. Ich sehe leider auch in den vergangenen Beiträgen von Dir nicht, was z.B. USIDR ist. Gruß Ulf
-
Thread
STM32: DMA Callbacks werden nicht aufgerufen, seltsamer Bug in der Cube-HAL
nicht mehr ging: Ich initialisiere einen DMA, u.a. so: [code] dmaCC2.XferCpltCallback = DMA_TransferCompleteHandler; dmaCC2.XferHalfCpltCallback = DMA_TransferHalfHandler; [/code] und der wird dann aber nicht aufgerufen, und seltsamerweise steht statt einem Pointer auf die besagten Funktionen
Initialization Error */ Error_Handler(); } /*##-5- Select Callbacks functions called after Transfer complete and Transfer error */ HAL_DMA_RegisterCallback(&DmaHandle, HAL_DMA_XFER_CPLT_CB_ID, TransferComplete); HAL_DMA_RegisterCallback(&DmaHandle, HAL_DMA_XFER_ERROR_CB_ID, TransferError);
-
Thread
EEPROM sequentiel lesen I2C
;* Main I2C functions : ;* 'i2c_start' - Issues a start condition and sends address ;* and transfer direction. ;* 'i2c_rep_start' - Issues a repeated start condition and sends ;* address and transfer direction. ;* 'i2c_do_transfer' - Sends or receives data depending_on ;* direction given in address/dir byte. ;* 'i2c_stop' - Terminates the data transfer by issue a ;* stop condition. ;* ;* USAGE ;* Transfer formats is described in the AVR300 documentation. ;* (An example is shown in the 'main' code). ;* ;* NOTES ;* The I2C routines
-
Thread
Atmel TWI Fehlerbehandlungen
muss ich PINx der TWI Pins abfragen? Ich habe den Eindruck dass der Master machmal trotzdem den Transfer initiieren kann. - wenn der Master nicht mehr weiterkommt - wegen Timeout - reicht dann ein Stop condition zu generieren? - kann man eventuell das TWI Modul sicher reseten, indem man es kurz disabled
Adib T. schrieb im Beitrag #2615042: > Kann ich das denn überhaupt so einen Transfer abbrechen? Einen hängenden Transfer kann man nicht ohne komplettes Disable abbrechen. Ein STOP setzen geht nur nach dem Empfang des ACK/NACK oder als Master-Receiver nach dem Senden des NACK.
-
Thread
Kommunikationsprotokoll fuer TI TMS320 - CAN
support/microcontrollers/tiva_arm/f/908/t/68824.aspx Bei den meisten DIY-Stacks fehlt SDO-Block-Transfer, leider... Aber mit "expetited" (toggle bits) geht auch schon ne Menge. Grüße runout
SDO Block-Transfer benötigt man eher selten. Will man kleinere Strings oder Domains übertragen reicht meist auch der segmentierte SDO Transfer.
-
Thread
Touch-Knöpfe mit weniger Portpins
Ich möchte gern 8 Touch-Knöpfe (Charge Transfer) haben, dafür aber nicht 16 Portpins verbraten. Kann ich die unteren Portpins gegen ein Tristate-Schieberegister ersetzen oder gar einfach zusammenschalten?
ist unvollständig. Wenn das aber nur "nackte" Sensoren sind da muss du Ladung messen (Charge Transfer) und das funktioniert mit digitalen port Pins und 74xxx Schieberegistern nicht.
-
Thread
AVR jtagice3 unter Linux
5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1
5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 255
-
Thread
433 Funksteckdose mit RFM69 steuern
channel activity ATOMIC_BLOCK_START; digitalWrite(_slaveSelectPin, LOW); _spi.transfer(RH_RF69_REG_00_FIFO | RH_RF69_SPI_WRITE_MASK); // Send the start address with the write mask on // Now the payload while (len--) _spi.transfer(*data++); digitalWrite(_slaveSelectPin
digitalWrite(_slaveSelectPin, LOW); _spi.beginTransaction(); _spi.transfer(RH_RF69_REG_00_FIFO); // Send the start address with the write mask off buffer[bufferLength] = _spi.transfer(0); bufferLength++; length -= 1;
-
Thread
Gesicherter SPI Stream Linux <--> uC
noch Fehlerkorrektur implementieren, dann kommt ohne Zusatzleitungen noch mindestens ein weiterer Transfer dazu. Ich hatte gehofft es gibt hier eine Art Standardlösung für SPI, aber bisher habe ich leider nichts brauchbares gefunden.
. Das geht nach meiner Erfahrung nur gut, wenn der Chip DMA kannund sofort bei einem "pumped transfer" (gleichzeitig rein/raus) unmittelbar mit einem ersten Statusbyte antworten kann.D.h. sobald der SPI CS low geht, muss der Solave-uC sofort scharfgeschaltet sein. Ansonsten kann das ein rechter
-
Thread
USB-C Board mit Passthrough Charging, Power Delivery und 5V Header
www.cuidevices.com/blog/an-introduction-to-power-only-usb-type-c-connectors Please note that since the data transfer pins have been removed, the USB 3.0 power negotiation process does not occur, in which case the charging device will revert to the USB standard power transfer rate of 5 V and 1 A. For all other applications
klar, die sind auf der Platine alle miteinander verbunden. > Please note that since the data transfer pins have been removed ... Mir ging es nur darum, die für Stromversorgung relevanten Pins zu identifizieren. Du musst natürlich alle durch schleifen. Die 48V machen es kompliziert, fürchte ich
-
Thread
FX2 auf PC-Seite
Hallo, ich habe hier nach einiger Zeit eine FX2-Schaltung im Slave-Mode am Laufen. Der Daten-Transfer funktioniert unter C# auch zum Teil. Das Problem ist, das die Daten gestreamt werden müssen und ich eine Rate von ca. 2 MBytes/s im Moment habe. Das ist natürlich zu wenig (so 15 - 25 MB/s brauch
puffern und auf der PC Seite per BULK rieige Blöcke anfordern. Und keinesfalls nur 512 Byte nur pro Transfer. Auch mit dem Packet End sparsam umgehen, denn dann ist ein ganzes MicroFrame abgeschlossen.
-
Thread
Optokoppler PC817 Datenblatt hilfe.
50mA) bei maximal 200mW Ist das soweit korrekt? Was sagt mir folgendes verhältnis "Current Transfer Ratio vs. Forward Current", "Collector-emitter Saturation Voltage vs. Forward Current" und CTR? Da ich nun gesagt habe das die LED 1.2V und 20 mA benötigt, würde ich mit ein Strom bei 3V3
dir das Datenblatt genau an. Im Bild4 siehst du, das bei etwas mehr als 2mA forward current das transfer ratio etwa 100% ist. Das heißt, 2mA forward current ergibt 2mA Kollektorstrom.
-
Thread
I2C Funktionsproblem
if(hi2c->XferCount > MAX_NBYTE_SIZE) { hi2c->XferSize = MAX_NBYTE_SIZE; I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRITE); } else { hi2c->XferSize = hi2c->XferCount; I2C_TransferConfig(hi2c, DevAddress, hi2c
XferCount > MAX_NBYTE_SIZE) { hi2c->XferSize = MAX_NBYTE_SIZE; I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTSTOP); } else { hi2c->XferSize = hi2c->XferCount; I2C_TransferConfig(hi2c, DevAddress
-
Thread
STM32F10x USB FS Bulk mit 64 Byte funzt nicht.
,die maximal 64 Bytes in einem Bulk-Transfer zuläßt. Wo genau ist da mein Denkfehler jetzt oder ist das ein Bug des STM32F1-USB-Device-Cores ? Viele Grüße Dennis Heynlein
Das relevante Kapitel ist übrigens 5.8.3 in der USB 2.0 Spec: "Bulk Transfer Packet Size Constraints"
-
Thread
Wie schnell ist FT232BM
Hallo, Wie schnell ist eigentlich der FT232BM? Im Datenblatt habe ich folgedes gefunden: Data transfer rate of 300 Baud => 3M Baud (TTL) Data transfer rate of 300 Baud => 1M Baud (RS232) Data transfer rate of 300 Baud => 3M Baud (RS422/RS485) Heißt das, dass man 1M Baud mit RS232 + µC erreichen
-
Thread
Frage zum PCB Belichten
(Link 2) ausreichen? 1) http://www.banggood.com/30cm-Photosensitive-Dry-Film-Replace-Thermal-Transfer-PCB-Board-Longth-5M-p-993161.html 2) http://www.ebay.de/itm/36W-UV-Lampe-Lichthartungsgerat-Set-Nagelgel-Nagelstudioauflosung-Weis-4-Rohre-/281685998850?hash=item4195cb3d02:g:ErYAAOSwq7JT7DCZ
Beitrag #4708618: > 1) > http://www.banggood.com/30cm-Photosensitive-Dry-Film-Replace-Thermal-Transfer-PCB-Board-Longth-5M-p-993161.html Dafür brauchst du erst mal einen Laminator... > 2) > Ebay-Artikel Nr. 281685998850 ...und hierfür einen Vakuumrahmen mit geeigneter Pumpe. Man kann auch
-
Thread
STM32Fxx - Grundverständnis zu DMA
> DMA starten auf SPI Axel S. schrieb im Beitrag #4365240: > Das kaufe ich nicht. Ein DMA-Transfer muß keineswegs RAM als Ziel oder > als Quelle haben. Wohl war. "Stream" ist halt der "Datenstrom". Axel S. schrieb im Beitrag #4365240: > Deswegen ist dein "Nein" oben auch falsch. Der
Stream? wurde noch nicht gesagt: Ein Kanal ist dann die Triggerquelle, mit der ein einzelner DMA-Transfer veranlasst wird. Verschiedene Streams haben unterschiedliche Triggerquellen.
-
Thread
STM32 USB CDC will nicht mehr nach Kernel Update
5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 16 Interface
5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 can't get
-
Thread
nativer DDR3-Controller mit MIG mit mehr, als einem Port
Interfacebreite ab. Wir haben z.b. 400MHz DDR mit 4x16 Bits = 64 Bits => 64 Bits * 8 Cycles = 512 Bits per Transfer. Jetzt verwenden wir nicht 100 Mhz * 512 Bit sondern 200 Mhz * 256 Bit, so dass ein Transfer aus 2 "beats" besteht (um den AXI Terminus zu verwenden). Dabei muss der 2. (=letzte) Beat mit *APP_WDF_END
MIG markiert. Bei dir mit 8 Bits * 8 Cycles = 64 Bits und 64 Bit Interfacebreite sollte also 1 Transfer immer aus genau einem Takt bestehen und somit ist *APP_WDF_END* immer zu setzten. Welches Timing vorgeschrieben ist, wenn erst die Daten und dann das Kommando kommen, weiß ich nicht. Bei uns läuft
-
Thread
Interrupt Problem
rjmp TIM0_OVF ; Timer0 Overflow Handler reti ; SPI Transfer Complete Handler reti ; USART RX Complete Handler reti ; UDR Empty Handler reti ; USART TX Complete Handler
0x010 ;TIMER0 OVF Timer/Counter0 Overflow rjmp Timer0Overflow .ORG 0x011 ;SPI, STC SPI Serial Transfer Complete reti .ORG 0x012 ;USART, RX USART Rx Complete reti .ORG 0x013 ;USART, UDRE USART, Data Register Empty reti .ORG 0x014 ;USART, TX USART, Tx Complete reti #endif ;mym88 [/avrasm]
-
Thread
ADXL380 mit SPI auslesen
command = ((registerAddress << 9) | value); // R/W-Bit = 0 digitalWrite(CS_PIN, LOW); SPI.transfer16(command); digitalWrite(CS_PIN, HIGH); } //Register read uint16_t readRegister(uint8_t registerAddress){ digitalWrite(CS_PIN, LOW); uint16_t data = SPI.transfer16((registerAddress
Bits zurückgeben: [c] uint8_t readRegister(uint8_t registerAddress){ : uint8_t data = SPI.transfer16((registerAddress<<9) | (0x01<<8)); : return data; [/c] Interessant wäre hier auch, dass die Clockphase sicher zum Datenblatt passt. Denn sonst schreibst du evtl. die Adresse um 1 Bit versetzt
-
Thread
Kein Ton! STM32H743 I2S Salve mit DMA
DMA_SxFCR_FTH_1_4_FULL); dma_clear_interrupt_flags(DMA1, DMA_STREAM7, DMA_TCIF); dma_enable_transfer_complete_interrupt(DMA1, DMA_STREAM7); /* Enable the DMA interrupt. */ nvic_set_priority(NVIC_DMA1_STR7_IRQ, ((5+1)<<4)); nvic_enable_irq(NVIC_DMA1_STR7_IRQ); rcc_set_spi123_
2*2] __attribute__((aligned(32), __section__(".dma"))); void RecordCallBack(short completeTransfer){ SCB_CleanDCache_by_Addr((uint32_t *)memPtr->pAuxRecord , 64*2 ); if(completeTransfer){ memPtr->pAuxPlay = &bufferAudioPlay[64*2]; memPtr->pAuxRecord = &bufferAudioRecord
-
Thread
Keil USB RTE OTG HS Device /Window Fehler beim anfordern einer Gerätebeschreibung
0x01 -> Direction: OUT - EndpointID: 1 bmAttributes: 0x03 -> Interrupt Transfer Type wMaxPacketSize: 0x0009 = 0x09 bytes bInterval: 0x10 ---===>Full Configuration Descriptor<===--- ===>Configuration Descriptor<
0x01 -> Direction: OUT - EndpointID: 1 bmAttributes: 0x03 -> Interrupt Transfer Type wMaxPacketSize: 0x0009 = 0x09 bytes bInterval: 0x10
-
Thread
STM32 Hal-Driver ADC-DMA Interrupt
sollen die Daten dann weiter verarbeitet werden. Nun habe ich das Problem, dass immer ein Half-Transfer und ein Transfer-Complete Interrupt ausgelöst wird. Den Half-Transfer-Interrupt benötige ich nicht und könnte ihn deshalb deaktivieren. Leider sieht der HAL-Treiber das nicht vor. In der Funktion
Du könntest den Half Transfer Complete Interrupt auch einfach drinnen lassen, wenn du die Libraries nutzen willst? Die paar Nanosekunden bringen einen in den wenigsten Fällen um... temp schrieb im Beitrag #4292346: > Michael
-
Thread
STI100 kommt mit dem Schreiben nicht nach
möglichen Transferraten: http://www.ftdichip.com/Support/Documents/AppNotes/AN_112_VNC1L%20Data%20Transfer%20Speeds.pdf Riesige Geschwindigkeiten kannst Du jedoch nicht erwarten. Um Deine 400 Byte seriell mit 115200 Baud zu senden, vergehen schon theoretisch gut 35ms, ein kontinuierlicher Transfer,
-
Thread
GCC Optimierung killt Funktion
Senden den RX Buffer auslesen, um es zu löschen. Receive sequence For the receiver, when data transfer is complete: • The Data in shift register is transferred to Rx Buffer and the RXNE flag (SPI_SR register) is set • An Interrupt is generated if the RXNEIE bit is set in the SPI_CR2 register. After
nicht für Datenströme geeignet, nur halt für für Datensätze zb von Sensoren. [c] uint8_t SPI_TransferByte(uint8_t data) { while(!SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE)); // Warte bis TXE (SPI ist frei) SPI_I2S_SendData(SPI1, data); // Byte senden
-
Thread
STM32F4 DMA-Interrupts und DMA-Resets
ich dann Konstrukte wie [c] void DMA1_Channel1_IRQHandler(void) { //Test on DMA1 Channel1 Transfer Complete interrupt if(DMA_GetITStatus(DMA1_IT_TC1)) { status=1; LEDToggle(LEDG); //Clear DMA1 Channel1 Half Transfer, Transfer Complete and Global interrupt pending bits
ließ mal im Referenz Manual nochmal unter "DMA" nach "DMA_GetITStatus(DMA1_IT_TC1)" wertet den "Transfer-Complete-Interrupt" aus es gäbe aber z.B. noch "Half-Transfer-Interrupt" der löst die gleiche Interrupt-Funktion Gruss Uwe
-
Thread
ADUM1401 - SPI-Problem (SCLK auf MISO)
mehr zurück, aber auch nicht die erwartete 4 sondern reichlich Datenmüll. Mit PiScope kann ich Transfer mit solchen Frequenzen nicht mehr visualisieren. Ich denke das Beste wird sein, sich mit einem Oszi anzusehen was während des Transfers passiert, oder habt ihr noch andere Ansätze? Viele Grüße
logic low, an 8-bit write to the communications register takes place first. The MSB of this byte transfer must be a 0, indicating that the next data transfer operation is a read. The seven LSBs of this byte contain the address of the register that is to be read. The ADE7758 starts shifting out of the
-
Thread
GPIO-Port via DMA-Transfer setzen
Hallo zusammen, ich beschäftige mich momentan mit den Möglichkeiten der DMA-Komponente im STM32F407 (STM32F4Discovery). Hierbei möchte ich eine sich ständig wiederholende Sequenz von Outputs auf einem GPIO-Port generieren, wobei die CPU möglichst wenig belastet werden soll. Die Sequenz soll mit maximal möglicher Geschwindigkeit ablaufen. Ich stelle mir den Ablauf so vor: - Die Sequenz liegt als Array von 32bit Werten im Speicher, wobei die unteren 16bit jedes Wertes den Registerbereich "BSRRL" und die oberen 16bit den Registerbreich "BSRRH" repräsentieren. (Das BSRR-Register dient dem
-
Thread
[V] Laminiergerät für Toner transfer geeignet
Pulverbeschichtet Gummirollen und leistungsfähige Heizung Format ist ca A5 Wollte das Gerät für Toner Transfer benutzen. Habe ich aber nur einmal gemacht. Hat auch funktioniert. 1,5mm Epoxyd Eurokarte passt gut durch. 25€ Plus Versand hätte ich gern.