Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can sometimes add a communication or arithmetic capability to a PIC design without changing its microcontroller. Don Rowe’s 2005 Embedded.com article “Tricks with PICs” shows how to repurpose built-in peripherals, including using SPI to receive asynchronous serial data, extending UART transmit timing for a particular RS-485 design, and adding handshaking around a parallel slave port. These are device- and timing-dependent techniques—not drop-in features for every PIC.

What “Tricks with PICs” covers

The article addresses a familiar constraint in embedded designs: a project needs another serial channel, more arithmetic precision, or clearer data handshaking, but the existing processor’s built-in resources are already committed. Rowe says he used the techniques with PIC16Cxx, PIC16Fxx, and PIC18Fxx families. That historical range does not establish compatibility with every member of those families or with current devices.

The central trade-off is between reusing a hardware peripheral and implementing behavior in firmware or external logic. Hardware reuse can reduce per-bit software work, but it imposes peripheral-specific timing and pin constraints. External logic can make an interface more explicit, at the cost of pins and components. For a new design, a PIC with the required peripheral may be simpler and better supported than adapting a workaround.

Receive asynchronous serial data through SPI

Asynchronous serial frames carry a start bit, data bits, and a stop bit without a separate clock line. SPI normally shifts data in sync with a clock and often transmits and receives simultaneously. Rowe’s technique uses SPI as a hardware shift register while firmware and a timer arrange for its clock edges to sample the incoming serial data near the centers of the data bits.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

How the timing works

  1. The falling edge of the incoming start bit provides the initial synchronization cue.
  2. A capture/compare module records the timer value at that edge. The interrupt routine can use the captured value to compensate for interrupt latency rather than timing everything from when the routine happens to run.
  3. The timer sets an initial, nonstandard interval so the SPI peripheral skips the start bit; subsequent clock timing places samples within the data bits.
  4. After the SPI shift completes, firmware reverses the received bit order as needed and handles the byte.

In the article’s worked example, the PIC runs at 16 MHz and receives at 9600 baud. Those are example conditions, not a guaranteed speed or a general limit. The method depends on the selected PIC’s timer, capture/compare, and SPI behavior, along with clock accuracy and the worst-case interrupt latency. If an interrupt can arrive too late to preserve the sampling margin, the byte may be corrupted.

When to consider it

  • It may be useful when a design has an unused SPI peripheral but no available UART.
  • Compare it with software bit-banging: the SPI peripheral handles shifting, but firmware still has to establish timing, service events, and account for bit order.
  • Check the exact MCU datasheet for peripheral modes, pin mapping, timer behavior, and interrupt timing before adapting the idea.

Use UART transmit timing carefully on a shared RS-485 line

Rowe describes a design in which a PIC released a shared RS-485 line when a transmit-shift status bit indicated completion. In that design, the indication did not account for the remote receiver consuming the final stop bit, so the driver could release the line too soon. The article’s device-specific workaround uses the UART’s ninth data bit, controlled through TX9/TX9D, to send an additional high bit and keep the line driven longer.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

This is a design anecdote, not a universal RS-485 rule. A transmit-complete flag’s exact meaning depends on the selected device and flag; determine whether it describes a buffer, shift register, or another event before using it to control driver enable. The extra-bit technique also depends on the UART mode, peer behavior, and framing. For a new design, Rowe recommends considering correct termination and keeping the receiver active during transmission so the sender can observe its own complete transmission. Validate the bus timing and transceiver behavior for the actual system.

Extend arithmetic with a stack-based library

For arithmetic beyond the native precision of an 8-bit PIC, Rowe describes a library inspired by Forth and reverse Polish notation. It uses a parameter stack, reusing its top entries for temporary values. The article also describes stackless functions that receive source and destination pointers, offering a different interface for code that does not want to manipulate the stack.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

The historical article refers to a PicMath.c implementation for the CCS PCM compiler and identifies configuration choices such as stack-data size, stack allocation, a carry data bit, and an option for double-precision multiplication and division. Its linked FTP download is not verified as available today, and the article does not establish that the code compiles with current compilers or PIC devices. Treat the implementation as a historical example; check compiler support, memory use, calling conventions, and numerical requirements before adopting any similar library.

Add explicit handshaking to the parallel slave port

A parallel slave port can expose internal input-buffer-full and output-buffer-full status to PIC firmware. Those internal status signals help the firmware track data, but they do not necessarily tell the external device when data is ready or has been accepted. The interface may need separate handshaking signals.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Why a ready level can lose synchronization

A simple level-based ready signal can leave sender and receiver disagreeing about whether a transfer has happened, potentially causing duplicated or lost data. The article discusses pulse-based signaling or edge-triggered interrupts as ways to mark events. The right choice depends on the external device’s timing and on how both sides recover from missed or repeated events.

When external logic helps

One approach is to use a PLD or other external logic to reproduce external input- and output-buffer status behavior. That can make readiness visible at the interface, but it costs additional pins and hardware. Define the handshake states and event edges explicitly, then check that the PIC and external device cannot advance on different transfers.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to assess a workaround before using it

  • Confirm the exact target: identify the MCU model, peripheral instance, available pins, oscillator setup, and applicable silicon documentation.
  • Budget timing: include interrupt latency and variation, bit timing, and the time required to act on status flags.
  • Check toolchain fit: verify compiler support and library assumptions; do not assume code written for an older family or compiler will transfer unchanged.
  • Account for hardware: include pin use, external logic, transceiver behavior, and any termination or receiver requirements.
  • Compare against a different device: for a new design, a PIC that already has the needed peripheral may reduce complexity compared with a workaround.

For hands-on evaluation, Microchip describes Curiosity as an 8-bit PIC development platform with an integrated programmer/debugger: Curiosity development board. Microchip’s developer help says most PIC MCUs have at least one development or evaluation board: Microchip developer help. Select a board for the exact target MCU and peripheral support; neither page establishes that the original 2005 code runs unchanged on a current board.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.