panda-official / TimeSwipe

PANDA Timeswipe driver and firmware

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DMSBoard: Implement Shift Register Abstraction Layer

pmalessa opened this issue · comments

Overview

The DMS 0.1.0 Board utilizes 2 serially concatenated shift register to extend its GPIO capabilities. A few Pins have been moved from GPIO Pins on the SAM into this shift register and many more have been added.
An Abstraction Layer shall be implemented to be able to set individual GPIOs on this shift register as if it is a normal GPIO.

Pin Definitions

The Shift Register are connected as followed:

SAM Pin Function
PC5 Data
PC6 Clock
PC7 Strobe

16 Bits can be controlled, from which some are reserved for future use:

Bit Function
16 DAC On
15 SPI Ch2 - unused
14 SPI Ch1
13 SPI Ch0
12 QSPI CS3 - unused
11 QSPI CS2 - unused
10 QSPI CS1
9 QSPI CS0
8 UB4 On - unused
7 UB3 On - unused
6 UB2 On - unused
5 UB1 On
4 IEPE4 On
3 IEPE3 On
2 IEPE2 On
1 IEPE1 On

Details

  • LSB has to be transmitted first
  • Shift Register IC: 74HC595

I'd like to ask for what IEPE 1-IEPE 4 stand for?

Also about QSPI CS0, QSPI CS1 - do they work the same way like SPI Ch0, SPI Ch 1,mean addressing chip 1-chip 4?

IEPE1-4 enables the U_Bridge for each channel separately. The same functionality as was previously done by PC07 on SAM can now be done via the shift register for each Input channel.

The QSPI CS Pins work differently. They are directly connected to the CS Pins of the 2 chips. Therefore, you have to make sure to enable only one at a time

Wheres the difference between issue_85_86 and issue_85_86_ref branch?
Is the doc updated? Couldn't find it. Thanks!

The main difference is some refactoring ( issue_85_86_ref) was made for nodeControl and working with separate measurement channels.
The documentation is completed in my opinion if I didn't miss something