Editing PC-Microcontroller Communications
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
− | Many times an embedded system or microcontroller needs to be connected to a PC. This topic discusses the various methods for doing this. This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: [[Microcontroller Serial Communications Articles | + | Many times an embedded system or microcontroller needs to be connected to a PC. This topic discusses the various methods for doing this. This is one of a series of articles on Microcontroller Serial Communications, rooted at this site here: [[Microcontroller Serial Communications Articles]] |
− | == Serial Communications from a PC to Microcontrollers | + | == Serial Communications from a PC to Microcontrollers == |
− | This is often done using Hyperterminal ( a program bundled with MS Windows ) to communicate with the microcontroller using | + | This is often done using Hyperterminal ( a program bundled with MS Windows ) to communicate with the microcontroller using RS232 or virtual RS232 over USB. This program is pretty painful to use, we should list some alternatives to it here. This is just a start: |
{| class="wikitable" | {| class="wikitable" | ||
Line 26: | Line 26: | ||
|[http://www.com-port-monitoring.com/datalogger.html RS232 COM Port Logger] | |[http://www.com-port-monitoring.com/datalogger.html RS232 COM Port Logger] | ||
|Capture and log RS232 port dataflows Review anyone? Open Source. For Windows. | |Capture and log RS232 port dataflows Review anyone? Open Source. For Windows. | ||
− | |||
− | |||
− | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
Line 38: | Line 35: | ||
|From the site: | |From the site: | ||
''last updated: Aug. 9, 1999 Tera Term (Pro) is a free software terminal emulator (communication program) for MS-Windows. It supports VT100 emulation, telnet connection, serial port connection, and so on.'' | ''last updated: Aug. 9, 1999 Tera Term (Pro) is a free software terminal emulator (communication program) for MS-Windows. It supports VT100 emulation, telnet connection, serial port connection, and so on.'' | ||
− | |||
− | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
|[http://www.ontrak.net/adrcom.htm Using ADRCOM Terminal Emulation Software] | |[http://www.ontrak.net/adrcom.htm Using ADRCOM Terminal Emulation Software] | ||
|From the site: | |From the site: | ||
− | ''ADRCOM is a FREE terminal emulation program available from Ontrak Control Systems that allows simple ASCII commands to be sent and received via a serial port. It can be used to verify hardware connection of an ADR device and familiarize programmers with the ASCII commands used with the interfaces. In this example an ADR112 is connected to com1.'' Looks nice, how about a review? | + | ''ADRCOM is a FREE terminal emulation program available from Ontrak Control Systems that allows simple ASCII commands to be sent and received via a serial port. It can be used to verify hardware connection of an ADR device and familiarize programmers with the ASCII commands used with the interfaces. In this example an ADR112 is connected to com1.'' Looks nice, how about a review? |
− | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
Line 54: | Line 48: | ||
|[www.google.com BoostC] | |[www.google.com BoostC] | ||
|BoostC has a termainal window as part of its IDE. Free version available. | |BoostC has a termainal window as part of its IDE. Free version available. | ||
− | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
Line 63: | Line 56: | ||
|[http://realterm.sourceforge.net/Serial Terminal -- Real Term] | |[http://realterm.sourceforge.net/Serial Terminal -- Real Term] | ||
|Open Source. take a look | |Open Source. take a look | ||
− | |||
<!--------------------------------> | <!--------------------------------> | ||
|-valign="top" | |-valign="top" | ||
Line 72: | Line 64: | ||
|[http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm Tiny PIC bootloader] | |[http://www.etc.ugal.ro/cchiculita/software/picbootloader.htm Tiny PIC bootloader] | ||
|16F and 18F chips. Has a terminal emulator | |16F and 18F chips. Has a terminal emulator | ||
− | |||
− | |||
− | |||
− | |||
<!-------------------------------- | <!-------------------------------- | ||
|-valign="top" | |-valign="top" | ||
Line 94: | Line 82: | ||
<!--------------------------------> | <!--------------------------------> | ||
|} | |} | ||
+ | |||
+ | |||
( for the search engines: dump HyperTerminal find a better communications program ) | ( for the search engines: dump HyperTerminal find a better communications program ) | ||
− | For some notes on how to plan the microcontroller end of the communications see: [[RS232]] and for a particular | + | For some notes on how to plan the microcontroller end of the communications see: [[RS232]] and for a particular implementatation take a look at [[BitWacker PIC USB Development Board]] and the specialized PC program for it and similar devices: [[BitWacker Java Communications]] |
For general information on terminal emulators see: [http://en.wikipedia.org/wiki/Terminal_emulator Terminal emulator From Wikipedia, the free encyclopedia] | For general information on terminal emulators see: [http://en.wikipedia.org/wiki/Terminal_emulator Terminal emulator From Wikipedia, the free encyclopedia] | ||
Line 110: | Line 100: | ||
* Slow | * Slow | ||
* Requires bulky connectors and level translators | * Requires bulky connectors and level translators | ||
− | * Many new computers especially laptops don't have | + | * Many new computers especially laptops don't have serial ports |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== USB Communications from a PC to Microcontrollers == | == USB Communications from a PC to Microcontrollers == | ||
− | Many modern computers especially laptops do not have serial ports and the serial connector port is big and bulky. RS232 communication requires the use of level shifters which add parts. Serial communication can also be slow | + | Many modern computers especially laptops do not have serial ports and the serial connector port is big and bulky. RS232 communication requires the use of level shifters which add parts. Serial communication can also be slow. |
− | An alternative is more and more microcontrollers now have native support for USB which has smaller connectors, is faster, and works with the plug and play architecture of modern OSs. The disadvantage is that the firmware is much more complex and the PC side requires an device driver and corresponding INF file. Lucky, many generic drivers are available and many microcontroller | + | An alternative is more and more microcontrollers now have native support for USB which has smaller connectors, is faster, and works with the plug and play architecture of modern OSs. The disadvantage is that the firmware is much more complex and the PC side requires an device driver and corresponding INF file. Lucky, many generic drivers are available and many microcontroller manufacters that support USB provide sample firmware. |
{| class="wikitable" | {| class="wikitable" | ||
|-valign="top" | |-valign="top" | ||
− | | | + | |Catagory |
|Site | |Site | ||
|Comments | |Comments | ||
Line 165: | Line 136: | ||
|Device Driver | |Device Driver | ||
|[http://msdn2.microsoft.com/en-us/library/aa476426.aspx WinUSB] | |[http://msdn2.microsoft.com/en-us/library/aa476426.aspx WinUSB] | ||
− | |Free generic device driver provided by | + | |Free generic device driver provided by microsoft for Windows XP and Vista |
<!--------------------------------> | <!--------------------------------> | ||
Line 181: | Line 152: | ||
* No level translators and small connectors | * No level translators and small connectors | ||
* Works with computers that don't have serial ports | * Works with computers that don't have serial ports | ||
− | * Ability to implement standard devices such a keyboards, mice, memory card readers, and sound cards without | + | * Ability to implement standard devices such a keyboards, mice, memory card readers, and sound cards without writting a device driver. |
Disadvantages: | Disadvantages: | ||
Line 192: | Line 163: | ||
== Ethernet-TCP/IP Communications from a PC to Microcontrollers == | == Ethernet-TCP/IP Communications from a PC to Microcontrollers == | ||
− | Ethernet and the Internet is | + | Ethernet and the Internet is everwhere so many embedded devices now have ethernet connections. Network connections can be very long and it's possible to use cheap commodity hardware such as WiFi bridges. Several microcontroller manufacters are now providing sample TCP/IP stacks some of them with embedded web servers so that the hardware can be controlled from a PC via a web browser such as IE or Firefox. PC programming has a mostly OS independent API called sockets that is available on both Windows and Unix. |
{| class="wikitable" | {| class="wikitable" | ||
Line 212: | Line 183: | ||
Advantages: | Advantages: | ||
* Fast | * Fast | ||
− | * Long cable lengths and commodity | + | * Long cable lengths and commodity equiptment |
* PC API is mostly OS independent | * PC API is mostly OS independent | ||
* No device drivers required | * No device drivers required | ||
Line 224: | Line 195: | ||
== Bluetooth-SPP Communications from a PC to Microcontrollers == | == Bluetooth-SPP Communications from a PC to Microcontrollers == | ||
− | Many laptops and even desktops now have bluetooth support or a bluetooth dangle can be purchased for a small amount of money. This makes bluetooth a good choice for controlling microcontrollers wirelessly. Several | + | Many laptops and even desktops now have bluetooth support or a bluetooth dangle can be purchased for a small amount of money. This makes bluetooth a good choice for controlling microcontrollers wirelessly. Several dropin modules are available that implement the Bluetooth SPP protocal which allows direct emulation of a serial cable. The models usually have an AT command set for configuring the module and establishing connections. Most Bluetooth stacks on the PC have support for SPP and will expose the device as a COM port. Detection of the COM port is difficult since Bluetooth doesn't have a standard stack for Windows. |
{| class="wikitable" | {| class="wikitable" | ||
|-valign="top" | |-valign="top" | ||
− | | | + | |Catagory |
|Site | |Site | ||
|Comments | |Comments | ||
Line 236: | Line 207: | ||
|Hardware | |Hardware | ||
|[http://www.sparkfun.com/commerce/product_info.php?products_id=8461 Bluetooth DIP Module - SparkFun] | |[http://www.sparkfun.com/commerce/product_info.php?products_id=8461 Bluetooth DIP Module - SparkFun] | ||
− | |Bluetooth | + | |Bluetooth dropin serial replacement module from SparkFun |
<!--------------------------------> | <!--------------------------------> | ||
Line 254: | Line 225: | ||
== RS232 Level Translation == | == RS232 Level Translation == | ||
− | Many microcontrollers do rs232 but do not output levels that are rs232 standard. I have often seen statements that they work anyway. Could be true. The standard solution is to use a MAX232 chip. Rather than put one in every project you can use a | + | Many microcontrollers do rs232 but do not output levels that are rs232 standard. I have often seen statements that they work anyway. Could be true. The standard solution is to use a MAX232 chip. Rather than put one in every project you can use a seperate board or cable. |
Some links: | Some links: |