The list of todo and done entries in the main Programmable Electronic Load was becoming too big.
I've offloaded it to this post.
To resolve: | How? |
---|---|
power launchpad when device not usb connected, | Either PC, or when used stand-alone a USB power brick |
separation of load power rails and control electronic rails (don't damage a connected PC) | I2C isolator IC, and I2C only interface with power part. |
MSP432 has no DAC | External DAC, with I2C |
is isolation needed between msp and load? | I2C isolator IC, and I2C only interface with power part. |
overload protection? | yes, in firmware, based on FET specs - initial a simple shutdown |
MSP432 different adc results A0 and A1 - raised on e2e forum https://e2e.ti.com/support/microcontrollers/msp430/f/166/p/563659/2065067#2065067 | Must be my interpretation of the interface or a thing in TI-RTOS driver. The raw examples give a nice 729 nd 672 for 0.109V input. That's close enough. |
Button to turn off remote access? | not planned, but can be done using free MSP432 GPIO, no isolation needed |
Block remote commands when sensing front panel activity? | not planned, the device doesn't have front panel. Can be implemented if needed |
What is the power-on state? | same as *RST: Constant current, 0 amperes, input off |
watch-out: with built-in ref, max ADC value is 2.5V. We need to scale our sense resistor/whatevers for that. We can have 3.3V conversion if we have a reasonable external reference. We would have to present this on pin P5.6 - by default muxed to PWM TA2.1 | Not relevant, external ADC with I2C |
PWM signals not available on BoosterPack Connectors. They are routed to Green and Blue led. | Changed MSP_EXP432P401R.c to route to P2.6 and P2.4 |
PWM frequency (and rc filter) dependent on the number of steps we allow between duty 0 and 100% Only checked with setting the parameters in microseconds. I'll also test how granular we get with fractions. | External DAC, with I2C |
I2C speed sufficient for the control loop? | A single conversation with a TMP006 for benchmark at 400 kHz: 140 µS end-to-end on oscilloscope - add some time before and after the conversation for setup and data collection. Peripheral can go to 1 MHz - not standard supported in RTOS, would only use if speed is an issue and the I2C slaves can have it. |
how to power the DAC and ADC when LaunchPad is isolated | fixed. The driver board delivers that |
ADC1115 address by default same as DAC address 0x48 | In schema/PCB, configure for 0X49 by connecting P1 tp V+
$6 or more but this would work http://www.ti.com/lit/ds/symlink/dcp021212.pdf http://www.ti.com/lit/ds/symlink/dcr010505.pdf
11.1 Layout Guidelines Carefully consider the layout of the PCB in order for the best results to be obtained. Input and output power and ground planes provide a low-impedance path for the input and output power.
For the output, the positive and negative voltage outputs conduct through wide traces to minimize losses. A good-quality, low-ESR, ceramic capacitor placed as close as practical across the input reduces reflected ripple and ensure a smooth start-up.
A good-quality, low-ESR, ceramic capacitor placed as close as practical across the rectifier output terminal and output ground gives the best ripple and noise performance.
The location of the decoupling capacitors in close proximity to their respective pins ensures low losses due to the effects of stray inductance, thus improving the ripple performance. This location is of particular importance to the input decoupling capacitor, because this capacitor supplies the transient current associated with the fast switching waveforms of the power drive circuits.
If the SYNC pin is being used, the tracking between device SYNC pins must be short to avoid stray capacitance. Never connect a capacitor to the SYNC pin. If the SYNC pin is not being used it is advisable to place a guard ring (connected to input ground) around this pin to avoid any noise pick-up. Ensure that no other trace is in close proximity to this trace SYNC trace to |
Maybe a port of the Arduino PID Library? Brett has documented this very deeply. Also has a self-train engine. Needs conversion from c++ to c (done that before for LCD libs, not that hard). Generic. Another option is a PID library that Martin Valencia and I selected as project of the month. This one is written for MSP432 (direct register, not driver/RTOS compatible). It's more a school example than a generic library. | port of the Arduino PID Library removed because we don't use PID, can always be ressurected from GIT |
need to set PID SetOutputLimits() to the maximum of the output function (whether PWM or DAC) | PID not implemented (was, but removed from source. Can be reintroduced if applicable ...) |
each lib usees its own int formats . TI-RTOS: UInt scpi: stdint , stdbool and int_fast16_t Display: unsigned char and stdint PID: double, int, long, unsigned ... | Whenever possible, let's use <stdint> and <stdbool>. Leave libs unchanged |
Fan Control | We have 7 pins of the PCA9557DPCA9557D left Either break these out to a header connector(and have the luxury to control 7 additional isolated input/outpts or add a FET that can control the FAN(12V). At the moment, it's not implemented. Up to the user to either have the fan on all the time or to change firmware ... |
ADC/DAC PCB changes: - quad DAC - I2C isolated broken out - guard trace around analog if doable - few GPIOs to software switch things on the power side? Isolation? - I2C extenders on the power board is a better option - keeps things isolated | WIP. Current board works for proto if VSENSE and VOUT of DAC are bodged with a solder blob Implemented |
Low power analog board | proto ready |
High power components | selected |
Temperature measurement? | solved in hardware, needs implementation in firmware. Implemented |
Voltage divider + protection for voltage sense. | Add a voltage divider for the voltage sense. Depending on the voltage range we accept, we'll need a (fairly stable) divider that takes care that the DAC input sees a level within its range. Maybe with a zener diode over the sense pins to protect the DAC from overvoltage...
Not needed - see comment peter: the input resistors keep max current below the ADC max. |