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 98: Line 98:
 
( 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 implementation take a look at [[BitWacker PIC USB Development Board]] and the specialized PC program for it and similar devices: [[BitWacker Java Communications]]
+
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 114: Line 114:
 
== Serial Communications from a PC to Microcontrollers -- Writing Programs ==
 
== Serial Communications from a PC to Microcontrollers -- Writing Programs ==
  
Writing PC programs to communicate with Microcontrollers can be very challenging, or not so much.  The easiest I have encountered are the libraries for the Arduino which are part of the Processing environment.  Look at the Arduino examples.  You do not have control over all rs232 parameters or the ability to manage all possible errors, but you do have a quick way to program that works.  Under the hood this is based on using Java.  Should run on all major operating systems.  This is free and largely open software.
+
Writing PC programs to communicate with Microcontrollers can be very challanging, or not so much.  The easiest I have encountered are the libraries for the Arduino which are part of the Processing environment.  Look at the Arduino examples.  You do not have control over all rs232 parameters or the ability to manage all possible errors, but you do have a quick way to program that works.  Under the hood this is based on using Java.  Should run on all major operating systems.  This is free and largely open software.
  
 
*insert links here
 
*insert links here
Line 123: Line 123:
 
*insert links here
 
*insert links here
  
I have written several programs using Java, there has not been much interest on the net so I have worked on them only for my own use and from time to time.
+
I have witten several programs using Java, there has not been much interest on the net so I have worked on them only for my own use and from time to time.
  
 
*insert links here.
 
*insert links here.
  
  
I have heard VB proponents claim that it is pretty easy with VB.  Someone else will have to provide more information.
+
I have heard VB proponents claim that it is pretty easy with VB.  Someone elese will have to provide more information.
 
I
 
I
  
Line 135: Line 135:
 
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.  Note that USB often appears as virtual RS232 on the PC which allows you to use RS232 on the microcontroller and rs232 techniques on the PC.
 
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.  Note that USB often appears as virtual RS232 on the PC which allows you to use RS232 on the microcontroller and rs232 techniques on the PC.
  
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 manufacturers that support USB provide sample firmware.
+
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"
|Category
+
|Catagory
 
|Site
 
|Site
 
|Comments
 
|Comments
Line 165: Line 165:
 
|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 Microsoft for Windows XP and Vista   
+
|Free generic device driver provided by microsoft for Windows XP and Vista   
 
<!-------------------------------->
 
<!-------------------------------->
  
Line 181: Line 181:
 
* 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 writing a device driver.
+
* 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 192:
 
== Ethernet-TCP/IP Communications from a PC to Microcontrollers ==
 
== Ethernet-TCP/IP Communications from a PC to Microcontrollers ==
  
Ethernet and the Internet is everywhere 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 manufacturers 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.
+
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 212:
 
Advantages:
 
Advantages:
 
* Fast
 
* Fast
* Long cable lengths and commodity equipment
+
* 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 224:
 
== 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 drop inn modules are available that implement the Bluetooth SPPprotocoll 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.   
+
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"
|Category
+
|Catagory
 
|Site
 
|Site
 
|Comments
 
|Comments
Line 236: Line 236:
 
|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 drop in serial replacement module from SparkFun
+
|Bluetooth dropin serial replacement module from SparkFun
 
<!-------------------------------->
 
<!-------------------------------->
  
Line 254: Line 254:
 
== 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 separate board or cable.   
+
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:

Please note that all contributions to OpenCircuits may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see OpenCircuits:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)