Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test UART Serial Algorithm #20

Open
daveythacher opened this issue Apr 13, 2023 · 10 comments
Open

Test UART Serial Algorithm #20

daveythacher opened this issue Apr 13, 2023 · 10 comments
Assignees
Milestone

Comments

@daveythacher
Copy link
Owner

No description provided.

@daveythacher
Copy link
Owner Author

Add documentation under LED_Matrix/lib/Serial/serial_uart, LED_Matrix/src/uart and LED_Matrix/include/Serial/serial_uart.

@daveythacher daveythacher modified the milestones: 0.1.1, 0.1.2 Apr 13, 2023
@daveythacher daveythacher modified the milestones: 0.1.2, 0.1.1 Apr 27, 2023
@daveythacher
Copy link
Owner Author

Create idle loop to fire bus idle token from device to host every 10uS.

Host must send bus active token to device.
Host must wait for the bus to become active (no more idle loop on device). (Timeout of 100uS.)
If error device discards frame and enters idle loop.
If successful device enters idle loop once completed.

Create idle loop within serial_task

If frame does not get response back within timeout host can attempt to recover the bus back to idle.
If host detects the bus became idle too soon, frame is lost and host will drop it. (UDP)
Frame corruption is allowed in this protocol as it is not believed to be worth the computation. (However DMA may support verification.)

This would supersede the serial_uart_v2.
This works to the same goal of marking frames on the wire just without discrete control signals.

@daveythacher
Copy link
Owner Author

I may be interested in replacing the current logic with the previous post's outline. This may also remove the need for the other UART version.

daveythacher added a commit that referenced this issue May 27, 2023
#20 Updates: Serial Protocol changes to mark frames
@daveythacher
Copy link
Owner Author

May want to add checksum to this. DMA may be able to do this passively.

@daveythacher
Copy link
Owner Author

May want to remove the callback since this is now an interface library. There is no need for this anymore.

@daveythacher
Copy link
Owner Author

Tested aspects of this.

@daveythacher
Copy link
Owner Author

Tested state machine. (idle and start tokens. Packet length.)
Tested CRC logic calculation.
Did not pass valid data through. Did not test CRC rejection.

@daveythacher
Copy link
Owner Author

Lets go back to framed comms.

@daveythacher daveythacher reopened this Sep 19, 2023
@daveythacher
Copy link
Owner Author

Plan is to move the UART protocol to external RP2040. This will allow a simpler protocol between the two RP2040s. I am not sure there is enough performance on a single RP2040. (A RP4050 would probably handle it.)

@daveythacher
Copy link
Owner Author

One core is pretty much consumed on convert the RGB values into bitplanes to conserve bandwidth. The bandwidth requirement for a single 16x32 display is 31.5Mbps (0.74Mbps for hardware PWM). This is about 512 pixels, with this core we can support something like 8192 pixels.

Another core is pretty much consumed doing multiplexing at high frequency. (This is better with hardware PWM.)

@daveythacher daveythacher self-assigned this Sep 20, 2023
daveythacher added a commit that referenced this issue Sep 23, 2023
daveythacher added a commit that referenced this issue Sep 24, 2023
daveythacher added a commit that referenced this issue Sep 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant