Add AMDC Firmware changes to implement the DCP#500
Conversation
|
We've implemented the Daisy Chain Protocol per this comment. However, we need to ensure that the current implementation meets the timing requirements for 3-phase current control. At this point in time, we are able to exchange data across 2 AMDS boards. The timing spec is not yet met. See:
|
…unt for jumper cables
|
@elsevers, I increased the start bit delay from 2.5us to 5us. I've also updated the UART state machine to support out-of-order packets. With these changes, the AMDC is able to receive 3 FBCs worth of data in random order. It validates them properly and then is able to display them to the terminal. At higher switching frequency, I'm getting more and more timed-out bytes, but it's very little compared to the valid packets counter. I tested the current changes by logging a sinusoidal waveform from a function generator. This signal is given to the 3rd FBC, the last in the daisy-chain.
|
|
Per 5/1 meeting:
Not discussed in the meeting: other requests from @elsevers:
Since this is not ready for merging, this should be a |
addressed
@elsevers, I'm not sure what this request means. I don't know where in the firmware it needs to know when a transmission is complete. There are functions for setting and reading the enabled registers' value, which may fulfil this item.
This is correct
I don't think so.
Anyone using an AMDS will currently need to add a line that enables all channels on it. I'm not really sure where to add logic for enabling all channels by default. |
|
Thanks @mohamed-dek1. Good updates here.
I had unfortunate wording on this one. This is a simple request to add a wrapper function for setting the verilog register that is used to determine which channels we expect to receive data on (
I think we can figure out a way to have a default value indicating we expect to receive data on all channels ( |
The user will not have to call the Xil... function. They call the
I've added some logic in the |
This is not what I mean. The user needs to call a function the sets the bit mapped field |
I've added these functions that let you read and set the enabled register. Is this what you're looking for? |
|
@elsevers, I've update the |
|
I replaced the tabs with spaces, and it's still showing problems. I'm not sure what's wrong. |
|
I mistakenly committed my changes directly to this branch instead of making a new branch to merge into this one. I plan to revert these commits and make a new branch for them so that I may properly test them tomorrow. I am referencing commits |
* Refactor ch_valid reg to match convention * Change AMDS_CH_VALID_MASK_LUT type to uint32_t * Remove space --------- Co-authored-by: Harley Peterson <pet05059@umn.edu>






Closes #504
Notes
Anything reviewers should be aware of when reviewing? Other related issues? Known problems? Future work?
Self-Review
Approachsection of the issue(s) it is closing? NoReviewer Instructions
Reviewers, please copy and paste a suitable review checklist into your review and answer all questions.
Appendix
This section should be the same for all PRs. Do not edit this section when creating a PR.
Review Checklists
Checklists maintained by the eLev lab for research repositories include:
Standard checklist