I am using the RDDRONE-BMS772 to build a 3s li-ion cell cycler. I wanted to be able to flash the program to the S32K on the board using a CAN bus. I was wondering if there is any way to do this. Or is using a debugger the only way to flash the program? If there are any other alternatives you could suggest I would appreciate it. This is for a school project and hence I need to keep the costs (and the complexity) low.
Since you are doing this for a school project, I think you are able to buy a J-Link EDU (mini).
This is a cheaper version of the normal J-Link meant for educational purposes.
Here is a guide on how to use the J-Link EDU (mini) to flash the RDDRONE-BMS772: https://nxp.gitbook.io/nxpmobilerobotics/flashing-guide/flashing-hovergames-boards.
Would this help you?
Cis van Mierlo
I did not have the chance to use this board yet. But having a look at the schematic, the easiest way to flash this board directly from Simulink without using a JTAG all the time is to use the RAppID bootloader, over the UART. Of course, you have to flash the bootloader once using a JTAG but once you have the bootloader written in the flash memory, you can use the Serial, directly from Simulink.
You can find a suitable bootloader in the toolbox, under tools\BootLoader\RBF_Files the S32K144_S32DS_UART1_CAN0.rbf which uses the pins PTC6 and PTC7 over the DCD-LZ. And here, you can use an external USB2Serial converter.
Also, the CAN0 can be used to deploy the code on the board, but you need to use the RAppID bootloader app, and a compatible CAN tool.
Let me know if Serial is a good option for you.
I programmed the RDDRONE - BMS772 board with Matlab/Simulink. I see all values in FreeMaster.
I have a few questions...
1) I want to run the SSD1306 screen on the card. I changed the D34 and D35 diodes. 3.3Volt appears on the screen, but it does not work. Could you help ?
2) We give 1 to the Gate leg of the power mosfets of the card from the software and we get the output voltage. Why do we still get output voltage when we give logic 0 from the software? (We tested it with the load connected.)
3)Although we operate the SBC in normal mode, we cannot get 5V output. We only get 3V3. We are using sbc_uja1169_s32k_config. Although we activate the V2/VEXT config section in the regulator section, we cannot get output from V2. What is the reason of this? Can you help us?
Please see https://github.com/NXPHoverGames/RDDRONE-BMS772/ for the NuttX RDDRONE-BMS772 BMS example. Documentation, source code, binary and a manual can all be found at that website. It uses the POSIX compliant RTOS NuttX. That example contains the things like SSD1306 display support and configured SBC for 5V.
If Matlab/Simulink, FREEMASTER or something else is used to re-program the boards, there might be different software running on the microcontroller and thus it won't have the correct behavior and functions. You are free to re-program this board/microcontroller with the software you want (or make!), but make sure that what you program is what you are looking for.
If you would like to create your software, you could create it based on sources from https://github.com/NXPHoverGames/RDDRONE-BMS772/. This could help you get started with NXP components like the SBC (UJA1169), the BCC (MC33772B) or the NTAG5 boost NFC chip. If you want to program the NuttX BMS example, there is already a binary on that website/repository which you could easily program using the J-Link commander application (for windows (or JLinkExe on Linux)) and a J-Link programmer.
I want to run the screen via Matlab/Simulink. Can you share any example with me? I can see the battery values with Matlab/Simulink. I want to use CAN communication but I still can't get 5V from SBC. I still could not get 5V output from SBC. Are you interested in me?
Sorry I do not have experience using MBDT in Matlab / Simulink.
For the help with the model based design toolbox and SBC 5V problems. @mariuslucianand could you help @OGUZ1 further with this?
It could be that the UJA1169 configuration might be meant only for the S32K144 evb board, which could be different than what should be used on the RDDRONE-BMS772.
For example, on the S32k144 evb LPSPI1 is used to communicate with the SBC.
While on the RDDRONE-BMS772 LPSPI0 is used.
Could you verify that the correct SPI bus 0 is used to communicate with the SBC?
According to @constantinrazva the SBC driver is located in the external devices.
Could you verify that you are using this SBC block?
If you are interested to see how to set the SBC using C code, here is an example: https://github.com/NXPHoverGames/RDDRONE-BMS772/blob/main/src/sbc.c
This enables the 5V in normal operation of the SBC.
For the display, we have example code how to use the display with the NuttX RTOS.
It uses the characters and drivers from this NuttX RTOS.
The display itself is a SSD1306 I2C display that works at both 5V and 3.3V.
I believe there are many C examples of how to work with this kind of display.
For example: https://github.com/adafruit/Adafruit_SSD1306
For MATLAB maybe these sources would be able to help as well: https://nl.mathworks.com/matlabcentral/fileexchange/50766-ssd1306-hex-bitmap-creator?s_tid=srchtitle or https://nl.mathworks.com/matlabcentral/answers/512483-how-to-control-ssd1306-128x32-oled-display-in-...
Kind regards and have a nice weekend,
Cis van Mierlo
Thank you very much for your reply.
Yes, I'm using SPI0 but I can't see any effect. I always read something like 2.7Volt from pin V2. I always read 3.3 volts from V1 pin. I still read the same values when I press the reset button. I couldn't figure out what it means. I tried all the configurations. Vbat and Wake pins are the same value in SBC.
When I press reset, the Wake pin drops to 0. 3.3 volts is always going to the SBCWake pin of the processor.
We want to use RDDRONE-BMS772 for solar drone with 20 Nos. of 4S battery packs in parallel. Please clarify the following queries,
1. Can RDDRONE-BMS772 board be used readily or any software to be uploaded before using?
2. Can we connect 20 nos. of BMS772 in parallel to charge 20 no. battery packs (each pack has 4S cells)? If yes, any additional protection to be provided externally?
3. Is there any inbuilt protection to prevent MOSFET failure in BMS772? If not, what happens to batteries when MOSFET fails?
4. Are external MOSFETs required for Active cell balancing? How active cell balance works in BMS772?
Thanks in advance.
First of all, best wishes for this new year!
My apologies for the late response, we had some time off.
To answer your questions:
The BMS772 comes with pre-installed example software, but you might want to update it to the latest version. But keep in mind that it is a development platform with open source example software. This software is opensource and provided for development purposes and not warranted for end use. You will still need to ensure that the hardware and software meets your needs.
Currently we have not tested the BMS with multiple packs in parallel. It could be that the hardware could accommodate it, but the software and state machine would need to be reviewed for correct operation in parallel configuration.
There is a self-test build in which will test if the MOSFET can be switched off during startup. This to ensure the MOSFET and its control circuitry is fully functional and can be used for HW/SW OC/OV/temp protections (see SW release documentation). What happens to the batteries depend on the scenario, is it charging or discharging, does it need to connect or disconnect the batteries using the MOSFET. Plus the BMS is not the same as a battery charger. An externally controlled constant current (CC) constant voltage (CV) source is still required to charge the batteries.
Currently the BMS has on-board balance resistors plus FETs inside the installed BCC chip to balance the cells, a command from the MCU to the BCC enables or disables balancing for each individual cell.
I hope this answers your questions!
Can I get some help with my V 4.0 REV D board and the issue with the NFC chip that causes a full stop of the BMS application? Last reply to the Github issue was 3 days ago. I was anticipating a reply this morning, but no such luck.
We're actively investigating the issue. We needed to get some of the current build of boards from the warehouse in order to determine what is going on with this latest board build. A workaround will be provided shortly while we determine the root cause. Thank you for your patience.
I have a question, is it posible to use the CLI if the J-link debugger is on the J2 port? Or is there another way to obtain the information on the J2 whitout using the CLI?
Yes that is possible.
J19 combines the JTAG debugger pins together with the UART pins, the UART pins are needed for the CLI.
There is a DCD-LZ breakout board which lets you connect your JTAG debugger to the JTAG debugger pins (like J2) of that breakout board and separates the UART to FTDI pinout.
This could be connected to J19 of the BMS.
See https://nxp.gitbook.io/hovergames/rddrone-fmuk66/connectors/debug-interface-dcd-lz/dcd-lz-breakout-b... for more detail on the breakout board.
Connector J2 is only a 10 pins JTAG connector, without UART pins.
You could use J2 to program/debug the board and use J19 for the CLI.
As an alternative to that, connector J21 has another UART bus on it.
Since the code is publicly available and it uses the NuttX RTOS, it could easily be changed in using the other UART bus for the CLI.
You could select LPUART0 as serial console in the menuconfig of NuttX (in Device Drivers -> Serial Driver Support -> Serial console).
So then you could use J2 for programming/debugging and J21 for the CLI if you configure it.
We are working with solar drone which requires a lot of power.
This product seems very nice but i am confused on the maximum rating. We have 6s configuration Lipo battery which is 22 volt, and the motor can require a huge burst current and continuous current(90A for minutes). I see that the maximum rating for this is 90A DC, Is this value continuous maximum rating or burst maximum rating. What is the burst current and time limit for the burst current. Can you please suggest me which can be better for me this one or the other BMS FRDM33772BSPIEVB.
Hope i get a very fast reply.
The FRDM33772BSPIEVB is an evaluation board for the battery cell controller. This is without microcontroller, switches, safety measures and etc.
The RDDRONE-BMS772 is a mobile robotics reference design including microcontroller, power switch, (working and available) example software, hardware overcurrent circuit and more.
For more information about the RDDRONE-BMS772 see: https://nxp.gitbook.io/rddrone-bms772/
For the example software see: https://github.com/NXPHoverGames/RDDRONE-BMS772
The RDDRONE-BMS772 as populated is rated for 60A continues DC current.
With 4 pairs of MOSFETs and 4 heatsinks it is rated at 90A maximum DC current (continues) and this includes the layout and copper used.
On the RDDRONE-BMS772 there is a hardware overcurrent circuit at 545A which will act within 20us.
Which means a peak current of 545A is allowed for 20us without damaging the board.
Higher currents or currents for a longer amount of time might be possible, but has not been tested.
Going over the maximum rated currents or the specified time will be of own risk.
Keep in mind batteries should always be handled with care.
Due to the chip shortage the PSMNR70-30YLH mosfet is no more available in the market. What to do with that, is there any other mosfet we can use with that model. Please reply me soon as we need this product as soon as possible.
Yes - sorry to hear that. I also looked, and you are correct, there doesn't seem to be global availability. This is an active and good part, it is just caught up in the global chip shortage.
Here are some (not so great) options:
- Contact Nexperia directly. You only need a few correct? Sometimes there are samples they have on hand.
- Look through Nexperia.com for close alternatives?
- Buy an additional BMS-772 and take the parts off one to add to the other?
The BMS772 does the self balancing. You will need to control the overall current provided to charge the battery. You should also provide some power steering/isolation otherwise with the two batteries in parallel, the higher charged one will attempt to charge the lower charged one.
Also - what is not clear above - are you making one pack or two separate pluggable packs. You CAN parallel individual cells in one large one (and use a single BMS) if you wish, but that does not seem to be how you have described it. So one BMS per pack is needed.
The BMS is approximately the size of a 3S 4000mA/h hobby LiPo - Sorry i do not have exact dimensions.