View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 051 | SBP | hard.回路 | public | 2022-06-30 19:31 | 2023-07-13 08:37 |
| Reporter | na6ko | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | open | ||
| Summary | 051: SPI の DI | ||||
| Description | SPI は SERCOM1 (master) の1つで出力(DO)と入力(DI)を扱っている. ファームウェアでは read cycle でアドレス生成に 2 SPI cycle かかり、その 2 SPI cycle の間に有用な read data は 1 SPI Cycle のみである. このため SERCOM1 RX には無用なデータが 2 byte おきに入り、DMAからそれを読み捨てる方法をイベントとタイマで実装していた. r1.1 基板出図後、ファームウェア開発中に動作不安定になってしまいイベントとタイマの実装をやめて、SERCOM1 RX を trigger とした方式に変更して一応の安定を得た. 問題はファームウェアの RAM 消費が増えたり読み捨てる(並べ直す) DMA が複雑になってしまう. よって DI は別の SERCOM (slave) として割り振り、 CLK = SERCOM1.CLK, SS = DW_SS (U301A.Q) とすると読み捨てがいらないしエッジ極性も個別にできるなど利点が多い. ところが余っているピン PA05,PA10,PA22,PA23 では SPI_DI(PA19, SERCOM1 か 同4) では SS と CLK を割り振れない. 対処としてはIOピンの割り当てを最初からやり直すことになる. | ||||
| Tags | No tags attached. | ||||
| Attach Tags | |||||