[PYTHON] Automatic hardware design tool for Web programmers mille-feuille-Hardware mechanism

What is a mille-feuille board?

Click here for an overview of how to use the Millefeuille board → http://qiita.com/my_mil_info/items/ac484c96c867c1b3e702

How to write the software will be released soon!

Here, the mechanism of hardware is explained. Basically, Millefeuille operates with automatic wiring via a group of digital switches. The work of manually wiring between the Raspberry Pi, breadboard, and device can be shortened by automatically performing the work instead of the hand. In theory, device boards can be stacked as long as power reaches them, but they are designed assuming a maximum of 4 rows x 5 stages.

Millefeuille board configuration

Millefeuille consists of a Raspberry Pi, a baseboard, modules, flat cables and a device board. (Although patents have been obtained in Japan and overseas, the device board part is open hardware.)

HardAll.jpg

Raspberry Pi Raspberry Pi A +, B +, 2, Zero, 3 can be used. You can use any of the same IO terminals as B +, so if a new Raspberry Pi is released in the future, please check if it has the same IO terminal as B +.

Not only Raspberry Pi but also Cortex M3 and M4 versions will be developed.

The automatic wiring function is performed by a 3-wire SPI 17MHz signal. (The old MCU Gear was I2C 1MHz, but Millefeuille changed it to the faster SPI 17MHz)

Baseboard

The base boat has two tips.

1, digital switch group FPGA with pre-written digital switches similar to multiplexers for wiring

2、ARM Cortex-M0 Sub controller that supplements the operation of the digital switch Manages relatively troublesome processing such as registers and communication

The baseboard uses an FPGA chip, but the user does not rewrite the FPGA itself with verilog HDL or the like. When the user executes the instruction program "Connect to this device!" From the library, the multiplexer that is pre-written in the FPGA is switched to connect the instructed device without the user's visibility. Since Millefeuille is a device for programmers, it is not a mechanism for users to resynthesize logic circuits using advanced FPGAs. Once you've wired the digital switch, you can move the device as if it were wired by hand.

Module board

The role of the module board is to control the connection between the base board and the device board. ARM Cortex-M0 is mounted on a 6-layer board to control the bus switch. Even with a 6-layer board, the wiring is just barely possible.

1, address integration When the device board is connected to the module board, the address is automatically read from the EEPROM mounted on the device board to recognize what device is connected. At that time, the same address as the device board is assigned to the module board itself. By doing so, the module board and device board are integrated and become one board, and commands from the user can be controlled. Since the module board is connected to the device board and then assigned its own address, there is no need to replace the module board for each device board, and any device board can be supported.

2, signal retention function When the connection to the device board is completed, the gate of the unused device board closes and the signal becomes high impedance, and it is not possible to tell whether the signal is High or Low. This signal retention function is responsible for reading and retaining the high or low signal just before the gate closes. This feature is automatically controlled within the library.

3, communication delay The following communication delays occur when communicating with the device board. ・ SPI communication: Approximately 2nsec ・ GPIO communication: Approximately 25nsec ・ I2C communication: Direct connection

4, independent power supply circuit The module board has an independent 3.3V power supply circuit, which allows up to 300mA to flow through one module board.

hard.png The figure shows the details of the digital terminal when GPIO of Raspberry Pi is automatically wired. ・ PIN1 ~ 4 are GPIO via multiplexer or bus switch ・ SCL and SDA are I2C

Device board

The Millefeuille device board is a breakout board with a flexible cable connector and EEPROM for device address. This EEPROM and board wiring method are linked with the module board, and it is possible to operate the python library, the circuit diagram automatic generation tool on the Web, and the firmware automatic conversion tool.

・ Open hardware (scheduled to start in 2017) The base board and module board are not open hardware, but the device board is open hardware. Users can also develop and sell millefeuille-compatible device boards. Individual addresses are set on the Millefeuille device boards. You can also issue an address to a device board developed by a user and have another user use it as a device board compatible with Millefeuille. Let's develop an original device board and enjoy manufacturing more. hard2.png

Bonus: UART (serial) bus

The UART (serial) bus uses a flexible cable connector on the side of the baseboard. Basically, it is a fixed wiring for the purpose of one-to-one operation.

hard3.png The figure shows the details of the digital terminal when GPIO of Raspberry Pi is automatically wired. ・ PIN1 and 2 are GPIO via multiplexer

Recommended Posts

Automatic hardware design tool for Web programmers mille-feuille-Hardware mechanism
Automatic hardware design tool for web programmers mille-feuille-program edition
Automatic hardware design tool for Web programmers mille-feuille-What is an automatic circuit diagram generation tool?
Hardware for web programmers mille-feuille Support tool for Raspberry Pi
[Python] Web application design for machine learning