Hi.
I am posting this question on behalf of the Attitude, Determination, and Control System Team (ADCS) for the MAXWELL CubeSat Project at the University of Colorado Boulder.
I am using the Beaglebone Black hardware (AM335x processor) with a custom bare metal operating system our team has designed to communicate between various subsystems on a 6U CubeSat that will be competing in the University Nanosat Program, Nanosat 9 competition.
I am currently working on setting up a bare metal SPI interface through the SPI1 module. I have been using the TI Starterware code and McSPI driver as a basis. While trying to test the SPI transmission using a logic analyzer (with and without connecting the slave device), I found that the clock does not seem to be routed to the module or to function as expected (clock signal was either missing or at times just jumped high for once and back to low again when evaluated for 20 sec period), and hence I am not getting any data transmission on the MOSI or MISO lines visible on the logic analyzer. I have attached code snippets and logic analyzer output.
In the code we have set the module mode of the CM_PER_SPI1_CLKCTRL Register to Enable (0x2) as well as the CM_PER_L4LS_CLKCTRL Register to Enable (0x2). We have set the SPI polarity as 0 and Phase as 1 in accordance with our slave device datasheet. We also tried setting the CLKACTIVITY_SPI_GCLK and CLKACTIVITY_L4LS_GCLK in CM_PER_L4LS_CLKSTCTRL register as these are mentioned to be the main clock domains of SPI in the AM355x processor datasheet and several other E2E posts. I am still unable to transmit anything over the SPI bus.
It would be much appreciated if someone on E2E could guide us in the right direction with regard to any important register settings required to use the SPI1 module. Eagerly awaiting your response.