fmckeogh / usb-pd-rs

USB-PD and associated hardware driver libraries in Rust
MIT License
19 stars 4 forks source link

Migrate to RTIC v2, async version #7

Closed fmckeogh closed 6 months ago

fmckeogh commented 9 months ago

Async usb-pd should be compatible with both embassy and RTIC v2. I can only test RTIC as I could not compile embassy to fit in the 16KB of flash on the ZY12PDN.

bentwire commented 8 months ago

I'll test on embassy ASAP.

Sorry I disappeared, I got Covid, only now been able to get back to any hobby stuff.

fmckeogh commented 8 months ago

@bentwire I'm sorry to hear that, I hope you're feeling better

fmckeogh commented 8 months ago

@bentwire Actually, would you be able to test the embassy branch? I got it working and I think you're still right about embassy being the way to go over RTIC.

(theoretically usb-pd should be async and agnostic between the two, but I'm more than happy to only focus on embassy for now)

bentwire commented 7 months ago

I need to figure out how to merge my vdm changes in to the embassy branch or just make a quick test program.

My "quick hack" has turned in to something that sends those vendor messages and now its not a straight forward merge, oops!

The code looks good to me. Might want to change the poll fn name. I was thinking the next step would be to make it fully interrupt driven, and I think async uses the poll name in some of its traits? May or may not need to worry about it... Depends on if embassy uses that name or not when you make something an InterruptExecutor...

fmckeogh commented 7 months ago

@bentwire Yes, very good point about true interrupt driving. The ZY12PDNs don’t support it, but FUSB302Bs do have that interrupt pin, it would be cool to expose that as an async task that self-awaits on the interrupt pin.

I’m building some new hardware with two FUSB302Bs and an F303K8, this should fix the binary size issues I’ve been having.