Posts

Showing posts from September, 2024

Added mod to avoid reset of Arduino when USB serial connection is made

THE NORMAL BEHAVIOR OF ARDUINO IS TO RESET WHEN A USB CONNECTION OPENS The serial communications supported over USB includes the DTS/DTR signals. When a serial connection is instituted by an RS232 device (such as USB on a laptop), signals are toggled that the Arduino detects and issues a reset to itself.  This restarts the 'sketch' running in the Arduino so it is in a known good state, but also watches for a specific data stream at the beginning which is targeted at the bootloader. This is how the development environment uploads new code to the Arduino.  THIS LEAVES CONTROL SIGNALS IN UNDEFINED STATE FOR A SHORT PERIOD While the processor is reset and running under the bootloader code, the state of various input-output pins on the Arduino is not controlled by your sketch. They assume some default values until you code begins running to set the pins up correctly. For example, an output pin is by default in logic low state.  The 1130 makes wide use of inverted logic, where ...

Found correct mod for the Arduino Mega 2560 to avoid powering it from USB

Image
USB HANDLING CIRCUITS IN THE MICROPROCESSOR REQUIRE USB VCC TO RUN The reason my first attempt failed, simply removing the poly (resettable) fuse, is that the fuse is between the USB connector and the microchip which needs the USB VCC connected. I had to reinstall the fuse.  BETTER CHANGE IS TO REMOVE A MOSFET THAT ROUTES POWER The Arduino uses a power mosfet and a comparator to decide when the external power is adequate to run the board, disconnecting the USB VCC from the board. It does leave that wire connected to the USB circuitry in the chip, however. With the transistor removed, the USB power never gets to the board so it is always powered by the external (1130) power. This means the board powers up and down with the main system, whether or not a USB cable is connected to anything else. When the board is powered up, the cable is active as a serial connection, exactly what I wanted to happen.  In the picture below, the green circle shows the reinstalled polyfuse. The red c...

Potential substitute for core memory module using SRAM

INTERFACING TO THE IBM 1130 IS SUPER EASY The IBM 1130 drives four control signals to the core memory module, plus 16 data bits out and 12 to 15 address bits depending on the machine configuration. It also receives 16 bits of sense data, which when pulsed will latch into the Storage Data Buffer (SDR).  The machine raises Storage Select and Storage Use for a memory cycle. It then alternates Storage Read and Storage Write for the two halves of a core memory cycle. The basic machine cycle time of the 1130 is 450 ns and a complete memory cycle takes 8 of them, thus 3.6 us. Modern SRAM and nonvolatile SRAM are so much faster than they could easily be adopted to replace the core memory compartment. Even the faster models of the 1130, at 275 ns basic cycle time, is glacial compared to modern memory chips.  The 1130 processor sets the address bits before the Storage Select and Storage Use signals are activated. Sometime during the 1.8 us of the read portion, the core memory returns a ...

Mis-step in modifying Arduino (used in my core memory loader)

Image
RATIONALE FOR CHANGE It is desirable to have the core memory loader power up and down with the 1130 system in which it is installed. It is supplied with 12V from the system, then the shield I designed drops and regulates the voltage before powering the Arduino and digital logic on the shield.  This loader communicates with outside systems or terminals using serial communications over the USB port of the Arduino. The design of the Arduino will take power from either an external supply (e.g. my shield) or the USB connection. This means that when the 1130 is powered down, if the USB is still connected to an external system the core memory loader will remain partially powered up.  What I want is to be able to use the USB link for communications, also to update the loader with new code for the Arduino, but not to power the Arduino if the 1130 is not powered up. I looked for information about how to accomplish this and found an article suggesting that I remove the polyfuse on the Ar...