Tim Edwards
02/02/2022, 7:40 PMWeston Braun
02/02/2022, 7:46 PMWeston Braun
02/02/2022, 7:47 PMWeston Braun
02/02/2022, 7:47 PMWeston Braun
02/02/2022, 7:48 PMTim Edwards
02/02/2022, 7:49 PMWeston Braun
02/02/2022, 7:50 PMWeston Braun
02/02/2022, 7:50 PMTim Edwards
02/02/2022, 7:51 PMTim Edwards
02/02/2022, 7:52 PMTim Edwards
02/02/2022, 7:53 PMWeston Braun
02/02/2022, 7:54 PMWeston Braun
02/02/2022, 7:55 PMWeston Braun
02/02/2022, 7:59 PMWeston Braun
02/02/2022, 7:59 PMWeston Braun
02/02/2022, 8:01 PMWeston Braun
02/02/2022, 8:01 PMTim Edwards
02/02/2022, 8:06 PMTim Edwards
02/02/2022, 8:07 PMWeston Braun
02/02/2022, 8:08 PMWeston Braun
02/02/2022, 8:09 PMWeston Braun
02/02/2022, 8:09 PMWeston Braun
02/02/2022, 8:09 PMTim Edwards
02/02/2022, 8:14 PMTim Edwards
02/02/2022, 8:16 PMTim Edwards
02/02/2022, 8:16 PMWeston Braun
02/02/2022, 8:17 PMWeston Braun
02/02/2022, 8:17 PMWeston Braun
02/02/2022, 8:18 PMWeston Braun
02/02/2022, 8:18 PMTim Edwards
02/02/2022, 8:19 PMWeston Braun
02/02/2022, 8:21 PMTim Edwards
02/02/2022, 8:23 PMTim Edwards
02/02/2022, 8:23 PMWeston Braun
02/02/2022, 8:23 PMWeston Braun
02/02/2022, 8:24 PMWeston Braun
02/02/2022, 8:24 PMWeston Braun
02/02/2022, 8:25 PMTim Edwards
02/02/2022, 8:26 PMTim Edwards
02/02/2022, 8:27 PMWeston Braun
02/02/2022, 8:27 PMTim Edwards
02/02/2022, 8:28 PMWeston Braun
02/02/2022, 8:30 PMWeston Braun
02/02/2022, 8:41 PMWeston Braun
02/02/2022, 8:41 PMTim Edwards
02/02/2022, 8:42 PM0x1803
. The input disable should be low. The output disable is high, but it doesn't matter for user control because the user output enable is controlled by an input signal, not the configuration bit.Tim Edwards
02/02/2022, 8:44 PMTim Edwards
02/02/2022, 8:46 PMWeston Braun
02/02/2022, 8:49 PMWeston Braun
02/02/2022, 8:50 PMWeston Braun
02/02/2022, 8:50 PMTim Edwards
02/02/2022, 9:32 PMWeston Braun
02/02/2022, 9:33 PMWeston Braun
02/02/2022, 9:35 PMstatus reg_1 = 0x0
status reg_2 = 0xff
************************************
verifying...
************************************
status reg_1 = 0x0
status reg_2 = 0x2
setting address to 0x0
addr 0x0: read compare successful
addr 0x100: read compare successful
addr 0x200: read compare successful
addr 0x300: read compare successful
total_bytes = 1016
pll_trim = b'00'
subsequent flash
python3 ../util/caravel_hkflash.py blink.hex
Success: Found one matching FTDI device at <ftdi://ftdi:232>h:1:13/1
Caravel data:
mfg = 0456
product = 10
project ID = 00000000
Resetting Flash...
status = 0x00
JEDEC = b'ef4016'
Erasing chip...
done
status = 0x0
setting address to 0x0
addr 0x0: flash page write successful
addr 0x100: flash page write successful
addr 0x200: flash page write successful
addr 0x300: flash page write successful
total_bytes = 1024
status reg_1 = 0x0
status reg_2 = 0x2
************************************
verifying...
************************************
status reg_1 = 0x0
status reg_2 = 0x2
setting address to 0x0
addr 0x0: *** read compare FAILED ***
b'930000009301000013020000930200001303000093030000130400009304000013050000930500001306000093060000130700009307000013080000930800001309000093090000130a0000930a0000130b0000930b0000130c0000930c0000130d0000930d0000130e0000930e0000130f0000930f00001705000013058538970500f1938505f8170600f1130686f763dcc5008326050023a0d5001305450093854500e3c8c5fe170500f1130585f5970500f1938505f56358b5002320050013054500e34cb5feef00400b6f000000b70200281303001223906200a381020063080602130f80009373f60f93de73002380d20193ee0e012380d20193931300'
<----->
b'930000009301000013020000930200001303000093030000130400009304000013050000930500001306000093060000130700009307000013080000930800001309000093090000130a0000930a0000130b0000930b0000130c0000930c0000130d0000930d0000130e0000930e0000130f0000930f00001705000013050538970500f1938505f8170600f1130686f763dcc5008326050023a0d5001305450093854500e3c8c5fe170500f1130585f5970500f1938505f56358b5002320050013054500e34cb5feef00400b6f000000b70200281303001223906200a381020063080602130f80009373f60f93de73002380d20193ee0e012380d20193931300'
addr 0x100: read compare successful
addr 0x200: read compare successful
addr 0x300: *** read compare FAILED ***
b'372700001307878023a0e700b70700269387c70023a00700b70700261307100023a0e70013000000b707002603a7070093071000e30af7feb70700219387470023a00700b70700219387870023a00700b70700219387c70023a00700b70700211307100023a0e700b707002123a00700b70700269387c70023a00700b70700269387070123a00700232604fe6f0000018327c4fe938717002326f4fe0327c4feb7170000938777bbe3d4e7feb70700211307100023a0e700b70700269387c7003707ffff23a0e700b7070026938707011307f0ff23a0e700232604fe6f0000018327c4fe938717002326f4fe0327c4feb7170000938777bbe3d4e7fe6ff0dff6'
<----->
b'372700001307878023a0e700b70700269387c70023a00700b70700261307100023a0e70013000000b707002603a7070093071000e30af7feb70700219387470023a00700b70700219387870023a00700b70700219387c70023a00700b70700211307100023a0e700b707002123a00700b70700269387c70023a00700b70700269387070123a00700232604fe6f0000018327c4fe938717002326f4fe0327c4fe9307b012e3d6e7feb70700211307100023a0e700b70700269387c7003707ffff23a0e700b7070026938707011307f0ff23a0e700232604fe6f0000018327c4fe938717002326f4fe0327c4fe9307b012e3d6e7fe6ff05ff7ffffffffffffffff'
total_bytes = 1024
pll_trim = b'00'
Tim Edwards
02/02/2022, 9:42 PMWeston Braun
02/02/2022, 9:50 PMWeston Braun
02/02/2022, 9:52 PMWeston Braun
02/02/2022, 9:54 PMWeston Braun
02/02/2022, 9:56 PMTim Edwards
02/02/2022, 10:03 PMTim Edwards
02/02/2022, 10:03 PMWeston Braun
02/02/2022, 10:04 PMWeston Braun
02/02/2022, 10:04 PMWeston Braun
02/02/2022, 10:05 PMWeston Braun
02/02/2022, 10:05 PMWeston Braun
02/02/2022, 10:06 PMTim Edwards
02/02/2022, 10:08 PMTim Edwards
02/02/2022, 10:09 PMWeston Braun
02/02/2022, 10:09 PMWeston Braun
02/02/2022, 10:10 PMWeston Braun
02/02/2022, 10:12 PMWeston Braun
02/02/2022, 10:13 PMTim Edwards
02/02/2022, 10:14 PMTim Edwards
02/02/2022, 10:15 PMWeston Braun
02/02/2022, 10:27 PMb'23a00700b70700269387070123a00700232604fe6f0000018327c4fe938717002326f4fe0327c4feb77700009387f752e3d4e7feb70700211307100023a0e700b70700269387c700130700f023a0e700b7070026938707011307f0ff23a0e700232604fe6f0000018327c4fe938717002326f4fe0327c4feb77700009387f752e3d4e7fe6ff0dff6'
<----->
b'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
That seems to be a different issue though. And I can get around it just by reflashingWeston Braun
02/02/2022, 10:28 PMWeston Braun
02/02/2022, 10:33 PM//left side GPIO, bottom to top
reg_mprj_io_37 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_36 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_35 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_34 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_33 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_32 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_31 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_30 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_29 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_28 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_27 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_26 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_25 = GPIO_MODE_MGMT_STD_OUTPUT;
//right side GPIO, bottom to top
reg_mprj_io_1 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_2 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_4 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_5 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_6 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_7 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_8 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_9 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_10 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_11 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_12 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_13 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_4 = GPIO_MODE_USER_STD_INPUT_NOPULL;
reg_mprj_io_3 = GPIO_MODE_USER_STD_INPUT_NOPULL;
reg_mprj_io_2 = GPIO_MODE_USER_STD_INPUT_NOPULL; // 0x0403
reg_mprj_io_1 = GPIO_MODE_USER_STD_BIDIRECTIONAL; // 0x1803
reg_mprj_io_0 = GPIO_MODE_MGMT_STD_OUTPUT;
and I tried to strobe all pins through writes toWeston Braun
02/02/2022, 10:33 PMWeston Braun
02/02/2022, 10:34 PMWeston Braun
02/02/2022, 10:36 PMWeston Braun
02/02/2022, 10:36 PMWeston Braun
02/02/2022, 10:37 PMWeston Braun
02/03/2022, 12:17 AMWeston Braun
02/03/2022, 12:18 AMWeston Braun
02/03/2022, 12:19 AMTim Edwards
02/03/2022, 12:29 AMWeston Braun
02/03/2022, 12:47 AMWeston Braun
02/03/2022, 12:48 AMWeston Braun
02/03/2022, 1:39 AMWeston Braun
02/03/2022, 1:39 AMWeston Braun
02/03/2022, 1:40 AMTim Edwards
02/03/2022, 1:41 AMWeston Braun
02/03/2022, 1:41 AMWeston Braun
02/03/2022, 1:43 AMWeston Braun
02/03/2022, 1:44 AMTim Edwards
02/03/2022, 1:45 AMTim Edwards
02/03/2022, 1:46 AMTim Edwards
02/03/2022, 1:49 AM// NOTE: The following list sets too many bits, but all
// channels operate correctly as management-controlled outputs
reg_mprj_io_13 = 0x0fff;
reg_mprj_io_12 = 0x0fff;
reg_mprj_io_11 = 0x0fff;
reg_mprj_io_10 = 0x17ff;
reg_mprj_io_9 = 0x1fdf;
reg_mprj_io_8 = 0x0fff;
reg_mprj_io_7 = 0x1ffe;
reg_mprj_io_6 = 0x0fff;
reg_mprj_io_5 = 0x17ff;
reg_mprj_io_4 = 0x0fff;
reg_mprj_io_3 = 0x0fff;
reg_mprj_io_2 = 0x0fff;
reg_mprj_io_1 = 0x1808;
reg_mprj_io_0 = 0x1808;
This was one of my more successful experiments. I was able to run a program that toggles all the outputs, and the configuration above had all positions on thie right side toggling except for 1-4, which are (probably) being driven by the FTDI chip.Weston Braun
02/03/2022, 1:52 AMbit 3: Input disable (bit field INPUT_DISABLE)
value 0 = Pin enabled for digital input
value 1 = Pin disabled for digital input
Tim Edwards
02/03/2022, 1:52 AMWeston Braun
02/03/2022, 1:53 AMWeston Braun
02/03/2022, 1:53 AMTim Edwards
02/03/2022, 1:54 AMWeston Braun
02/03/2022, 1:54 AMWeston Braun
02/03/2022, 1:54 AMWeston Braun
02/03/2022, 1:55 AMTim Edwards
02/03/2022, 1:56 AMWeston Braun
02/03/2022, 1:56 AMbits 10-12: Digital mode (bit field DIGITAL_MODE_MASK)
(value = {bit[12], bit[11], bit[10]} in the list below)
value 000 = analog mode
value 001 = analog mode
value 010 = digital input, 5kohm pull-up
value 011 = digital input, 5kohm pull-up
value 100 = open drain to power
value 101 = open drain to ground
value 110 = digital output
value 111 = digital output (weak)
Tim Edwards
02/03/2022, 1:57 AMTim Edwards
02/03/2022, 1:58 AMWeston Braun
02/03/2022, 1:58 AMWeston Braun
02/03/2022, 1:59 AMTim Edwards
02/03/2022, 2:00 AMWeston Braun
02/03/2022, 2:01 AMTim Edwards
02/03/2022, 2:02 AMTim Edwards
02/03/2022, 2:03 AMWeston Braun
02/03/2022, 2:05 AMWeston Braun
02/03/2022, 2:06 AMTim Edwards
02/03/2022, 2:06 AMuser_gpio_in
pin as long as the input buffer is enabled, regardless of any other setting (such as management enable/disable).Weston Braun
02/03/2022, 2:09 AMWeston Braun
02/03/2022, 2:10 AMTim Edwards
02/03/2022, 2:10 AMWeston Braun
02/03/2022, 2:12 AMTim Edwards
02/03/2022, 2:16 AMWeston Braun
02/03/2022, 2:17 AMWeston Braun
02/03/2022, 2:18 AMWeston Braun
02/03/2022, 2:19 AMTim Edwards
02/03/2022, 2:21 AMTim Edwards
02/03/2022, 2:22 AMWeston Braun
02/03/2022, 2:25 AMWeston Braun
02/03/2022, 2:27 AMTim Edwards
02/03/2022, 2:27 AMWeston Braun
02/03/2022, 2:28 AMWeston Braun
02/03/2022, 2:28 AMWeston Braun
02/03/2022, 2:29 AMTim Edwards
02/03/2022, 2:29 AMTim Edwards
02/03/2022, 2:31 AMTim Edwards
02/03/2022, 2:31 AMWeston Braun
02/03/2022, 2:37 AMWeston Braun
02/03/2022, 2:47 AMWeston Braun
02/03/2022, 2:53 AMTim Edwards
02/03/2022, 2:53 AMWeston Braun
02/03/2022, 2:54 AMWeston Braun
02/03/2022, 2:55 AMTim Edwards
02/03/2022, 2:55 AMWeston Braun
02/03/2022, 2:56 AMxclk
input on the board and jumpering J6
."Weston Braun
02/03/2022, 2:56 AMWeston Braun
02/03/2022, 2:57 AMTim Edwards
02/03/2022, 2:57 AMTim Edwards
02/03/2022, 2:59 AMWeston Braun
02/03/2022, 3:05 AMWeston Braun
02/03/2022, 3:06 AMTim Edwards
02/03/2022, 3:07 AMWeston Braun
02/03/2022, 3:07 AMWeston Braun
02/03/2022, 3:07 AMTim Edwards
02/03/2022, 3:08 AMWeston Braun
02/03/2022, 3:08 AMTim Edwards
02/03/2022, 3:10 AMTim Edwards
02/03/2022, 3:11 AMspi_io.h
?Weston Braun
02/03/2022, 3:22 AMWeston Braun
02/03/2022, 3:22 AMWeston Braun
02/03/2022, 3:23 AMWeston Braun
02/03/2022, 3:35 AMWeston Braun
02/03/2022, 3:42 AMjeffdi
jeffdi
jeffdi
jeffdi
jeffdi
jeffdi
jeffdi
Weston Braun
02/03/2022, 5:43 PMWeston Braun
02/03/2022, 5:46 PMWeston Braun
02/03/2022, 5:46 PMWeston Braun
02/03/2022, 5:48 PMWeston Braun
02/03/2022, 5:49 PMWeston Braun
02/03/2022, 5:50 PMTim Edwards
02/03/2022, 5:53 PMWeston Braun
02/03/2022, 6:01 PMWeston Braun
02/03/2022, 9:00 PMWeston Braun
02/03/2022, 9:01 PMWeston Braun
02/03/2022, 9:02 PMWeston Braun
02/04/2022, 12:56 AMWeston Braun
02/04/2022, 1:15 AMWeston Braun
02/04/2022, 1:24 AMWeston Braun
02/04/2022, 1:27 AMTim Edwards
02/04/2022, 1:46 AMWeston Braun
02/04/2022, 1:48 AMWeston Braun
02/04/2022, 1:52 AMWeston Braun
02/04/2022, 1:58 AMTim Edwards
02/04/2022, 1:58 AMWeston Braun
02/04/2022, 1:59 AMWeston Braun
02/04/2022, 1:59 AMWeston Braun
02/04/2022, 1:59 AMTim Edwards
02/04/2022, 2:00 AMWeston Braun
02/04/2022, 2:00 AMWeston Braun
02/04/2022, 2:00 AMTim Edwards
02/04/2022, 2:02 AMWeston Braun
02/04/2022, 2:04 AMWeston Braun
02/04/2022, 2:04 AMTim Edwards
02/04/2022, 2:04 AMTim Edwards
02/04/2022, 2:06 AMWeston Braun
02/04/2022, 2:14 AMTim Edwards
02/04/2022, 2:16 AMWeston Braun
02/04/2022, 3:18 AMWeston Braun
02/04/2022, 3:19 AMWeston Braun
02/04/2022, 3:21 AMWeston Braun
02/04/2022, 7:33 PMWeston Braun
02/04/2022, 11:06 PMWeston Braun
02/04/2022, 11:07 PMWeston Braun
02/04/2022, 11:07 PMWeston Braun
02/04/2022, 11:26 PMWeston Braun
02/04/2022, 11:37 PMWeston Braun
02/05/2022, 1:45 AMWeston Braun
02/05/2022, 3:50 AMWeston Braun
02/05/2022, 3:50 AMTim Edwards
02/05/2022, 4:08 PMAMUXBUS_A
and AMUXBUS_B
that are supposed to be used for some kind of pad-level switched-capacitor function. So with "analog enable" high, various combinations of the select and polarity bits will connect the pad to one of these two buses.Tim Edwards
02/05/2022, 4:22 PMWeston Braun
02/05/2022, 7:18 PMWeston Braun
02/05/2022, 7:18 PMWeston Braun
02/05/2022, 7:20 PMWeston Braun
02/05/2022, 7:20 PMWeston Braun
02/05/2022, 7:21 PMTim Edwards
02/05/2022, 7:21 PMTim Edwards
02/05/2022, 7:24 PMWeston Braun
02/05/2022, 7:24 PMTim Edwards
02/05/2022, 7:25 PMWeston Braun
02/05/2022, 7:25 PMWeston Braun
02/05/2022, 7:26 PMTim Edwards
02/05/2022, 7:27 PMTim Edwards
02/05/2022, 7:28 PMWeston Braun
02/05/2022, 7:30 PMWeston Braun
02/05/2022, 9:39 PMWeston Braun
02/05/2022, 9:54 PMWeston Braun
02/05/2022, 11:43 PMWeston Braun
02/05/2022, 11:44 PMWeston Braun
02/05/2022, 11:46 PMWeston Braun
02/05/2022, 11:47 PMWeston Braun
02/05/2022, 11:48 PMTim Edwards
02/05/2022, 11:52 PMWeston Braun
02/05/2022, 11:54 PMWeston Braun
02/05/2022, 11:54 PMWeston Braun
02/05/2022, 11:55 PMWeston Braun
02/05/2022, 11:56 PMWeston Braun
02/05/2022, 11:56 PMWeston Braun
02/05/2022, 11:57 PMWeston Braun
02/05/2022, 11:57 PMWeston Braun
02/06/2022, 12:07 AMTim Edwards
02/06/2022, 1:41 AMWeston Braun
02/06/2022, 1:42 AMWeston Braun
02/06/2022, 1:43 AMTim Edwards
02/06/2022, 1:52 AM010
, 011
, 110
, 111
.Weston Braun
02/06/2022, 1:52 AMbits 10-12: Digital mode (bit field DIGITAL_MODE_MASK)
(value = {bit[12], bit[11], bit[10]} in the list below)
value 000 = analog mode
value 001 = analog mode
value 010 = digital input, 5kohm pull-up
value 011 = digital input, 5kohm pull-up
value 100 = open drain to power
value 101 = open drain to ground
value 110 = digital output
value 111 = digital output (weak)
?Tim Edwards
02/06/2022, 1:56 AM100
and 101
could be used with an external pull-up or pull-down resistor, respectively.Weston Braun
02/06/2022, 2:03 AMWeston Braun
02/06/2022, 2:04 AMWeston Braun
02/06/2022, 2:04 AMWeston Braun
02/06/2022, 2:04 AMTim Edwards
02/06/2022, 2:06 AMWeston Braun
02/06/2022, 2:19 AMWeston Braun
02/06/2022, 2:19 AMWeston Braun
02/06/2022, 2:19 AMWeston Braun
02/06/2022, 2:23 AMWeston Braun
02/06/2022, 2:23 AMWeston Braun
02/06/2022, 2:24 AMWeston Braun
02/06/2022, 2:24 AMWeston Braun
02/06/2022, 2:27 AMWeston Braun
02/06/2022, 2:44 AMWeston Braun
02/06/2022, 2:44 AMWeston Braun
02/06/2022, 3:21 AMTim Edwards
02/06/2022, 3:21 AMWeston Braun
02/06/2022, 3:21 AMWeston Braun
02/06/2022, 3:22 AMWeston Braun
02/06/2022, 3:22 AMWeston Braun
02/06/2022, 3:22 AMWeston Braun
02/06/2022, 3:32 AMWeston Braun
02/06/2022, 3:32 AMWeston Braun
02/06/2022, 3:42 AMWeston Braun
02/06/2022, 3:42 AMWeston Braun
02/06/2022, 3:43 AMWeston Braun
02/06/2022, 3:43 AMWeston Braun
02/06/2022, 3:46 AMWeston Braun
02/06/2022, 3:48 AMuser_gpio_in
pin as long as the input buffer is enabled, regardless of any other setting (such as management enable/disable)."Weston Braun
02/06/2022, 3:51 AMWeston Braun
02/06/2022, 3:53 AMWeston Braun
02/06/2022, 6:26 AMWeston Braun
02/06/2022, 6:27 AMWeston Braun
02/06/2022, 6:49 AMTim Edwards
02/06/2022, 2:40 PMTim Edwards
02/06/2022, 3:10 PMTim Edwards
02/06/2022, 4:52 PMWeston Braun
02/06/2022, 5:16 PMWeston Braun
02/06/2022, 5:16 PMWeston Braun
02/06/2022, 5:18 PMWeston Braun
02/06/2022, 5:20 PMTim Edwards
02/06/2022, 5:29 PMTim Edwards
02/06/2022, 5:30 PMWeston Braun
02/06/2022, 5:30 PMTim Edwards
02/06/2022, 5:37 PMWeston Braun
02/06/2022, 6:13 PMWeston Braun
02/06/2022, 6:13 PMTim Edwards
02/06/2022, 8:24 PMTim Edwards
02/06/2022, 9:16 PMWeston Braun
02/06/2022, 9:20 PMTim Edwards
02/06/2022, 9:47 PMWeston Braun
02/06/2022, 9:52 PMWeston Braun
02/06/2022, 9:52 PMWeston Braun
02/06/2022, 9:54 PMjeffdi
Weston Braun
02/06/2022, 9:55 PMWeston Braun
02/06/2022, 9:55 PMjeffdi
Weston Braun
02/06/2022, 9:56 PMTim Edwards
02/06/2022, 9:58 PMRussell Friesenhahn
02/09/2022, 4:49 AMRussell Friesenhahn
02/09/2022, 4:54 AMWeston Braun
02/09/2022, 4:54 AMWeston Braun
02/09/2022, 4:56 AMRussell Friesenhahn
02/09/2022, 5:24 AMWeston Braun
02/09/2022, 5:25 AMTim Edwards
02/09/2022, 1:05 PMWeston Braun
02/09/2022, 6:08 PMTim Edwards
02/09/2022, 6:53 PMpkg/
with wire bond drawing caravel_qfn_bond.pdf
, from which you can measure the length of the bond wires as about 1.6mm as the very, very tiny crow flies, which accounting for the bend of the wire can be estimated as a maximum of maybe 2mm. The wire would be 1 mil diameter gold, which Google says is 1.7 mohms per mil. 2mm is about 80mil, so that's about 0.136 ohms per bond wire. The QFN package has pads that go straight through; the wire bond lands right on top of the pin. So that would also contribute milliohms. The largest contributing factor is likely to be the contacts, I would think. Yesterday I found additional measurements of via resistance in the SkyWater e-test documents, and had to revise some of my resistance tables accordingly: 185 ohms per contact from local interconnect to n-diffusion, and a whopping 585 ohms per contact from local interconnect to p-diffusion. I'm assuming that the wafer is probably at typical process corner, but the 3 sigma high side for those values are 280 ohms and 840 ohms, respectively.Weston Braun
02/09/2022, 6:55 PMWeston Braun
02/09/2022, 6:56 PMWeston Braun
02/09/2022, 6:57 PMNMOS: 306 um x 306 um, 36 x 36 grid, ~175 mΩ
PMOS: 372 um x 372 um, 48 x 48 grid, ~325 mΩ
and my measured values are
0.6 for NMOS and 0.642 for pmos.
Weston Braun
02/09/2022, 6:59 PMTim Edwards
02/09/2022, 7:16 PMWeston Braun
02/09/2022, 7:50 PMWeston Braun
02/09/2022, 7:50 PMWeston Braun
02/09/2022, 7:51 PMTim Edwards
02/09/2022, 7:55 PMWeston Braun
02/09/2022, 8:03 PMTim Edwards
02/09/2022, 8:04 PMWeston Braun
02/09/2022, 9:30 PMWeston Braun
02/09/2022, 9:30 PMWeston Braun
02/09/2022, 9:31 PMTim Edwards
02/09/2022, 9:31 PM