
Reading about the Amicus18 left me intrigued to trial it's seamless interfacing. A developer does not need a programmer or USB-UART converters -- it's all onboard. Once your finished writing your program, you hit compile+program and the Amicus IDE will promptly have the PIC flashed.
Also, there's no need to connect different headers or flick switches to "talk" with the device - it all works hassle free with the USB cable connected.
A benifit of the of the on-board USB-UART converter is that the device presents itself as a legacy RS232 COM Port. The Amicus IDE has an excellent Serial Terminal program which will connect to the Amicus18 via the selected port.
So, with all that in mind I wanted my first program touch base with the above features. I had a DS18B20 on the desk, and thought "that will do".

The Dallas DS18B20 is a temprature sensor which uses the Dallas 1-wire protocol. A quick review of its features:
So it does a fair bit. I like them because they require one-wire for communication, and several devices can be on the same bus.

The DS18B20s require power, ground and a pullup resistor for the 1-wire bus. That's it.
A 4.7K resistor is the recommended value, you can fudge it by a few Kohm either side if need be.
I've used a Companion Shield for rapid prototyping, and connected the wires as shown on the right. Although the Amicus18 has a 3.3V PIC, there's a 5V output which is clearly marked on the Companion Shield.

As shown in the above picture, the Companion Shield is fitted to the Amicus18 board. The DS18B20 is in the shiny steel cylinder on the right. There's not much to it, and this is a good example of how the Companion Shield can easily be used to prototype with different widgets.
' Amicus18 Project A0001: DS18B20 ' ' Author: Graham Mitchell ' Date: 20 Jun 2010 ' ' Comments: ' This is a simple project which interfaces with a DS18B20 temperature sensor. ' The received scratchpad contents is displayed via the Amicus Serial Com tool. ' Temperature is displayed in degrees C and F. ' ' For more information and updates, please visit digital-diy.com Dim SPTemperature As Word ' scratchpad temperature storage Dim Reserved0 As Byte ' scratchpad reserved variable Dim Reserved1 As Byte ' scratchpad reserved variable Dim Reserved2 As Byte ' scratchpad reserved variable Dim Reg_TH As Byte ' scratchpad TH register or User Byte 1 Dim Reg_TL As Byte ' scratchpad TL register or User Byte 2 Dim Reg_Config As Byte ' scratchpad configuration register Dim CRC As Byte ' scratchpad CRC register Dim Temperature As Float ' temperature result Symbol DQ = PORTB.0 ' one-wire data pin HRSOut 13,"Amicus18 DS18B20 Project",13 HRSOut "Visit digital-diy.com for more information!",13,13 While 1=1 OWrite DQ, 1, [$CC, $44] ' start temperature conversion While ORead DQ, 4 = 0 ' check for still busy converting Wend OWrite DQ, 1, [$CC, $BE] ' read the temperature ORead DQ, 0, [SPTemperature.LowByte, SPTemperature.HighByte, Reg_TH,Reg_TL,Reg_Config,Reserved0,Reserved1,Reserved2,CRC] ' display scratchpad contents HRSOut "********************************************",13 HRSOut "DS18B20 Scratchpad: " HRSOut Hex SPTemperature.LowByte, " ", Hex SPTemperature.HighByte, " ", Hex Reg_TH, " ", Hex Reg_TL, " " HRSOut Hex Reg_Config, " ", Hex Reserved0, " ", Hex Reserved1, " ", Hex Reserved2, Hex CRC, 13 Temperature = 0.0625 * SPTemperature ' convert to degrees C HRSOut 13, Dec Temperature, " C" Temperature = 1.8 * Temperature + 32 ' calculate temperature in degrees F HRSOut ", ", Dec Temperature, " F",13 DelayMS 1000 ' Display once a second Wend
I did a quick screen capture while programming the Amicus18 board, and then opening the Serial Terminal to talk with the PIC microcontroller. It's allot easier than typing, so here it is:
As you can see, the whole process is very easy. The guys at Crownhill have done an awesome job thus far, here's hoping they keep the momentum behind Amicus products.