Some progress is also made on MCU programming side. I had some tough time understanding
SPI modes and particularly with many presumptions how to handle MISO signal (data sent from peripheral device to MCU)
. Another story was communicating with LCD but after all I can say that first code is done which provides basic functionality using MCU control.
When code will be in good shape (decently debugged and tested) I'll make it public on
Bitbucket. Maybe some sequences will be also recorded with camcorder and provide to public.
Right now I have welcome screen, self-test (check SPI devices availability) and setting of voltage, current and their limits.
Welcome screen (info about model, firmware, number of channels, range, pre-regulator type, ADC and DAC resolution):
If self-test passed screen will looks like this:
Here is how self-test screen will be in case that one channel is faulty (a SPI cable is removed from Ch#2):
Green LED's that belongs to Ch#2 (left side) should not be active. Not really a bug because proper BP PCB handling is wait to be added.Three values for each channel will be presented most of the time in two rows. Depending of detected mode of operation (available on I/O Expander inputs) in the first row with bigger numbers will be shown measured output voltage (CV mode) or current (CC mode). Second row displays measured and max. value of current (CV mode) or voltage (CC mode). Here is an example when both channel is in CV mode (first with load, second without load connected):
If Ch#1 enters CC mode voltage value will be replaced with output current:
If i.e. second channel is not defined or did not passed initial self-test, screen will looks like this:
Please also note color coded keys in the keypad's first column: they are used as "Function" keys and match right side menu (four position). The rest of the keypad is standard phone pad (0-9, * and #). Idea is to reach any menu options with minimum keys pressed. Also important function like "fine" and "coarse" output adjustment (increasing and decreasing) will be assigned to "hotkeys" on phone pad.
So far all SPI functionality is tested, namely: ADC, DAC, I/O expander (on post-regulator PCB), LED driver (on BP PCB), RTC, external EEPROM, LCD, Ethernet (on MCU PCB). And now one sad fact: Ethernet is out of game with current MCU if Arduino sketches is used. It's library (
EtherCard) in combination with other already used (LCD and Arduino itself), requires more memory than
ATmega32u4 has
. That calls for another MCU PCB version and next time I'll not go below
ATmega2560. But with current set of ideas what could be added it's quite possible that even 256K will not be enough
.
Anyway, idea is to put set of nice functionality in 32K and release MCU PCB with existing MCU. I hope that software feature list will be ready for release soon.