Demand Peripherals - RDF feed
http://demandperipherals.com/forum/index.php
Other Ideas and Notes
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=12&th=12#msg_12
Post on a new thread if you have a specific card idea.
]]>BobSmith2020-04-14T05:20:21-00:00Grove interface for the I2C card
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=11&th=11#msg_11
Modify the I2C card to add a Grove compatible connector so that all Grove I2C cards could tie easily to the Demand Peripherals FPGA card and thus to Linux.
Perhaps Grove connectors could be added to the GPIO and ADC cards as well.
]]>BobSmith2020-04-13T23:46:32-00:00Output Port Expander
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=9&th=9#msg_9
Several DPI cards use the four pins from the FPGA for simple on/off control. The quad relay card is a good example. The purpose of this utility card is to use one slot on the FPGA to control up to eight on/off control cards.
The utility card would appear as an Out32 peripheral and could use the Out32 host driver.
]]>BobSmith2020-04-13T20:52:55-00:00Gantry distance sensor`
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=8&th=8#msg_8
Put a tape measure along the slot in a t-slot channel. Use a linear image sensor to look at the lines on the edge of the tape measure. A 3D printed carriage could keep the sensor aligned on the t-slot channel. The 3D printed carriage could be generic or custom designed for each application.
The Toshiba TCD1304 sensor might work. There are about 3000 pixels per inch, so a movement of 0.001 inch would move the image 3 pixels.
Later, a custom tape could be built that uses Gray codes to embed the absolute location onto the tape itself.
]]>BobSmith2020-04-13T03:56:11-00:00Analog CPLD
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=7&th=7#msg_7
Use the Silego SLG46826 to build an analog CPLD development board. The 46826 has an I2C based non-volatile configuration memory that can be reprogrammed over 1000 times. This dev board gives an I2C host interface to that memory and to the internal registers of the SLG46826.
More information on the SLG46826 can be found here: https://www.dialog-semiconductor.com/products/slg46826]]>BobSmith2020-04-12T02:33:48-00:00Waveform generator
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=6&th=6#msg_6
The AD9833 is a good choice for this design. An ESPI peripheral should work and might not need any modification. The host driver should be fairly simple. The simplicity of the circuit and the relatively low frequencies involved should make PCB layout not too difficult.
A similar design is available from MikroElektronika: https://www.digikey.com/product-detail/en/mikroelektronika/M IKROE-3309/1471-2144-ND/9953078]]>BobSmith2020-04-12T01:25:09-00:00Weather sensor card
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=5&th=5#msg_5
The card should be able to report the temperature, humidity, barometric pressure, and ambient light intensity at least once a second. Candidate sensors include:
hih6130 humidity and temp
sht15 humidity and temp
BMP088 barometer
MPL3115 altitude/pressure
HIH-4030 humidity - analog out
HTU21 - humidity and temp
An I2C interface might be the easiest to implement given the high number of chips. No Verilog should be required and the host driver should be fairly simple.
]]>BobSmith2020-04-12T01:00:34-00:00Dual voltage/current motor controller
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=4&th=4#msg_4
An alternative but more complex way to control a motor is to set the current in the DC motor coil. Controlling the current controls the torque from the motor and might be appropriate for applications such as robotic arms that need to carefully lift an object off a table.
A simple way to do both voltage and current control is to use a variable DC-DC buck voltage converter. DC to DC converters are fairly inexpensive and measuring current is easy for a DC supply. A common approach is to use a standard buck converter, such as the XL4005, to control the voltage and add a circuit that senses the current. The current sense voltage can be scaled and diode OR'ed with the voltage feedback. When the current is too high, the FB pin on the XL4005 is is pulled above 0.8 volts and the XL4005 turns off the current for that cycle. An example of this type of circuit can be found here: https://www.electrodragon.com/product/5a-cccv-buck-step-down -module/
The output of the DC-DC converter goes to an H-bridge that controls the direction of the motor. The FETs in this H-bridge do not switch at high frequency and can have very high gate capacitance. Typically this means these FETs could lower cost compared to most H-bridge FETs.
The next problem to solve is how to set the desired voltage and current for each controller, and how to measure and report the actual voltage and current for each controller. A simple approach would be to use the ADC channels on an AVR (https://demandperipherals.com/cards/mega.html) to measure the voltage and currents, and to use an SPI based digital pot to set the target voltages and currents. We may want to use two MCP4252 chips and cascade the pots to get better than 8 bits of resolution.
The host driver software should be fairly simple and can be based on the sample code for the DPI AVR card.
One potential problem to consider is how the circuit behaves versus the inductance of the controlled motor. A simple PWM controlled H-bridge is always stable. A DC-DC converter has an inductor and a capacitor in the output path already, and adding another inductor for the motor might affect the stability of the overall circuit. We may need to specify an upper limit for the motor inductance.
]]>BobSmith2020-04-11T02:28:43-00:00IMU Card
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=3&th=3#msg_3
Configuration at the host should allow specifying the sample interval as well as the sensors sensitivities. This means the FPGA peripheral should have a 'pass through' mode to let the host set parameters at initialization time, and then switch to a 'poll' mode to collect the sensor data. ]]>BobSmith2020-04-11T01:39:07-00:00RFID Reader
http://demandperipherals.com/forum/index.phpindex.php?t=rview&goto=2&th=2#msg_2
The card should fit nicely into a double size card (3.8x1.875 in). Several parts are available in the 13 MHz band. Either the AT88RF1354-ZU or the MFRC52201HN1,157 might be a good choice. Both parts have an interrupt pin that indicates that a data byte is ready. The circuit should mux this pin onto the MISO pin when the SPI select is not selected. This means that the generic ESPI peripheral could be used without any custom Verilog. The driver would be notified of an interrupt pending and have to query the chip for the new data.