jadonk / beagleconnect

Moved to https://git.beagleboard.org/beagleconnect/freedom
https://git.beagleboard.org/beagleconnect/freedom
35 stars 16 forks source link

SW: MSP430: simplify code via use of I2C #55

Open jadonk opened 3 years ago

jadonk commented 3 years ago

Make the CDC full logger/shell only by:

I'm a little confused on this suggestion as I2C would be quite a bit slower than UART. Using I2C for mode/control tasks makes a lot of sense, but I wonder how to have reasonable data throughput without keeping the WPAN data on UART.

@statropy would you like to elaborate on the proposal?

statropy commented 3 years ago

UART baud rate is 115,200 and I2C is 100 kbit/s in Standard Mode. I'd consider those functionally equivalent. It looks like the MSP430 can also operate in I2C Fast Mode, which is 400 kbit/s.

jadonk commented 3 years ago

But why can't we up the UART rate to 1Mbit? Are the ports that slow?

statropy commented 3 years ago

I did a LOT of throughput testing on the UART. 115200 was the highest speed that would work reliably without data loss. It's not just the raw clocking of the bus, but servicing the interrupt and pulling the data out without Rx overflow. The UART interrupt handler is very small, but it has to compete with the USB interrupts also.

Pillar1989 commented 3 years ago

@statropy Is it possible to increase the burn-in speed of the CC1352? Currently, it takes almost 30 seconds to burn in one time, maybe more.

statropy commented 3 years ago

The serial bootloader method already detects 'blank' sections and skips those when programming, so it's as fast as it is going to get. If you want a faster update method, then using the SWD port with an external programmer like a JLink is your best option.