csinko / io-master Goto Github PK
View Code? Open in Web Editor NEWDominate the I/O!
License: MIT License
Dominate the I/O!
License: MIT License
Finalize what pins we are going to use
Combine all subsystem schematics into one complete KiCAD project. Generate a BOM.
This will be put into the readme and be used for preliminary design presentations and discussions.
Cover what this component is responsible for, what it adds to the design of the project, and some challenges that will arise. Also cover any preliminary design ideas that exist.
Investigate more cost effective designs
Output Driver ideas
Receiver ideas
This will be put into the readme and be used for preliminary design presentations and discussions.
Cover what this component is responsible for, what it adds to the design of the project, and some challenges that will arise. Also cover any preliminary design ideas that exist.
Choose a USB PHY from Digikey so that we can used USB 2.0 High Speed on the microcontroller. Draw up a schematic with USB connector, USB protection, PHY chip, and microcontroller interface.
Recalculate component values for the +/-24V regulator so that it now outputs +/-15V.
Choose a specific SPI device for the mid-term demo. Make a write up with the following:
Design an adjustable regulator for powering the target device. Must be 3-24V output, 100mA.
Draw up the circuit protection circuit in Kicad that was used during the end of semester demo.
Come up with a list of commands that we need to implement, and figure out how many bits are needed for them.
Then create a document that lists what each command is, how to use it, etc.
Also determine any sort of machine states are necessary for the device to accept the command. i.e. It wouldn't make sense to change the frequency while sending data!
Choose specific devices that demonstrate SPI, I2C, RS-232, RS-485, and SWD communication, as well as all of the key features of the I/O Master.
The current linear regulator dissipates 1.555W of heat when using the 12V DC input. Total 3.3V rail load is estimated at about 178mA, so the regulator should be replaced with one spec'd for 200mA. We might want to change it to a switching regulator in order to improve efficiency.
Revise the schematic and BOM for the I/O Master v2 hardware.
This will be put into the readme and be used for preliminary design presentations and discussions.
Cover what this component is responsible for, what it adds to the design of the project, and some challenges that will arise. Also cover any preliminary design ideas that exist.
Redesign the level shifter to include a proper gate driver so that 10MHz can be achieved.
This will be put into the readme and be used for preliminary design presentations and discussions.
Cover what this component is responsible for, what it adds to the design of the project, and some challenges that will arise. Also cover any preliminary design ideas that exist.
The MCU logic levels on the IO_OUT, IO_TRIS, IO_CLK pins do not appear to be close to the expected HIGH/LOW voltages: 3.3V and 0V. The issue is mainly with the LOW voltage.
To better learn how to operate DMA and to get an idea of the flexibility possible, create a program that reads data from one interface into DMA, then outputs the data out another interface.
Attempt any forms of optimizations that seem possible to limit the amount of interrupts. Also do tests to limit the amount of memory used in the buffer when streaming data, as this will open up opportunities to increase the throughput of the device
The power input OR'ing diodes dissipate a significant amount of power when operating near maximum power input. The USB FET switch dissipates a lot less power (0.018W vs. 0.160W).
We might want to investigate using ideal diodes or somehow eliminating the OR'ing diodes.
Create a block diagram of all of the components to get a broad overview of how the device will function
Revise the PCB layout for I/O Master v2 hardware.
Draw up a schematic of the STM32H7 with:
We will need to be able to patch in and switch between different frequencies for the project. The MCU has the ability to use an external clock, but we need the flexibility to set these clocks and assign them to various I/O lines (potentially multiple lines simultaneously.
Learn how to read in and use external clock signals, make a test application to utilize external clock signals, and determine how we can control where a clock signal connects to, whether its through software routing or hardware routing (mux, demux, etc.)
Get USB CDC working.
Make the buffers as big as possible, find out how fast data can move.
A thorough design review is needed of the Rev 1 schematic, BOM, and PCB layout.
This is a placeholder for any issues that come up.
This will be put into the readme and be used for preliminary design presentations and discussions.
Cover what this component is responsible for, what it adds to the design of the project, and some challenges that will arise. Also cover any preliminary design ideas that exist.
Draw up a schematic for the STM32F7 chip including power supply for mcu.
See if we can redesign this circuit to use discrete transistors instead of op-amps. We need to reduce the part count and BOM cost.
Draw up a complete PCB design with all subsystems.
Subsystem preliminary functions/requirements:
Redesign the pull-up/pull-down circuit so that the control pins are multiplexed. Idea: use a tri-state output to control them (LOW: pull-down enabled, HIGH: pull-up enabled, High-Z: both disabled)
This would save 8 MCU pins, allowing us to use the LQFP100 package: 8 PU, 8 PD pins -> 8 PU/PD pins
We will want a UI for users to define, edit, and select protocols for our tool. Users will need to be able to
There are a few options I am aware of that can be used for GUIs in Python
PyQT
Tkinter
Kivy
Do research and testing on these frameworks, and get a feel for making GUI elements with Python. Decide the pros and cons of all the frameworks you test, and we will decide which one to use officially for the project.
The following must be initialized for the MCU upon startup:
When a configuration is set, the following must be changed to outputs for each IO Pin:
^^ These are the only states that should be allowed
When switching between output pin and timer pin, MUST switch BOTH output pin and timer pins to inputs before setting the other pin as an output. This ensures we do not short anything on the board.
All Unused pins should be set to output and driven low.
The Termination and Pulldown resistor control pins along with the tristate pins are active low, so they should be set high when made into outputs
The differential pins are active high, set to low when made an output (default to single ended)
The DAC needs to be set to whatever value correlates to ~1.4 volts (needs calculated)
@codeThatThinks, we also need to measure the amount of time it takes for the DAC to be set from first turning on with a scope.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.