Author Topic: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)  (Read 358311 times)

0 Members and 2 Guests are viewing this topic.

Offline krho

  • Regular Contributor
  • *
  • Posts: 214
  • Country: si
@prasimix: AFAIR, the EULA for STM evaluation boards forbids you to re-sell them or use in commercial products. So It's good for prototyping but for a final version you'll have to build the circuit yourself.
 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Sure, that board neither by size nor features does not fit into our PSU format. It is used to speed up migration from Arduino Due. We'll make our own "digital board" with STM32F4 (or F7).

Offline Tazz

  • Contributor
  • Posts: 24
  • Country: fr
Very good choice.
 

Offline krho

  • Regular Contributor
  • *
  • Posts: 214
  • Country: si
BTW: I know you are working on your graphics library however if you don't know There is a rather excellent one https://littlevgl.com/ under permissive license. Which AFAIR works directly with the f429 board.
 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
BTW: I know you are working on your graphics library however if you don't know There is a rather excellent one https://littlevgl.com/ under permissive license. Which AFAIR works directly with the f429 board.

Yes, we are aware of it and made some evaluation.

Offline Pjoms

  • Regular Contributor
  • *
  • Posts: 51
  • Country: se
Can someone try to reproduce this issue that I have with the current autorange.
Official fw 1.1.

1. Set current limit to more than 500mA
2. Change Current range from “Best” to “0.5A”. (current limit sets to 500mA)
3. Change Current range back to “Best” or “5A”
4. Current limit can still not be set to more than 500mA. “Current limit exceeded”

Reset/restart of the psu is needed to make it possible to set current over 500mA.


EDIT: Just changing Current range from “Best” to “0.5A” and back to “Best” makes it impossible to set the current over 500mA.
« Last Edit: May 12, 2018, 08:33:54 pm by Pjoms »
 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
It seems that PSU starts to be too smart ;). What it's doing is just fine: when you push it to work within 500 mA, it will automatically set current limit to 500 mA, too. Therefore if you goes back to full range (5 A) it didn't increase limit without asking for your attention! Restart can be a "remedy" for that depending of Autorecall on power-on state and selected Power-on profile. If former is ON and later is 0 then current od 500 mA will be remembered and applied during next start up, too.



Anyway you have all right to complain, questioning and criticize since "official" user manual was never created and published.

Offline Pjoms

  • Regular Contributor
  • *
  • Posts: 51
  • Country: se
Ok, now I see! I didn’t notice that the limit under OCP was left at 500mA...
Good or bad, right or wrong, it depends of who’s asking...  ;)
It was just not the behaviour I expected then playing around, but I understand the reason.
Thanks for clearing things up.

 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Feel free to open a new issue if you think that we should change existing behavior.

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Making current auto-ranging analog
« Reply #984 on: May 15, 2018, 09:57:32 am »
Mimicking current auto-ranging that is implemented in firmware using analog circuit is not so simple as I was initially thought. I'll try to describe currently used algorithm/procedure.

Lets define CURR_500MA as output that activate low current range mosfet (0-500 mA) and CURR_5A for high current range (0-5 A). I_SET is programmed current, and I_MON is measured output current.

When new value is entered that is lower then 500 mA (I_SET < 0.5) CURR_500MA is enabled or when I_SET > 0.5, CURR_5A is enabled.
Every ~5 ms firmware makes the following comparison:
1. if CURR_500MA is enabled but output enters CC mode and I_SET > 0.5, CURR_5A is enabled and DAC is loaded with I_SET value (range change is doing in "make-before-brake" fashion)
2. if CURR_5A is enabled and I_MON < 0.5 then CURR_500MA is enabled and DAC is loaded with max. value (i.e. 0xFFFF).

Using the same approach we should remember somehow I_SET value when measured/actual output current value is fluctuating between two ranges. For example, lets say that current is set to 1 A and connected load draw 0.8 A. First, the CURR_5A is enabled and DAC is loaded with value for 1 A. Lets say that load is now decreased to draw only 0.2 A. CURR_500MA is now enabled and DAC is loaded with max. value since in low range that is just 0.5 A that is lower then initially set 1 A. When load is increased again to 0.8 A, CC mode is detected, CURR_5A is enabled and initial I_SET value (1 A) has to be written back to DAC.

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Re: Making current auto-ranging analog
« Reply #985 on: May 15, 2018, 08:05:04 pm »
The good thing is that we have to switch between I_SET and max. value that don't need to be calibrated or anything else. Therefore, it should be possible to switch between I_SET (defined by DAC) and +Vref (2.5 V) that represent the max. value using a simple 2-to-1 mux/analog switch.

Online EEVblog

  • Administrator
  • *****
  • Posts: 33106
  • Country: au
    • EEVblog
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #986 on: June 04, 2018, 05:18:08 am »
 

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #987 on: June 14, 2018, 05:24:32 am »

Huh, please try to be realistic here. We are not talking about reference piece of equipment built by Keysight and similar guys :).

Sorry, this was my first professional PSU and I am still learning it.so please kindly bear with me if some questions looks too dumb ;)

a datasheet might be helpful,but i know the specs now. nice documentation  :-+

The cal lab way did't worked out, so I got an Agilent U1252A DMM, though it burnt a hole in my pocket, it was a nice investment and so much learning.

I just measured my old calibration with this DMM and please see the attached graphs made with this DMM.
in the no load voltage measurement, I think i have to get rid off the last digits on the readings.
the disturbance on the second channel load measurement is caused by me.
« Last Edit: June 14, 2018, 05:26:29 am by s8548a »
 

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #988 on: June 14, 2018, 05:33:10 am »
I have updated the firmware to V1.1 and now I am getting the SD card failed error on startup.
disassembled the PSU for re-inserting the SD card and formatted using SD Formatter too, but still same result.

To solve the serial port issue, I have shorted the SPD and SPU pins of IC17 to GND, then I am getting an error "Windows has stopped this device because it has reported problems. (Code 43)" when checked on  device manager.

Please find the debug info got by LAN
Code: [Select]
CH1 U_DAC = 1619
06/14/2018 11:05:19 AM
CH2 U_DAC = 1409
CH1 U_MON = 438
CH2 U_MON = 647
CH1 U_MON_DAC = 748
CH2 U_MON_DAC = 673
CH1 I_DAC = 1393
CH2 I_DAC = 1442
CH1 I_MON = 741
CH2 I_MON = 705
CH1 I_MON_DAC = 726
CH2 I_MON_DAC = 747
AUX TEMP = 401
CH1 TEMP = 449
CH2 TEMP = 430
MAIN_LOOP_DURATION = 9874 10500 11111 / 9860 10500 11125 / 9436 10113031
ADC_COUNTER = 0 / 0 / 12
Dynamic ram used: 544
Program static ram used 33904
Stack ram used 4360
My guess at free mem: 59496
SD volume is FAT 0
SD card begin result: 1
SD fs begin result: 0
SD fs begin result error: 132354
SD blocks per cluster: 0
SD cluster count: -1
SD fat start block: 0
SD fat count: 2
SD blocks per fat: 0
SD root dir start: 0
SD data start block: 0
SD card size: 7990 MB
SD flash erase size: 128 blocks
SD erase single block
« Last Edit: June 14, 2018, 05:36:55 am by s8548a »
 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #989 on: June 14, 2018, 08:13:41 am »
I have updated the firmware to V1.1 and now I am getting the SD card failed error on startup.
disassembled the PSU for re-inserting the SD card and formatted using SD Formatter too, but still same result.

Please download the latest SdFat from master branch, compile and upload firmware and send me once again results of DEBUG?.

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #990 on: June 14, 2018, 04:29:56 pm »
I have recompiled with the SDFat library from the link you have provided, and still getting SD card failed on startup.

Please find the debug info attached:
Code: [Select]
CH1 U_DAC = 1409
06/14/2018 9:54:05 PM
CH2 U_DAC = 1409
CH1 U_MON = 643
CH2 U_MON = 642
CH1 U_MON_DAC = 643
CH2 U_MON_DAC = 673
CH1 I_DAC = 1825
CH2 I_DAC = 1442
CH1 I_MON = 740
CH2 I_MON = 706
CH1 I_MON_DAC = 944
CH2 I_MON_DAC = 747
AUX TEMP = 359
CH1 TEMP = 396
CH2 TEMP = 387
MAIN_LOOP_DURATION = 9862 10499 11123 / 9813 10501 12269 / 9227 10112503
ADC_COUNTER = 0 / 0 / 12
Dynamic ram used: 480
Program static ram used 33904
Stack ram used 4360
My guess at free mem: 59560
SD volume is FAT 32
SD card begin result: 1
SD fs begin result: 1
SD blocks per cluster: 64
SD cluster count: 243584
SD fat start block: 12576
SD fat count: 2
SD blocks per fat: 1904
SD root dir start: 2
SD data start block: 16384
SD card size: 7990 MB
SD flash erase size: 128 blocks
SD erase single block
 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #991 on: June 14, 2018, 05:39:53 pm »
Thanks for new results. Does your SD card failed every time or just occasionally? From the latest response it seems that initialization was successful (i.e. SD fs begin result = 1).

Also please let me know if you can check that SD card someplace else (e.g. your PC) or try to use other SD card that works fine.

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #992 on: June 14, 2018, 06:03:53 pm »
I just remembered that one time during the power ON there was no SD card failure message, so for a quick test, disabled ethernet and did a 10 power ON/OFF's.

3 out of 10 is successful, no sd card failure message. Then managed to get one with ethernet enabled and I was able to do a datalog via EEZ Studio.

Please find attached the screenshot.

 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #993 on: June 15, 2018, 10:49:13 am »
We've reduce SPI speed from CPU/3 to CPU/4. Could you please download and compile latest firmware build and try this once again?

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #994 on: June 15, 2018, 11:06:27 am »
I have tested with a 2gb SD card from a digital camera and it is failed always. Please find the debug info attached.

Code: [Select]
CH1 U_DAC = 2379
06/15/2018 3:54:55 PM
CH2 U_DAC = 4123
CH1 U_MON = 776
CH2 U_MON = 709
CH1 U_MON_DAC = 1127
CH2 U_MON_DAC = 2030
CH1 I_DAC = 65535
CH2 I_DAC = 2495
CH1 I_MON = 740
CH2 I_MON = 705
CH1 I_MON_DAC = 32767
CH2 I_MON_DAC = 1274
AUX TEMP = 375
CH1 TEMP = 425
CH2 TEMP = 410
MAIN_LOOP_DURATION = 305 829 1405 / 289 835 47823 / 147 10282678
ADC_COUNTER = 0 / 69 / 48462
Dynamic ram used: 944
Program static ram used 33904
Stack ram used 4360
My guess at free mem: 59096
SD volume is FAT 0
SD card begin result: 1
SD fs begin result: 0
SD fs begin result error: 132098
SD blocks per cluster: 0
SD cluster count: -1
SD fat start block: 0
SD fat count: 2
SD blocks per fat: 0
SD root dir start: 0
SD data start block: 0
SD readCSD failed

replaced to the 8gb card and got self test past in a couple of attempts and please find that debug info attached.

Code: [Select]
CH1 U_DAC = 1619
06/15/2018 4:34:41 PM
CH2 U_DAC = 4123
CH1 U_MON = 432
CH2 U_MON = 643
CH1 U_MON_DAC = 749
CH2 U_MON_DAC = 2030
CH1 I_DAC = 1393
CH2 I_DAC = 2495
CH1 I_MON = 741
CH2 I_MON = 705
CH1 I_MON_DAC = 727
CH2 I_MON_DAC = 1273
AUX TEMP = 366
CH1 TEMP = 382
CH2 TEMP = 377
MAIN_LOOP_DURATION = 305 829 1529 / 305 829 2654 / 147 10109220
ADC_COUNTER = 0 / 0 / 12
Dynamic ram used: 480
Program static ram used 33904
Stack ram used 4360
My guess at free mem: 59560
SD volume is FAT 32
SD card begin result: 1
SD fs begin result: 1
SD blocks per cluster: 64
SD cluster count: 243584
SD fat start block: 12576
SD fat count: 2
SD blocks per fat: 1904
SD root dir start: 2
SD data start block: 16384
SD card size: 7990 MB
SD flash erase size: 128 blocks
SD erase single block

yes, will test right now.
 

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #995 on: June 15, 2018, 11:22:08 am »
It is working now, 10/10 cycles success  :-+

Code: [Select]
CH1 U_DAC = 1619
06/15/2018 4:49:52 PM
CH2 U_DAC = 4123
CH1 U_MON = 434
CH2 U_MON = 645
CH1 U_MON_DAC = 748
CH2 U_MON_DAC = 2031
CH1 I_DAC = 1393
CH2 I_DAC = 2495
CH1 I_MON = 741
CH2 I_MON = 705
CH1 I_MON_DAC = 728
CH2 I_MON_DAC = 1273
AUX TEMP = 372
CH1 TEMP = 410
CH2 TEMP = 399
MAIN_LOOP_DURATION = 305 828 1414 / 305 829 2652 / 147 10114271
ADC_COUNTER = 0 / 0 / 12
Dynamic ram used: 480
Program static ram used 33904
Stack ram used 4360
My guess at free mem: 59560
SD volume is FAT 32
SD card begin result: 1
SD fs begin result: 1
SD blocks per cluster: 64
SD cluster count: 243584
SD fat start block: 12576
SD fat count: 2
SD blocks per fat: 1904
SD root dir start: 2
SD data start block: 16384
SD card size: 7990 MB
SD flash erase size: 128 blocks
SD erase single block

 

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #996 on: June 15, 2018, 11:43:51 am »
Great, we'll commit in a few moments a new release that include this important hotfix that other can upgrade it, too.

Offline prasimix

  • Supporter
  • ****
  • Posts: 1957
  • Country: hr
    • EEZ
Firmware v1.1.1 with SD card hotfix
« Reply #997 on: June 15, 2018, 12:17:34 pm »
New firmware v1.1.1 is now available on GitHub.
 
The following users thanked this post: iainwhite, s8548a

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #998 on: June 17, 2018, 04:47:36 pm »
How to roll back to Firmware V1.02?

I mean, the sketch,psu_lib and sci-parser comes from 1.02 release, ethernet library which version I should use?

Update:Master lib works.

« Last Edit: June 17, 2018, 04:54:22 pm by s8548a »
 

Offline s8548a

  • Regular Contributor
  • *
  • Posts: 113
  • Country: in
Re: DIY SCPI programmable dual channel bench PSU 0-50V/3A (now EEZ H24005)
« Reply #999 on: June 17, 2018, 05:05:31 pm »
my psu goes to standby while switch on the channel outputs (both), when OCP is enabled and output voltage from 5v and above with current below 9mA

when OCP disabled works upto 39.99, at 40V goes to standby. no idea what went wrong.

Code: [Select]
CH1 U_DAC = 33244
06/17/2018 10:28:33 PM
CH2 U_DAC = 18389
CH1 U_MON = 744
CH2 U_MON = 679
CH1 U_MON_DAC = 16561
CH2 U_MON_DAC = 9164
CH1 I_DAC = 2420
CH2 I_DAC = 2203
CH1 I_MON = 740
CH2 I_MON = 706
CH1 I_MON_DAC = 1242
CH2 I_MON_DAC = 1127
AUX TEMP = 383
CH1 TEMP = 408
CH2 TEMP = 399
MAIN_LOOP_DURATION = 306 858 1441 / 144 841 100866 / 24 8346299
ADC_COUNTER = 0 / 0 / 1082
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf