Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: GlasgowEmbedded/glasgow
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: a26db85b36b4
Choose a base ref
...
head repository: GlasgowEmbedded/glasgow
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: d96c235fc8c5
Choose a head ref
  • 2 commits
  • 2 files changed
  • 1 contributor

Commits on Jan 17, 2020

  1. Copy the full SHA
    e18d76a View commit details

Commits on Jan 19, 2020

  1. README: clarify timing claims; make "minimal effort" more realistic.

    In this case "minimal effort" refers to using 2FF synchronizers and
    a simple FSM driven by the system clock, which, when using revC at
    48 MHz will not exceed 12 Mbps data rate. However, virtually anyone
    with a minimal knowledge of HDL is able to implement applets that
    use this technique.
    whitequark committed Jan 19, 2020
    Copy the full SHA
    d96c235 View commit details
Showing with 4 additions and 3 deletions.
  1. +2 −2 README.md
  2. +2 −1 software/glasgow/applet/audio/yamaha_opx/__init__.py
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -58,9 +58,9 @@ Revisions A and B have not been produced in significant amounts, contain major d

![Overview of the Glasgow PCB](hardware/boards/glasgow/3drender-readme.png)

Revision C is the latest revision and is being prepared for mass production. It provides 16 I/O pins with a maximum frequency of approx. 100 MHz\*, independent direction control and independent programmable pull-up/pull-down resistors. The I/O pins are grouped into two I/O ports that can use any voltage from 1.8 V to 5 V, sense and monitor I/O voltage of the device under test, as well as provide up to 150 mA of power. The board uses USB 2 for power, configuration, and communication, achieving up to 336 Mbps (42 MB/s) of sustained combined throughput.
Revision C is the latest revision and is being prepared for mass production. It provides 16 I/O pins with a maximum data rate of approx. 200 Mbps/IO (100 MHz)\*, independent direction control and independent programmable pull-up/pull-down resistors. The I/O pins are grouped into two I/O ports that can use any voltage from 1.8 V to 5 V, sense and monitor I/O voltage of the device under test, as well as provide up to 150 mA of power. The board uses USB 2 for power, configuration, and communication, achieving up to 336 Mbps (42 MB/s) of sustained combined throughput.

<sub>\* Maximum frequency achievable in practice depends on many factors and will vary greatly with specific interface and applet design. 24 MHz non-DDR can be achieved for most interfaces with minimal effort.</sub>
<sub>\* Maximum data rate achievable in practice depends on many factors and will vary greatly with specific interface and applet design. 12 Mbps/IO (6 MHz) can be achieved with minimal development effort; reaching higher data rates requires careful HDL coding and a good understanding of timing analysis.</sub>

## What software does Glasgow use?

3 changes: 2 additions & 1 deletion software/glasgow/applet/audio/yamaha_opx/__init__.py
Original file line number Diff line number Diff line change
@@ -1135,7 +1135,8 @@ async def interact(self, device, args, opx_iface):

vgm_player = YamahaVGMStreamPlayer(vgm_reader, opx_iface, clock_rate)
sample_rate = 1 / vgm_player.sample_time
opx_iface.filter.sample_rate = sample_rate * self._opx_iface.sample_clocks
if opx_iface.filter:
opx_iface.filter.sample_rate = sample_rate * opx_iface.sample_clocks
self.logger.info("recording %d channels at sample rate %d Hz",
opx_iface.channel_count, sample_rate)