ADC logging for temperature calibration
Dependencies: mbed MODSERIAL FastPWM ADS8568_ADC
Diff: main.cpp
- Revision:
- 21:4833e7fbcec7
- Parent:
- 19:ab2d7aa17a20
- Child:
- 22:aba3ee6df08e
--- a/main.cpp Fri Sep 20 09:26:43 2019 +0000 +++ b/main.cpp Fri Sep 20 10:38:53 2019 +0000 @@ -24,17 +24,16 @@ unsigned long drive_board_uid[UID_TABLE_LENGTH][3] = {{0x005B0060, 0x32375101, 0x32363531}, - {0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000}, - {0x00000000, 0x00000000, 0x00000000}}; + {0x0051003D, 0x32375114, 0x30333732}, + {0x00520060, 0x32375101, 0x32363531}, + {0x00570060, 0x32375101, 0x32363531}}; float drive_board_cal[UID_TABLE_LENGTH][2][2] = - {{{0.0, 1.0}, {0.0, 1.0}}, - {{0.0, 1.0}, {0.0, 1.0}}, - {{0.0, 1.0}, {0.0, 1.0}}, - {{0.0, 1.0}, {0.0, 1.0}}}; + {{{0.096724353, 10.1817431}, {0.056098807, 10.19962849}}, + {{0.059473025, 10.14814327}, {0.03200058, 10.25073923}}, + {{0.01887149, 10.39360225}, {0.03115874, 10.28199855}}, + {{0.052545339, 10.06008621}, {0.094239471, 10.11983777}}}; - MODSERIAL pc(PA_9, PA_10, BUFFER_SIZE); //mcu TX, RX, BUFFER_SIZE byte TX and RX buffers ADS8568_ADC adc(PB_15, PB_14, PB_13, PB_12, PC_15, PC_0, PC_1, PC_2, PC_3); I2C i2c(PB_7, PB_8); //SDA, SCL @@ -87,7 +86,7 @@ guard_2.pulsewidth_ticks(0); pc.printf("\r\nUnique ID: %08X %08X %08X \r\n", uid[0], uid[1], uid[2]); - int i_board = 0; + int i_board = -1; for (int i = 0; i < UID_TABLE_LENGTH; i++) { if (uid[0]==drive_board_uid[i][0] && uid[1]==drive_board_uid[i][1] && uid[2]==drive_board_uid[i][2]) @@ -97,7 +96,7 @@ } } - if (i_board > 0) pc.printf("Drive board: BRD%d\n",i_board); + if (i_board != -1) pc.printf("Drive board: Board %d\n",drive_board_serial_number[i_board]); else pc.printf("Drive board UID match not found\n"); pc.printf("iStep, eTime, I1, V1, R1_adc, R1_ohm, I2, V2, R2_adc, R2_ohm\n"); @@ -138,7 +137,7 @@ curr[iHeater] = adc.read_channel_result(i_port[iHeater]); v[iHeater] = adc.read_channel_result(v_port[iHeater]); r_adc[iHeater] = (float)v[iHeater]/(float)curr[iHeater]; - if (i_board > 0) + if (i_board != -1) r_ohm[iHeater] = drive_board_cal[i_board][iHeater][0] + r_adc[iHeater]*drive_board_cal[i_board][iHeater][1]; else r_ohm[iHeater] = 0.0;