Here is my test command.  It reads the hardware revision registers (0x51...correct according to the documentation) and then it writes the chip number into the scratch register on the chip and reads it back.  As you can see, that is working:

AMSAT-NA PacSat Console
Flight Software X0.1o (built on Feb  7 2024 at 17:07:06)
<all sorts of error messages due to MRAM not working elided>
Pacsat>test ax
AX5043 #0: Revision=0x51, scratch=0
AX5043 #1: Revision=0x51, scratch=1
AX5043 #2: Revision=0x51, scratch=2
AX5043 #3: Revision=0x51, scratch=3
AX5043 #4: Revision=0x51, scratch=4
AX5043 #5: Revision=0x51, scratch=5

I also looked at the frequency.  With the MRAM not working, it is probably somewhat random, so I tried setting it, and it appears that it changed at least.  Note that you can't just set the frequency from the console, nor can you change it by a large amount.  I just kept repeating 99999 (probably 65535 is the largest) till it got down to where you see it.

Pacsat>>lower tx freq 99999
TxFreq=434908591
Pacsat>>lower tx freq 99999
TxFreq=434874128
Pacsat>>lower tx freq 99999
TxFreq=434839665
get ax
<receive 0 elided>
AX5043 dev 4 Tx:
 FIFOSTAT: 00
 PWRMODE: 60
 XTALCAP: 0
 PLLLOOP: 09
 PLLCPI: 08
 PLLVCOI: 12
 PLLRANGINGA: 08
 PLLVCODIV: 00
 FREQ 434839665 Hz
 MODULATION: 8
 TXPWRCOEFFB0: ff
 TXPWRCOEFFB1: f


So the fact that "get ax" read back the same frequency value as was written is good.  I also tried "test pll" but that only is set up for 2m which we know will not work because of the missing inductor.

A couple odd things.  Notice the scope trace attached.   Yellow is CLK.  Magenta is (supposedly) MOSI, Cyan is MISO.  I did not record any chip select lines.  I'm guessing that I don't have the MOSI wire soldered well, or else the header holes are wrong or some such.  Obviously MOSI is working or we would not have most of the above working.  But look at the clock signal.  I find the overshoot and undershoot worrysome.  There is a bit of ringing on the square parts of the signal, but the volt or so overshoot at either end seems odd.  The MOSI does appear as though there is some capacitance on the line except that when it goes up or down to match the clock it is quick.  So that is probably the chip when chip-select is activated. 

BTW, what you see there are first 16 clock pulses where the data on MOSI should be 0 (saying read register 0).  At the same time the data on MISO gives that status (which I don't think gets used).  Then a brief space and you see 8 clock pulses clocking out the 8 bits of register 0 (0x51) on MISO.

Anyway, this code is version X0.1o (letter o) and is checked in and pushed upstream.

BTW, I don't think any of the pullups are required in SPI (R801-R809) since despite being a bus, SPI uses push/pull i/o.  Could that relate to the overshoot?

Bob, I'm thinking to return my current Blinky and ask you to give me one (no rush--I've got Golf work to do) with MRAMs that work.  Perhaps the one you have with two working has a s/w problem with the other 2...I'm not sure, but it is way easier to debug when SOMETHING works :-)   What do you think?

Burns


73,

Burns Fisher, WB1FJ
AMSAT(R) Engineering -- Flight Software