Skip to content
README.md 5.94 KiB
Newer Older
f4grx's avatar
f4grx committed
Circuit board for hn70ap
========================

This folder contains the schematic of the KiCAD board used by the hn70ap
project.
f4grx's avatar
f4grx committed

It is released under the CERN OHL.

The project is completely standalone, it does not depend on ANY external
schematic library.
f4grx's avatar
f4grx committed
To open it you need kicad version 4.0.7.
f4grx's avatar
f4grx committed
Enclosure
=========
Any enclosure that can host a 80x100mm PCBs with connectors on both 100mm
sides is usable, for example a slotted extrusion box. I am using a
f4grx's avatar
f4grx committed
Multicomp MCREBS80 box from Farnell, which is in fact a Box Enclosures B2-080.
https://www.boxenclosures.com/product-category/bex-series-anodized-extruded-aluminum-enclosures/bex-series-2/

f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
Power supply
============
 * Input via Anderson PowerPole for standard 13.8V ham
 * LTC3646 Creates a 5V 1A rail
 * Each component (radios, CPU, ethernet) has a ferrite bead then big storage
capacitor followed bu 3V3 LDO. Radios can reach 100mA each, Ethernet is max
40 mA, CPU is much lower.
 * When using the RF4463 1W module instead of the RFM26, we need a clean 5V
regulated with a LDO, so the LTC is configured for 5.5V instead.
f4grx's avatar
f4grx committed
 
Clocks
======
 * Ethernet PHY has a 25 MHx XTAL that gets doubled in the PHY to generate the
RMII reference clock
 * SI4463 has a 30 MHz XTAL for its own use, but a footprint is available for a
5x3.2mm TCXO via an UFL, which can also be used to feed an external reference.
 * CPU HSE is connected to a 20 MHz xtal to reach its max clock speed of 180 MHz
with correct accuracy
f4grx's avatar
f4grx committed
 * CPU 32 kHz clock is connected to a cylindrical watch xtal
Another design that I know has the 25 MHz xtal on the cpu, then feeds a 25 MHz
MCO line to the PHY, which doubles it and feeds it back to the RMII clock input.
f4grx's avatar
f4grx committed
Weird CPU delay loop calculations, long RF lines, not good.
f4grx's avatar
f4grx committed

CPU peripheral connections
==========================

Ethernet
--------

The STM32 Ethernet Peripheral is connected to a KSZ8081RNA PHY via RMII. 50 MHz
f4grx's avatar
f4grx committed
RMII Clocking is provided via a 25 MHz XTAL doubled by the PHY. Current status:
soldering failed, waiting for a new device to install.
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
```
RX0    PC4/33
RX1    PC5/34
CRSDV  PA7/32
TX0    PB12/51
TX1    PB13/52
TXEN   PB11/48
REFCLK PA1/24
IRQ    PE12/43
MDIO   PA2/25
MDC    PC1/16
```

f4grx's avatar
f4grx committed
Some GPIOs are used to indicate the link status and reset the PHY:

f4grx's avatar
f4grx committed
```
f4grx's avatar
f4grx committed
MAC_LINK PD8/55 Open Drain output for a LED
f4grx's avatar
f4grx committed
MAC_RST  PB0/35
```

Debug UART
----------
This uart is used to display the NuttX console. It is connected to UART4 (not an
USART). It runs at 230400 bauds, 8N1. The FTDI chip is powered via USB only, so
f4grx's avatar
f4grx committed
UART LEDs are not powered when USB is not connected. Current status: Hardware
working, but current PCB footprint has an issue.
f4grx's avatar
f4grx committed
TXD4  PC10/78 (AF8)
RXD4  PC11/79 (AF8)
f4grx's avatar
f4grx committed
```

SPI Flash
---------
This memory is used to store the firmware update to be programmed by the
bootloader, and a flash filesystem for file storage. It is connected to bus
f4grx's avatar
f4grx committed
SPI2. Current status: Validated in hardware and software.

NuttX creates two partitions on it:
* a 2 MB partition for firmware updates
* a 6 MB partition for data storage
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
```
f4grx's avatar
f4grx committed
MOSI2  PB15/54 (AF5)
MISO2  PB14/53 (AF5)
SCLK2  PB10/47 (AF5) - via pin PD10/57 to help routing
f4grx's avatar
f4grx committed
CS     PA9/68
```

I2C EEPROM
----------
This memory stores the Ethernet MAC address and generic non volatile parameters
that must survive reset. The device is connected to I2C3. The I2C bus is also
available on a pin header, can be used to add some daugterboards. The pinout is
compatible with standard I2C OLED screens based on the SSD1306 controller. Some
configurations enable support for this screen so debug information can be
f4grx's avatar
f4grx committed
displayed. Current status: Validated in hardware and software.
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
```
f4grx's avatar
f4grx committed
SDA3  PC9/66 (AF4)
SCL3  PA8/67 (AF4)
f4grx's avatar
f4grx committed
```

Main radio transceiver
----------------------
The main radio transceiver is a si4463 with separate TX and RX signals along
with commutation signals in the form of 5V DC bias on the RF lines. It can be
connected to external RF hardware (LNA/PA/Switch). Using BOM components, it is
RF matched for the 430-440 MHz frequency band, but you can tweak components for
any frequency of your choice (have a look at Silabs app notes). The device is
connected to SPI4.
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
```
f4grx's avatar
f4grx committed
MOSI4  PE6/5 (AF5)
MISO4  PE5/4 (AF5)
SCLK4  PE2/1 (AF5)
CS     PE4/3
IRQ    PC13/7
f4grx's avatar
f4grx committed
SDN    PE3/2 Used to reset BOTH radio chips in a clean way
f4grx's avatar
f4grx committed
Auxiliary radio transceiver
f4grx's avatar
f4grx committed
---------------------------
The auxiliary radio transceiver is either an off-the-shelf RFM26W from HopeRF
(20 dBm output power) or a RF4463F30 (high power, 30 dBm). These are also based
on the Silabs si4463. The matching is on-board and there are several frequency
bands available. The device shares the same SPI4 bus as the main transceiver.
SDN line is shared with the main transceiver, IRQs are separate.
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
```
CS    PA3/26
IRQ   PA6/31
f4grx's avatar
f4grx committed
```
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
Power supply
------------
The switching regulator provides a PGOOD output that is asserted while the
output voltage is within a 5% tolerance. This can be used to prevent writes to
the external SP flash if the power is about to fail.
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
```
PGOOD  PC0/15
```

LEDs
----
Informative LEDs are available. They are connected to the supply voltage and
their GPIO pins are configured as open drain, except for the bicolor LED.
Signification of external LEDs may change in the future.
f4grx's avatar
f4grx committed

f4grx's avatar
f4grx committed
```
f4grx's avatar
f4grx committed
D301 (Panel)    PB9/96 + PE0/97 (Bicolor Green/Red - Status)
D302 (Panel)    PB8/95  (Blue - Clients connected)
D303 (Panel)    PB7/93  (Orange - Transmit)
D304 (Panel)    PB6/92  (Green - Receive)
D305 (Internal) PD15/62 (Ay color - Heartbeat)
D306 (Internal) PD11/58 (Any color - CPU Activity)
J201 (Ethernet) PD8/55  (Ethernet link status)
```

These LEDs are not driven by the CPU:

```
D602 (Power)    ---     (Blue)
D401 (Internal) ---     (Any color - FTDI TX)
D402 (Internal) ---     (Any color - FTDI RX)
J201 (Ethernet) ---     (Ethernet activity)
```

Button
------
A push button with a 100nF debounce to ground and a pull-up is available for misc functions.
If the button is pressed at power up, the bootloader will enter the serial download mode without
even looking at the external flash contents.

```
BUTTON PE11/42