beagleboard / beagleboard/librobotcontrol

SPI chip select/slave select not working

Open
#215 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
212
Forks
167
PR merge metrics
No merged PRs in 30d

Description

**The bug**
The slave select doesn't pull down during transfer.

**Description**
1. Using pocketbeagle, with robotcontrollib 1.0.5, and an SPI device (_RFM26W_ but doesn't matter)
2. Running the '*rc_spi_loopback.c*' example
3. using '*rc_spi_init_auto_slave(BUS, SLAVE, BUS_MODE, SPI_SPEED)*'
4. Verified with oscilloscope, that the CS line doesnt move during the program. CS goes high at program start and goes low on exit.

**Temporary fix**
Temporary fix with '*rc_spi_init_manual_slave(BUS, SLAVE, BUS_MODE, SPI_SPEED, chip, pin)*' and manual manipulation of CS with *rc_spi_manual_select(BUS, SLAVE, 0) / rc_spi_manual_select(BUS, SLAVE, 1)* before/after every spi event.
This way cant use hardware CS.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the rc_spi_loopback.c example and trace rc_spi_init_auto_slave(BUS, SLAVE, BUS_MODE, SPI_SPEED) into the SPI initialization and transfer path. Compare its behavior with rc_spi_init_manual_slave and rc_spi_manual_select. Done means hardware chip select pulls low during transfers and returns high afterward without manual CS control.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.