-
Thread
WS2812 LED-Streifen mit Raspberry Pi 3 ansteuern?
speichern. Oder eine Art Ring Buffer bauen in dem du rechtzeitig den next Pointer dran hängst bevor der Transfer zu ende ist. Beim ST gibt es wohl die Möglichkeit den Transfer über den Timer zu takten. Das ist natürlich dann ideal da du die Bits dann zum richtigen Zeitpunkt ausgeben kannst. Das über
-
Thread
PWM-MOSFET-auswahl
das Diagramm erst bei 0,1 V an, kann ich davon ausgehen dass er 1A durchlässt ? Bei Typical Transfer Characteristics lese ich ab, dass bei einer Vgs von 3V etwa 15A fließen können. Bei Maximum Safe Operating Area bin ich mir wieder nicht sicher ob ich im sicheren bereich bin, da ich nicht genau
hohen Toleranzen unterworfen, teilweise bis zu Faktor zwei, real eher weniger. >Bei Typical Transfer Characteristics lese ich ab, dass bei einer Vgs von >3V etwa 15A fließen können. Typisch ja, garantiert, NEIN. >Bei Maximum Safe Operating Area bin ich mir wieder nicht sicher ob ich >im sicheren
-
Thread
USB CyAPI - Zugriff auf Firmware
vordere ich die Daten die gelesen werden sollen an und empfange diese am PC(Endpoints, Buffer, Transfer)?
kannst du auf alle Funktionen des FX2 zugreifen, die LibUSB kann nur einige wenige. Wenn du nur Bulk-Transfer machst, ist das meiner Meinung nach einfacher mit der LibUSB, ist aber eher subjektiv. Es ist weder schneller noch langsamer, ich fand die CyAPI nur bissl aufgeblasen.
-
Thread
2,455 Ghz Grill - Freund & Helfer gesucht
Ziel: Kein Energie-Transfer an die Glasfaser. Minimaler Verlust. In der Glasfaser werden die Informationen als Licht verschiedener Wellenlängen übertragen. Eine elektromagnetische Welle von 400 nm ist beispielsweise blaues
Glasfaser geleitet. Signal muss gelegentlich verstärkt werden über weite Strecken. Ziel: Energie-Transfer zu den Molekülen. Leuchte mal mit einer Infrarot-Lampe auf ein Glas mit kaltem Wasser. Nach x Minuten miss die Temperatur an der Oberfläche und am Gefäßboden. Da wirst du zwei verschiedene Temperaturen
-
Thread
STM32: externer ADC 400 kHz - Timer+SPI+DMA Optimierung
nicht den circular DMA mode verwenden! Damit musst Du in jeden Zyklus im DMA TC Interrupt den DMA Transfer neu aufsetzen. Bei 16-Bit Transfers koennest Du dagegen einen Circular DMA Transfer aufsetzten ohne dass Du Kannst Du nicht die ADC Kette auftrennen und jeden ADC von jeweils einen SPI Kanal bedienen
-
Thread
SPI 1Mbit Flash EEPROM Ansteuerung
cs usw. enthält. Ist aber jetzt nicht entscheidend. Wichtig für dich ist die Funktion prepareDataTransfer. [c] // commands #define CMD_READ 0x03 #define CMD_WRITE 0x02 #define CMD_RDMR 0x05 // read mode register #define CMD_WRMR 0x01 //
::prepareDataTransfer(uint8_t cmd, uint32_t address) { m_hspi.setClock(); m_hspi.select(); // clear top 8 bits (just in case) address &= 0xFFFFFF; m_hspi.w8(cmd); // 24 bit address
-
Thread
Variables LCD-Menü
NULL, NULL, 1, NULL }, { limiter, 8, -1, NULL, NULL, NULL, -1, NULL } }; const MENU_t transfer_menu[] PROGMEM = { { trnsmenu, -1, 15, (MENU_t*)main_menu, NULL, NULL, -1, NULL }, { strtuart, 14, 16, NULL, NULL, NULL, -1, NULL }, //über UART senden { baud, 15, 17, NULL, NULL,
NULL, NULL, -1, NULL }, { config, 0, 2, NULL, (MENU_t*)config_menu, NULL, -1, NULL }, { transfer, 1, 3, NULL, (MENU_t*)transfer_menu, NULL, -1, NULL }, { limiter, 2, -1, NULL, NULL, NULL, -1, NULL } }; [...] *cur_menu = (MENU_t*)pgm_read_word(&main_menu);
-
Thread
Datenübertragung Smartphone->Mikrocontroller per Display;Helligkeit möglichst einfach/billig messen?
Idee bereits aufgegriffen wurde: https://hackaday.com/2013/02/25/using-a-flashing-lcd-monitor-to-transfer-data/ http://eclsh.blogspot.com/2013/02/gray-scale-lcd-data-transfer.html Allzu viel scheint daraus aber nicht geworden zu sein. :-(
-
Thread
Puffer-Problem mit C8051F320 (8051)
Interrupts programmiert hast. Weiter unten schreib ich noch was dazu (*) > ...oder durch den Bulk-Transfer. Laut Beschreibung werden die Daten da > bis zu drei mal wiederholt. USBXpress ist damit von Grund auf > "suboptimal". Okay, so gesehen schon, denn BULK garantiert zwar Bandbreite, hat aber die
IAR-Portierung) die Nettodatenrate durch den beschränkten RAM, die blockierenden Funktionen und den Bulk-Transfer auf etwa 1,5 Mbps beschränkt ist. Hängen noch andere Systeme dran (der USB-Controller quasi als Repeater) halbiert sich diese Datenrate schlimmstenfalls nochmal. Durch meine unsaubere Umsetzung (
-
Thread
Anfängerfragen zu ATMEL Mega8
Overflow Handler reti; rjmp TIM0_OVF ;Timer0 Overflow Handler reti; rjmp SPI_STC ;SPI Transfer Complete Handler reti; rjmp USART_RXC ;USART RX Complete Handler reti; rjmp USART_UDRE ;UDR Empty Handler reti; rjmp USART_TXC ;USART TX Complete Handler reti; rjmp ADC
Overflow Handler reti; rjmp TIM0_OVF ;Timer0 Overflow Handler reti; rjmp SPI_STC ;SPI Transfer Complete Handler reti; rjmp USART_RXC ;USART RX Complete Handler reti; rjmp USART_UDRE ;UDR Empty Handler reti; rjmp USART_TXC ;USART TX Complete Handler reti; rjmp ADC
-
Thread
FreeRTOS vListInsert() hängt
vTaskList() vor dem xTaskNotifyWait() - Aufruf der laufenden Tasks sieht ganz i.O. aus: [code] File Transfer task R 2 268 19 AnyBus R 0 150 3 IDLE R 0 93 12 Tmr Svc B 3 186 13 NFC Tag B 0 262 6 console B 7 264
207 8 abccCmdHandler B 4 583 10 LSB Driver S 0 175 2 [/code] "File Transfer task" ist der aktive Task, aus dem der vListInsert() - crash auftritt 2) Incorrect interrupt priority assignment, especially on Cortex-M parts where numerically high priority values denote low
-
Thread
Erstes größeres Projekt - Multitasking Konzept
warten, bis die Daten ebenfalls 10 Mal gesampelt wurden. Je nachdem, wie lange nämlich der DMA Transfer des ADC dauert, kann sich das überschneiden. Die SPI macht kein Problem, da die (noch?) blockierend direkt in der ISR läuft. Dafür habe ich einen 'WAIT' state eingeführt, der anspringt, wenn der
>Je nachdem, wie lange nämlich der DMA Transfer des ADC dauert, >kann sich das überschneiden. Double-Buffering ist dein Freund. Ein Buffer wird dabei gefüllt, aus einem anderen werden die Daten gefiltert, berechnet etc. Dann tauschen beide
-
Thread
HD44780+PIC18F25k22 Rise Time Probleme?
gelesen werden, sonst bist Du aus dem Takt. Das BF ist im ersten Nibble (Seite 22, Figure 9 4-Bit Transfer Example). Und mitten drin im LCD_WRITE geht schonmal gar nicht, sondern nur danach. Der Busy-Test geht frühestens auf den ersten Befehl nach dem Setzen des 4Bit-Mode. D.h. bis einschließlich des
one instruction) after the 4-bit data has been transferred twice. Two more 4-bit operations then transfer the busy flag and address counter data..." (Muss noch ein anderes Datenblatt heraussuchen, da ist es etwas deutlicher beschrieben, was damit gemeint ist.) ciao gustav
-
Thread
Filterdaten gesucht
Anpassnetzwerk?). Für > 90 dB Dämpfung kommt ein fliegender Aufbau schnell an seine Grenzen. Das Bild filt_transf.png ist die S-Matrix umgerechnet auf (450 + j0) Ohm Portimpedanz, als schneller Versuch auf direkt auf dem VNA.
noch mit > 90 dB sperrt. Wenn ich die Daten auf 450 Ohm Portimpedanz transformiere (filt_wb2_transf.png), rutscht der Rauschflur natürlich auch etwas hoch. > Warum sollte man ein Filter für 1200 Ohm Abschluss auslegen, wenn es > auch für 50 Ohm geht Nicht in jeder Schaltung hat man eine 50
-
Thread
ISE übersetzt irgend wie nur Mist
Standard ist und was nicht findet sich in: IEEE Std 1076.6(tm)-2004 IEEE Standard for VHDL Register Transfer Level (RTL) Synthesis Da findet man auch den folgenden Abschnitt: 6.1.3.4 Edge-sensitive storage with multiple waits Dort gibt es z.B. folgendes Beispiel: [vhdl] --------------------------
missachtend... Duke Scarring schrieb im Beitrag #2702163: > IEEE Standard for VHDL Register Transfer Level (RTL) Synthesis > Da findet man auch den folgenden Abschnitt: > 6.1.3.4 Edge-sensitive storage with multiple waits TittiKlopper schrieb im Beitrag #2702201: > Das Beispiel aus dem IEEE-Standard
-
Thread
20MP Sony Sensor (6Gb/s) auf 10G Ethernet
einem, wie auch immer gearteten RTP protokoll ist, dass man alles selber bauen muss incl. dem I2C Transfer zur Kamera hin. Da wollte ich naiver Weise auf bereits existierende Lösungen zurückgreifen, wo man z.B. mit dem GigE Control Protokoll in der Kamera selber definierte Register beschreiben kann. Die
, wie auch immer gearteten RTP protokoll ist, dass > man alles selber bauen muss incl. dem I2C Transfer zur Kamera hin. Da > wollte ich naiver Weise auf bereits existierende Lösungen zurückgreifen, > wo man z.B. mit dem GigE Control Protokoll in der Kamera selber > definierte Register beschreiben
-
Thread
Alternative für DOTMATRIXDISPLAY Da super langsam.
enable pin high __delay_cycles(_40_ms); LCDENABLE = 0; // set enable pin low to start transfer __delay_cycles(_20_ms); return 0; } /************** clearDisplay ***************/ unsigned char clearDisplay(void) { setLCDPort(0x00,0); // get ready for display clear setLCDPort
enable pin high > __delay_cycles(_40_ms); > LCDENABLE = 0; // set enable pin low to start transfer > __delay_cycles(_20_ms); [/c] Wenn der Name stimmt, also 40ms, dann sind das nur knappe 10000000% Zeitverschwendung. 1µs reicht als enable-Puls völlig. Peter
-
Thread
Bodediagramm statische Verstärkung einzeichnen
selber gesehen hast ist das -+INF für s->0-;s->0+ passt schon. Für faule: wolfram alpha "transfer function (2 + 0.666 s)/(0.2 s + 20.01 s^2 + s^3)"
Transferfunktion ist schon seltsam.. War die gegeben? http://www.wolframalpha.com/input/?i=transfer+function+(2+%2B+0.666+s)%2F(0.2+s+%2B+20.01+s%5E2+%2B+s%5E3)
-
Thread
STM32 DMA Controller zurücksetzen
= DMA_M2M_Disable; DMA_Init(DMA1_Channel2, &DMA_InitStructure); /* Enable DMA1 Channel2 Transfer Complete interrupt */ DMA_ITConfig(DMA1_Channel2, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable DMA1 Channel2 transfer */ DMA_Cmd(DMA1_Channel2, ENABLE); } [/c] Das Problem ist aber,
256 angekommen ist und immer noch Übertragne muss (weil eine Anforderung) kommt geht der nächste Transfer eben in Location 0 (Circular). Grüße
-
Thread
FB7490: Selektives Mitschneiden ausgehender Daten
Fritzbox ins WEB schickt bzw. empfängt. Wireshark kann das nicht, da sehe ich nur den lokalen Transfer. Was ich gesehen habe tcpdump kann das auch nicht. Hab es jetzt mit der Fritzbox selber erledigt. Dort kann man zwar nicht filtern, aber den Mitschnitt kann man längenmäßig begrenzen. Das reicht
Fritzbox ins WEB schickt bzw. empfängt. Wireshark kann das nicht, > da sehe ich nur den lokalen Transfer. Was ich gesehen habe tcpdump kann > das auch nicht. Sowohl Wireshark als auch tcpdump können das natürlich prinzipiell. Man müsste sie halt nur auf der Fritzbox zum Laufen bringen und nicht
-
Thread
c# Geräte anzeigen
weiterlaufen können, während der PC auf die Daten zugreift. https://de.wikipedia.org/wiki/Media_Transfer_Protocol
Wie greife ich über den PC auf den Speicher des Smartphones zu? Das geht so nicht. MTP (media transfer protocol)-Devices werden unter Windows nicht als normale Laufwerke verwaltet. Die erscheinen nur im im Explorer in etwa so, als wären es welche. Dementsprechend gibt es im Shell-API die entsprechende
-
Thread
KS0108 GLCD Routinen
Display-RAM geschrieben. Wenn du das Ganze jedoch optimal programmierst kommst du locker unter 1ms je Transfer weg (Schau dir dazu die Pixel-Zeit im Datenblatt einmal näher an). Zudem sind selbst bewegte Animationen alle 20ms (50 Frames/Sek) weitaus ausreichend. Da wird dir das Display so oder so einen Streich
dauerndes Lesen im Display-RAM im µC-RAM die Aktionen und Bitoperationen ausführen kann. - Der Transfer muß eh stattfinden, ob du ihn nun auf einen Rutsch oder gestückelt im Algorithmus überträgst ist daher eher unwesentlich. - RAM-Pages kannst du auf diese Weise auch einfach bauen, einfach 2. Array
-
Thread
Gossen Metrawatt Z216C (IR-USB-Adapter) an Raspberry/Linux?
5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint
5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 [/c]
-
Thread
Peripheral size 16bit
Configure the channel priority using the PL[1:0] bits in the DMA_CCRx register 5. Configure data transfer direction, circular mode, peripheral & memory incremented mode, peripheral & memory data size, and interrupt after half and/or full transfer in the DMA_CCRx register 6. Activate the channel by setting
-
Thread
STM32F4 - SPI und DMA
printf("%04X =>", v); buffer[0] = v; buffer[1] = v >> 8; spi_transfer(buffer, 2); printf(" %02X%02X\n", buffer[1], buffer[0]); v <<= 1; if (!(v & 0xFFFF)) v = 0x0001; delay_ms(500); } } [/c]
Reference Manual RM0090 #define SPI2_TX_DMA_FLAG_TCIF DMA_FLAG_TCIF4 // Interrupt-Flag für den Transfer Complete von Stream 4 des SPI2 Datenversands #define SPI2_RX_DMA_FLAG_TCIF DMA_FLAG_TCIF3 // Interrupt-Flag für den Transfer Complete von Stream 3 des SPI2 Datenempfangs #define SPI2_RX_DMA_IRQHANDLER
-
Thread
LibUsb Win7 anmeldung klappt nicht richtig
bInterfaceProtocol: 0x50 iInterface: 0x00 Endpoint Descriptor: bEndpointAddress: 0x81 IN Transfer Type: Bulk wMaxPacketSize: 0x0040 (64) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x03 OUT Transfer Type: Bulk wMaxPacketSize: 0x0040 (64)
-
Thread
STM32H523 SPI-DMA-Problem
[c] HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi) { ... /* Request a Suspend transfer */ SET_BIT(hspi->Instance->CR1, SPI_CR1_CSUSP); do { count--; if (count == 0UL) { SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_ABORT); break;
gelöscht und die while-Schleife wird erst bei count == 0 abgebrochen. Das Datenblatt sagt dazu: "A transfer can be suspended at any time by setting the CSUSP bit of the SPI_CR1 register, which clears the CSTART bit. This software suspension control ensures the completion of any ongoing data frame." Lt.
-
Thread
Datei auf SD-Karte via AVR auf Computer übertragen
Programmiertechniken. Im konkreten Fall würde der energetisch optimierte Code etwa so laufen: Starte den UART-Transfer und puffere die Nachricht im RAM. Gleichzeitig (natürlich nur quasi-gleichzeitig): verarbeite das zuletzt geholte Datenpaket und, wenn fertig, starte den Transfer der aufbereiteten Daten in den externen
-
Thread
STM32 Cortex Timer behindert I2C Interrupt
mode we can not guarantee the EV8 software sequence is managed before the current byte transfer completes */ while ((I2Cx->SR1 & 0x00004) != 0x000004) ; /* Send the current byte */ I2Cx->DR = *pBuffer; /* Point to the next byte to be written */ pBuffer
mode we can not guarantee the EV8 software sequence is managed before the current byte transfer completes */ while ((I2Cx->SR1 & 0x00004) != 0x000004) // HIER HÄNGS!!! ; /* Send the current byte */ I2Cx->DR = *pBuffer; /* Point to the next byte to be written
-
Thread
libusb: LIBUSB_ERROR_BUSY
programmblock_out->blocktyp= DUMMY; libusb_bulk_transfer(handle_usb, EP_OUT, (unsigned char*)&outbuf, 500, (int *)&transferred,20); } } } } [/c] Vielleicht kannst Du es kurz ansehen, ob arg
Transfers um die Bandbreite zuzuteilen. Wichtig ist dass du immer Interface 1 angibst, das ist dein Transfer Interface mit den Bulk Eps. Dann sollte das auch auf deinem CDC marschieren. https://libusb.sourceforge.io/api-1.0/libusb_api.html
-
Thread
Laminator Unterlagen für HD320 PRO und GBC H200
Positiv Verfahrens nicht dünner werden können, sondern das Gegenteil eintreten würde. Toner Transfer habe ich noch nicht versucht. Die maximal erreichbare Temperatur war 170 Grad, also nicht 200 wie angegeben. Ich werde wahrscheinlich die Temperaturreglung zu verbessern suchen weil die Regelhysterese
Gerhard O. schrieb im Beitrag #4046999: > Toner Transfer habe ich noch nicht versucht. Die maximal erreichbare > Temperatur war 170 Grad, also nicht 200 wie angegeben. > > Ich werde wahrscheinlich die Temperaturreglung zu verbessern suchen weil >
-
Thread
USART/RS 485-Problem
i++; } } // Test to see if sent data equals received data TransferError = false; for(i = 0; i < NUM_BYTES; i++) { if (receiveArray[i] != sendArray[i]) { TransferError = true; } } if(TransferError
-
Thread
Xilinx Starterkit + USB-Programmierkabel + Linux >:(
Address: 0x02 Open Pipes: 2 Endpoint Descriptor: bEndpointAddress: 0x02 Transfer Type: Bulk wMaxPacketSize: 0x0200 (512) bInterval: 0x00 Endpoint Descriptor: bEndpointAddress: 0x86 Transfer Type: Bulk wMaxPacketSize: 0x0200 (512) bInterval
-
Thread
Windows for ARM - auf Mac Mx sehr erstaunlich!
22.170 [ms] (mean) Time per request: 22.170 [ms] (mean, across all concurrent requests) Transfer rate: 7.75 [Kbytes/sec] received [/pre] Danach habe ich ab(1) 50.000 Requests mit einer Concurrency von 16 aufgerufen und die Ergebnisse aus wie ich hoffe verständlichen Gründen verworfen
11.681 [ms] (mean) Time per request: 11.681 [ms] (mean, across all concurrent requests) Transfer rate: 14.71 [Kbytes/sec] received [/pre] Du siehst, sogar in diesem einfachen Fall kann der JIT-Compiler die Laufzeit halbieren, wenn er die "heißen Pfade" im Code gefunden hat. Wobei
-
Thread
Sammelbestellung USBTMC Adapter. Interesse?
sowas [pre] int rc=-666; try { uint8_t tmp=0x01; rc=libusb_control_transfer( devh,0xa1, 0x40, 0, 0, &tmp, 1, 250); } catch (...) { DebugHelper::log(DebugHelper::UsbTmcHandlerObject, 0, QString("libusb_control_transfer failes!\n %1\n").arg(libusb_error_name
von der Komplexität noch erträglich. In dem Fall hier war das vorteilhaft, weil der control-transfer testweise schnell eingebaut war, und mein Framework die per-Geräte Verbindungseinstellungsumschaltung ohnehin kann :) die software wird übrigens irgendwann mal open-source werden...nach einem größeren
-
Thread
Kurze Hilfe in ASM
Beitrag #2072883: > Benutzt du den RX-Complete-Interrupt? reti ; $011 SPI Serial Transfer Complete rjmp InRS232 ; $012 USART Rx Complete reti ; $013 USART, Data Register Empty ja diesen benutze ich [avrasm] ; ******************************************************
Compare Match B reti ; $010 Timer/Couner0 Overflow reti ; $011 SPI Serial Transfer Complete rjmp InRS232 ; $012 USART Rx Complete reti ; $013 USART, Data Register Empty reti ; $014 USART Tx Complete reti ; $015 ADC Conversion Complete reti
-
Thread
Verständnisfrage Optokoppler an AVR-Eingang
kleine Verständnisfrage zum Thema Optokoppler. Wenn ich es richtig verstehe sagt die "Current Transfer Ratio" aus, bei welchem Betriebsstrom der Optokoppler-LED wie viel Strom am Kollektor fließen kann. Dies ist natürlich abhängig von der Spannung, die am Kollektor anliegt. Wenn ich jetzt einen
@ R. B. (britzi) >Wenn ich es richtig verstehe sagt die "Current Transfer Ratio" aus, bei >welchem Betriebsstrom der Optokoppler-LED wie viel Strom am Kollektor >fließen kann. Ja. > Dies ist natürlich abhängig von der Spannung, die am >Kollektor anliegt.