45 lines
1.6 KiB
Markdown
45 lines
1.6 KiB
Markdown
Copyright 2023 (C) Peter McGoron.
|
|
|
|
This file is a part of Upsilon, a free and open source software project.
|
|
For license terms, refer to the files in `doc/copying` in the Upsilon
|
|
source distribution.
|
|
|
|
__________________________________________________________________________
|
|
|
|
This manual describes the controller software programming. This guide does not
|
|
describe Verilog: see `verilog_manual.md` for that.
|
|
|
|
# Preqreuisites
|
|
|
|
You must know basic Linux shell (change directories, edit files with `vi`)
|
|
and basic SSH usage (sftp, ssh).
|
|
|
|
Knowledge of Micropython (a subset of Python) is required for scripting.
|
|
|
|
I assume that you have the controller running and accessable. See `docker.md`
|
|
for the easy quick-start guide.
|
|
|
|
# Programming in MicroPython
|
|
|
|
## Introduction to MicroPython
|
|
|
|
MicroPython is a programming language that is very similar to Python. It is
|
|
stripped down and designed to run on very small devices. If you have written
|
|
Python, you will be able to use MicroPython without issue. If you are not
|
|
a hardcore Python programmer, you might not even notice a difference.
|
|
|
|
Everything you need to know is [here](https://docs.micropython.org).
|
|
|
|
## Standard Library
|
|
|
|
There are two modules of the standard library: `mmio` and `comm`.
|
|
|
|
`mmio` are wrappers that handle reads and writes from MMIO pins. This file
|
|
is automatically generated by the build process. This file is generated in
|
|
the `gateware` directory (if you use the Docker build system, the file is
|
|
automatically copied to `boot/mmio.py`).
|
|
|
|
`comm` contains higher level wrappers for DAC and ADC pins. This module is
|
|
documented well enough that you should be able to read it and understand
|
|
how to use it.
|