Quantcast
Channel: Microcontrollers
Viewing all 226316 articles
Browse latest View live

Forum Post: RE: AM2432: How to update the application files of a specific core separately.

$
0
0
Hi Weijian, I can see that the above 1 & 2 are doing the exactly same thing here. The system.appimage (multicore appimage) will contain the metadata about the binaries for each core. The SBL example will parse this information and load the binaries separately on each core as shown in image 2 of above reply. What is the reason for sending the images separately, but not as system image? Can you please tell in detail what is the requirement here? Regards, Tushar

Forum Post: RE: AM2634: AM263x-CC Uniflash

$
0
0
[quote userid="387520" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1422394/am2634-am263x-cc-uniflash"]is there any possibility to erase specific memory ranges within the QSPI flash of our AM263x-CC device using the Uniflash software?[/quote] Hi Dominic, No we current do not have support for erasing the specific memory range. I will create a request for this to be added in Uniflash next release.

Forum Post: RE: MSP430FR6043: FR6043_USSSWLib_template_example

$
0
0
We are already using the USS design center. We are just optimizing our board for current consumption. Could you please tell me where I can get the USS water meter code for CCS IDE Regards, Sarwath

Forum Post: RE: MSP430F5503: SPI RX Problem

$
0
0
That is unfortunately the problem I am facing. According to the logic analyzer, the data is completely correct, but at some point, the MCU decides to interpret the data incorrectly and turns a 0xBC into a 0x78.

Forum Post: RE: TMS320F2800157: TMS320F2800157: Timer Configuration

$
0
0
Hello Delaney, I've adjusted my code for the comments you have said to be done and this is the code right now: volatile u16 u16Tpr_R = Timer_Config_Array [ TIMER0_INDEX ]. u16Tpr_R ; volatile u16 u16Tprh_R = Timer_Config_Array [ TIMER0_INDEX ]. u16Tprh_R ; volatile u16 u16Tcr_R = Timer_Config_Array [ TIMER0_INDEX ]. u16Tcr_R ; v olatile u32 u32Prd_R = Timer_Config_Array [ TIMER0_INDEX ]. u32Prd_R ; volatile u32 u32PerfAct = Timer_Config_Array [ TIMER0_INDEX ]. u32PerfAct ; volatile u32 u32PerfAvg = Timer_Config_Array [ TIMER0_INDEX ]. u32PerfAvg ; volatile u32 u32PerfMax = Timer_Config_Array [ TIMER0_INDEX ]. u32PerfMax ; volatile u32 u32PerfMin = Timer_Config_Array [ TIMER0_INDEX ]. u32PerfMin ; volatile u16 u16PerfOvf = Timer_Config_Array [ TIMER0_INDEX ]. u16PerfOvf ; EALLOW ; /* Set reset values for bootloader compitability */ CpuTimer0Regs . TPR . all |= u16Tpr_R; CpuTimer0Regs . TPRH . all |= u16Tprh_R; CpuTimer0Regs . TCR . all |= u16Tcr_R; CpuTimer0Regs . PRD . all |= u32Prd_R; /* set period value */ EDIS ; When I debug, the values are placed in the volatile variables I have created correctly but at the |= assignments, the registers are not being written. Why is this? Does this mean that the registers of the timers cannot be written by the .all approach

Forum Post: RE: AM2634: AM263x-CC Uniflash

$
0
0
[quote userid="387520" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1422394/am2634-am263x-cc-uniflash"]Furthermore, our attempts to erase specific ranges via the command line have been unsuccessful. We found out that there is a "FlashErase" option, but it appears to perform a full chip erase, which is both time-consuming and unsuitable for our particular u[/quote] Can you please tell me if the flash erase that you are trying is for writing a new data at that same location? If yes then this is taken care by our flash write apis that it erases that region first then write the new data.

Forum Post: TMS570LS0432: EEPROM LOST DATA

$
0
0
Part Number: TMS570LS0432 Tool/software: Under what circumstances does 570 experience unexpected data loss? Our device has experienced several instances of EEROM data loss at the end customer's end, and the cause cannot be traced; Please provide some suggestions.

Forum Post: AM2431: How can i do sbl image integrity check in my own code?

$
0
0
Part Number: AM2431 Tool/software: When start the sbl, the RBL will do the sbl's integrity check . How can i do this check in my code? is there something like checksum in the sbl image?

Forum Post: RE: MSP-GANG: MSP-GANG can't program FR6879 through JTAG

$
0
0
My email is: edgaras.kucinskas@axioma.eu

Forum Post: RE: AM2634: AM263x-CC Uniflash

$
0
0
Hello Nilabh, we actually need to erase something, and at least not necessarily overwrite it with something new. Right now we're using a workaround where we're overwriting with a file filled with 0x0 bytes, but the functionality shown in the Uniflash documentation to selectively erase by address range would be a lot more convenient. Regards, Dominic

Forum Post: RE: MSP430FR2676: MSP430FR2676

$
0
0
Hi Criton, If you haven't already discovered the Captivate Technology Guide , I would suggest you start in the Software Chapter for an understanding of how the library API works and the "How To" section in that chapter for simple examples showing how to read the sensors. The Captivate library is provided as part of every Captivate Project you generate from the GUI. It consists of a Base module, which is essentially the HAL layer (hardware abstraction for manipulating the Captivate registers), and Advanced module, which has sensor specific processing functions. The Base and Advanced processing functions are located in your project's "captivate" path under the Base and Advanced folders and are compiled into .lib (for CCS projects) and .r43 (for IAR projects). There is no source code available for these modules. In addition to the .lib modules, the Base and Advanced functions also exist as pre-programmed functions in the MSP430's ROM section of memory. Locating the Base and Advanced functions in the device's ROM section frees up about 12Kb of space in program memory (FRAM), which gives your application more space. There is also a Communications module, which has the UART and I2C drivers needed to allow the MSP430 to communicate sensor data and control to the GUI. These leverage the MSP430 driverlib functions, which are also included in every project under the "driverlib" folder. The driverlib source code is available, but in general you won't need it. The driverlib function calls used by the Captivate library perform all that is needed to communicate with the GUI, but you can re-purpose them for your application to use once you are done using the GUI. For example, you can re-use the I2C driver functions to communicate with an I2C device on your PCB or the UART to send data to a PC terminal application when using the CAPT-PGMR. Last, there is the application layer, which is where your code will reside. Typically, you want to place all of your sensor handling code in what is referred to as a "callback" function. The callback function is called automatically after the sensor is measured so you don't have to worry when to run your sensor handling code. This is where you might want to perform some actions, such as turning on/off an LED when a button is pressed. You can do this by accessing the Port register directly or use one of the driverlib functions to set/clear a GPIO pin. Again, read through the Software chapter and you should most everything you need. That's it.

Forum Post: RE: LP-AM243: EVM Setup Fail.

$
0
0
Hello Mr. Tushar, Thank you very much. (1). I found the "load_dmsc.js" file from another version mcu+sdk (mcu_plus_sdk_am243x_08_06_00_45) for GP version AM2434-LP demo-board. I coupied that "load_dmsc.js" into the "mcu_plus_sdk_am243x_10_00_00_20", so I don't need to use "load_dmsc_hsfs.js". (2). I copied an old AM2434_ALX.ccxml with M3 to be in a preset condition (M3 was not bypassed). (3). I still use the "NO BOOT MODE" option on SW4. (4). I changed the "load_dmsc.js" internal settings as the attached file below: (5). I tried to run the script twice, because I got errors. Please see the screen capture for the error messages. The first error was the same as before: Time out. The second error was strange. I felt that I need to do certain "clean?" operation before the script could run properly. Would you please help to advice what settings could be wrong to cause the errors? Thank you very much. Best Regards, Jason Chiu.

Forum Post: RE: TMS320F280039C: LAUNCHXL-F280039C Set the MCAN to classic CAN issue

$
0
0
Hi QJ, Thanks for your help. My issue is now sorted. BR, Allen

Forum Post: RE: AM2634-Q1: Matlab / Simulink Embedded Coder Support Package for AM263P4-Q1 Devices

$
0
0
Hi Jason, Thank you very much. About 20 mins after your message I got an approval email so sounds like the forcing worked. Kier.

Forum Post: RE: TMS320F28379D: DSLite programs Flash and OTP in wrong order

$
0
0
Hi Ricky, [quote userid="16470" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1397762/tms320f28379d-dslite-programs-flash-and-otp-in-wrong-order/5456107#5456107"]As for the compiler, I'm not aware of any settings for preventing programs from writing to the same 64-bit memory[/quote] I think it is wrong statement. It is very common that variables or program are in the same 64bits block. The first question is how should look input hex file for DSLite to be considered as properly ordered and aligned. I suspect that two rules must be satisfied: 1) ascending order of addresses 2) some king of alignment of data chunks in the input hex file. It probably means that it is forbidden to spread data from single 64 bits block into two lines of intel hex file. The answer may be in the code that performs alignment and ordering. It has a file in intel hex format as an input and produces data structure in required form. If you can describe this transformation I will be grateful. [quote userid="16470" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1397762/tms320f28379d-dslite-programs-flash-and-otp-in-wrong-order/5456107#5456107"]In general, if you are able to load your program and you don't see any errors, then there are no alignment issues.[/quote] This rule is not acceptable in mass production, because it relies on error detection of input data. There are two cases: a) the error may be not detected, resulting incorrect flash contents, b) even if error detection is perfect and [a] never happens, after some changes in source code new compilation may generate incorrect data. It will be detected but would block production. The proper manner is to provide input data in correct form. That why I am so persistent in searching the answer. There probably is a backlog of new features and issues to be fixed for DSLite and DSS. Maybe ordering control and pipe support should be added to it [?]. I see some quality dissonance between TI electronics and the manufacturing software. The electronics (as well as development software) is high grade proper for critical aplications while production software looks like it is still in early stage. Regards, Piotr Romaniuk

Forum Post: RE: AM2634: 64MB Memory access with Q-SPI for AM2634

$
0
0
Hi Ralph, As of now we can't change the MCU because of customer request. Can you confirm, if we use GPMC for accessing the external memory like 64MB flash and 16MB SDRAM?

Forum Post: TMS320F280039C: FSI Communication Error Occur When Two Devices Communicate With Each Other With External Wiring

$
0
0
Part Number: TMS320F280039C Tool/software: I recently used FSI communication for high-speed communication between two devices(without FSI interrupts enabled).I used the SysCfg tool to configure the FSI module. The specific configuration is shown in the following figure. Both devices have enabled FSI sending and receiving functions to achieve full duplex.Within the 1ms timer interrupt set, two devices send data frames containing 16 pieces of data to each other. In the while(1) loop, both devices repeatedly call the receive function for data processing. However, after observation, the receiving devices often experience receiving errors.The following are code snippets for Transmitting and receiving processing and the status of the FSI_RX Resigster. void ComFSI_TxLoop() // In the 1ms Timer Interrupt { FSI_setTxSoftwareFrameSize(dFSI_TxBase, 16); FSI_setTxFrameTag(dFSI_TxBase, FSI_FRAME_TAG0); FSI_setTxFrameType(dFSI_TxBase, FSI_FRAME_TYPE_NWORD_DATA); ComFSI.TxEventStatus = FSI_getTxEventStatus(dFSI_TxBase); if(ComFSI.TxEventStatus & (FSI_TX_EVT_BUF_UNDERRUN | FSI_TX_EVT_BUF_OVERRUN)) { FSI_resetTxModule (dFSI_TxBase, FSI_TX_MAIN_CORE_RESET); } FSI_clearTxEvents(dFSI_RxBase,ComFSI.TxEventStatus); ComFSI.TxEventStatus = 0; FSI_setTxUserDefinedData(dFSI_TxBase, ComFSI.TxUserData.all); FSI_writeTxBuffer(dFSI_TxBase, ComFSI.TxData.Array, dFSI_TxWords, 0U); FSI_startTxTransmit(dFSI_TxBase); // Start Transfer } void ComFSI_RxLoop() // In the While(1) Loop { ComFSI.RxEventStatus = FSI_getRxEventStatus(dFSI_RxBase); if( ComFSI.RxEventStatus & (FSI_RX_EVT_FRAME_DONE | FSI_RX_EVT_DATA_FRAME) ) { ComFSI.RecvDataFrameFlg = 1; ComFSI.RxUserData.all = FSI_getRxUserDefinedData(dFSI_RxBase); FSI_readRxBuffer(dFSI_RxBase, ComFSI.RxData.Array, dFSI_RxWords, 0); } else if( ComFSI.RxEventStatus & (FSI_RX_EVT_CRC_ERR | FSI_RX_EVT_TYPE_ERR | FSI_RX_EVT_EOF_ERR | FSI_RX_EVT_ERR_FRAME | FSI_RX_EVT_OVERRUN | FSI_RX_EVT_UNDERRUN | FSI_RX_EVT_FRAME_OVERRUN) ) { RxErrCnt ++; FSIRX_init(); ComFSI_Init(); FSI_executeTxFlushSequence(dFSI_TxBase, dFSI_TxCLK_Prescalar); } FSI_clearRxEvents(dFSI_RxBase,ComFSI.RxEventStatus); ComFSI.RxEventStatus = 0; } It is worth mentioning that this type of receiving error does not occur for a period of time after starting communication,but it will be triggered after a period of communication and needs to be restored by resetting the FSI module. In addition, when I used two other devices (F280025) with the same configuration and code for FSI communication, this phenomenon did not occur.When I used one F280025 and one F280039, the latter still had reception issues.So I guess the problem lies with F280039C, but I'm not sure what the specific problem is although I have consulted relevant information about FSI I hope anyone can help.

Forum Post: RE: TMS320F280039C: FSI Communication Error Occur When Two Devices Communicate With Each Other With External Wiring

$
0
0
The external wiring is shown below

Forum Post: RE: MCU-PLUS-SDK-AM243X: Profinet demo on AM243x_ALX

$
0
0
Hello Andrea, Currently PROFINET demo on AM243x-LP is not supported as mentioned in the release notes. https://software-dl.ti.com/processor-industrial-sw/esd/ind_comms_sdk/am243x/09_02_00_15/docs/api_guide_am243x/RELEASE_NOTES_09_02_00_PAGE.html We are currently working on this implementation and planning to provide support for LP-AM243x by end of November. Best Regards, Laxman

Forum Post: RE: AM2634: AM263x HsmClient_getRandomNum Returning Error: Cache Coherency Issue

$
0
0
Hello Nilabh, the documentation doesn't explain how the DRBGMode field of the RNGReq_t needs to be set. We had to dig into the implementation in source/modules/crypto/crypto_rng_interface.c to see that this needs to be set to 0xA5. This is just a minor issue, as one can find that in the sources (though it might be good to update the documentation for a subsequent release). About the caching issue: I just checked the sources for MCU+ SDK 10.00 (we were on 09.02 before), and that attempts to fix the issue by calling CacheP_wbInv/CacheP_inv on the memory locations pointed at by RNGReq_t, but I believe that is still broken (only by looking at the latest sources, I haven't tested it): the GET_CACHE_ALIGNED_SIZE uses CacheP_CACHELINE_ALIGNMENT which is too large (128 instead of 32 bytes the R5f uses) AND it results in an excessive size in case of an already aligned size ((128 + 128) &~127 == 256) it invalidates the seedValue even though the TRNG doesn't require one. Due to the GET_CACHE_ALIGNED_SIZE issue it still invalidates 128 byte ((0+128)&~127 == 128) wherever seedValue points at ("random" location if not initialized, or 0, or ...) it invalidates the resultPtr only AFTER HsmClient_SendAndRecv has returned. IF some part of resultPtr was dirty in the caches that could be evicted AFTER the HSM wrote the result but BEFORE the call to CacheP_wbInv. Especially the calls to wbInv seem rather dangerous when these buffers are all unaligned on the stack as they are in the examples/drivers/hsmclient/hsm_services/trng_service_app.c example. Again, this is all just based on observation of the latest source code, but I'm pretty sure this is still broken. Regards, Dominic
Viewing all 226316 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>