kopia lustrzana https://github.com/peterhinch/micropython-nano-gui
DRIVERS.md Add notes re FeatherWing 2.9 inch EPD
rodzic
dc9d2e87de
commit
85d5753433
53
DRIVERS.md
53
DRIVERS.md
|
@ -38,6 +38,7 @@ a bare minimum of functionality required to support the above.
|
||||||
7.1.1 [EPD constructor args](./DRIVERS.md#711-epd-constructor-args)
|
7.1.1 [EPD constructor args](./DRIVERS.md#711-epd-constructor-args)
|
||||||
7.1.2 [EPD public methods](./DRIVERS.md#712-epd-public-methods)
|
7.1.2 [EPD public methods](./DRIVERS.md#712-epd-public-methods)
|
||||||
7.1.3 [EPD public bound variables](./DRIVERS.md#713-epd-public-bound-variables)
|
7.1.3 [EPD public bound variables](./DRIVERS.md#713-epd-public-bound-variables)
|
||||||
|
7.1.4 [FeatherWing Wiring](./DRIVERS.md#714-featherwing-wiring)
|
||||||
7.2 [Waveshare eInk Display HAT](./DRIVERS.md#72-waveshare-eink-display-hat)
|
7.2 [Waveshare eInk Display HAT](./DRIVERS.md#72-waveshare-eink-display-hat)
|
||||||
7.2.1 [EPD constructor args](./DRIVERS.md#721-epd-constructor-args)
|
7.2.1 [EPD constructor args](./DRIVERS.md#721-epd-constructor-args)
|
||||||
7.2.2 [EPD public methods](./DRIVERS.md#722-epd-public-methods)
|
7.2.2 [EPD public methods](./DRIVERS.md#722-epd-public-methods)
|
||||||
|
@ -543,9 +544,17 @@ The driver assumes an Adafruit 2.9 inch 296*128 pixel flexible
|
||||||
[display](https://www.adafruit.com/product/4262) interfaced via their
|
[display](https://www.adafruit.com/product/4262) interfaced via their
|
||||||
[interface breakout](https://www.adafruit.com/product/4224).
|
[interface breakout](https://www.adafruit.com/product/4224).
|
||||||
|
|
||||||
This is currently my preferred ePaper setup, not least because the breakout
|
An alternative is the
|
||||||
enables the display to be completely powered down. This facilitates micropower
|
[Adafruit 2.9" eInk FeatherWing](https://www.adafruit.com/product/4777) with
|
||||||
applications: the host shuts down the display before going into deep sleep.
|
[wiring details](./DRIVERS.md#714-featherwing-wiring) listed below.
|
||||||
|
|
||||||
|
These alternatives behave identically except that the FeatherWing shows a black
|
||||||
|
border around the display. The reason for this is
|
||||||
|
[unclear](https://github.com/adafruit/Adafruit_CircuitPython_IL0373/issues/11#issuecomment-763704622).
|
||||||
|
|
||||||
|
The breakout has an `ENA` pin which enables the display to be powered down.
|
||||||
|
This facilitates micropower applications: the host shuts down the display
|
||||||
|
before going into deep sleep.
|
||||||
|
|
||||||
The driver is cross platform and supports landscape or portrait mode. To keep
|
The driver is cross platform and supports landscape or portrait mode. To keep
|
||||||
the buffer size down (to 4736 bytes) there is no greyscale support. It should
|
the buffer size down (to 4736 bytes) there is no greyscale support. It should
|
||||||
|
@ -556,6 +565,9 @@ an absolute limit or an average rate.
|
||||||
|
|
||||||
##### Wiring
|
##### Wiring
|
||||||
|
|
||||||
|
The [interface schematic is here](https://learn.adafruit.com/assets/86038). The
|
||||||
|
drawing title is confusing but I balieve this is the correct schematic.
|
||||||
|
|
||||||
The following assumes a Pyboard host. Pyboard pin numbers are based on hardware
|
The following assumes a Pyboard host. Pyboard pin numbers are based on hardware
|
||||||
SPI 2 and my arbitrary choice of GPIO. All may be changed and soft SPI may be
|
SPI 2 and my arbitrary choice of GPIO. All may be changed and soft SPI may be
|
||||||
used.
|
used.
|
||||||
|
@ -614,7 +626,7 @@ see below.
|
||||||
|
|
||||||
##### Micropower use
|
##### Micropower use
|
||||||
|
|
||||||
To power down the display the `ENA` pin must be pulled to 0v. Some
|
To power down the breakout the `ENA` pin must be pulled to 0v. Some
|
||||||
microcontrollers can ensure that a GPIO pin is able to sink current when the
|
microcontrollers can ensure that a GPIO pin is able to sink current when the
|
||||||
chip goes into deep sleep. In other cases the pin becomes high impedance. The
|
chip goes into deep sleep. In other cases the pin becomes high impedance. The
|
||||||
following ensures that a high impedance pin will cause `ENA` to be pulled low.
|
following ensures that a high impedance pin will cause `ENA` to be pulled low.
|
||||||
|
@ -622,6 +634,39 @@ The N channel MOSFET must have a low threshold voltage.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### 7.1.4 FeatherWing wiring
|
||||||
|
|
||||||
|
The [pinout is listed here](https://learn.adafruit.com/adafruit-eink-display-breakouts/pinouts-2).
|
||||||
|
The `busy` line is brought out to a labelled pad on the PCB. It can be linked
|
||||||
|
to an unused pin on the interface connectors.
|
||||||
|
|
||||||
|
These are the connections required to run the test scripts on a Pyboard. Viwed
|
||||||
|
on the underside of the board with the SD card at the top. Each connector has
|
||||||
|
pairs of pins which are linked together.
|
||||||
|
|
||||||
|
| Pin | Pyb | Pin | Pyb |
|
||||||
|
|:-----:|:----:|:-----:|:----:|
|
||||||
|
| RST | Y3 | | | Should be open drain (see below).
|
||||||
|
| 3V | 3.3V | | |
|
||||||
|
| . | | | |
|
||||||
|
| Gnd | Gnd | | |
|
||||||
|
| . | | . | |
|
||||||
|
| . | | . | |
|
||||||
|
| . | | . | |
|
||||||
|
| . | | . | |
|
||||||
|
| . | | . | |
|
||||||
|
| . | | . | |
|
||||||
|
| SCK | Y6 | DC | Y1 |
|
||||||
|
| MOSI | Y8 | ECS | Y2 |
|
||||||
|
| . | | . | |
|
||||||
|
| . | | . | |
|
||||||
|
| . | | . | |
|
||||||
|
| BUSY | Y4 | . | | Linked with wire to BUSY pad.
|
||||||
|
|
||||||
|
The FeatherWing has a reset button which shorts the RST line to Gnd. To avoid
|
||||||
|
risk of damage to the microcontroller pin if the button is pressed, the pin
|
||||||
|
should be configured as open drain.
|
||||||
|
|
||||||
###### [Contents](./DRIVERS.md#contents)
|
###### [Contents](./DRIVERS.md#contents)
|
||||||
|
|
||||||
## 7.2 Waveshare eInk Display HAT
|
## 7.2 Waveshare eInk Display HAT
|
||||||
|
|
|
@ -91,12 +91,12 @@ class EPD(framebuf.FrameBuffer):
|
||||||
cmd(b'\x06', b'\x17\x17\x17')
|
cmd(b'\x06', b'\x17\x17\x17')
|
||||||
cmd(b'\x04') # Power on
|
cmd(b'\x04') # Power on
|
||||||
sleep_ms(200)
|
sleep_ms(200)
|
||||||
# Panel setting. Adafruit sends 0x5f. Should it be 9f?
|
# Iss https://github.com/adafruit/Adafruit_CircuitPython_IL0373/issues/16
|
||||||
# Datasheet says reg 61 overrides so maybe it doesn't matter.
|
|
||||||
cmd(b'\x00', b'\x9f')
|
cmd(b'\x00', b'\x9f')
|
||||||
# CDI: As used by Adafruit. Datasheet is confusing on this.
|
# CDI: As used by Adafruit. Datasheet is confusing on this.
|
||||||
# See https://github.com/adafruit/Adafruit_CircuitPython_IL0373/issues/11
|
# See https://github.com/adafruit/Adafruit_CircuitPython_IL0373/issues/11
|
||||||
# Send 0xf7?
|
# With 0x37 got white border on flexible display, black on FeatherWing
|
||||||
|
# 0xf7 still produced black border on FeatherWing
|
||||||
cmd(b'\x50', b'\x37')
|
cmd(b'\x50', b'\x37')
|
||||||
# PLL: correct for 150Hz as specified in Adafruit code
|
# PLL: correct for 150Hz as specified in Adafruit code
|
||||||
cmd(b'\x30', b'\x29')
|
cmd(b'\x30', b'\x29')
|
||||||
|
|
Ładowanie…
Reference in New Issue