Wed May 17 13:12:27 PDT 2000 PicoWeb Sample Project "ADC" ---------------------------- This project uses a PicoWeb server attached to a LTC 1392 chip. The LTC1392 is an 8-pin micropower data acquisition system chip from Linear Technology Corporation (http://www.linear-tech.com/). The LTC 1392 is a micropower data acquisition system designed to measure temperature, on-chip supply voltage and a differential voltage. The differential inputs feature rail-to-rail common mode input voltage range. The LTC 1392 contains a temperature sensor, a 10-bit A/D converter with sample-and-hold, a high accuracy bandgap reference and a 3-wire half-duplex serial interface. The LTC 1392 can be programmed to measure ambient temperature, power supply voltage and an external voltage at the differential input pins, that can also be used for current measurement using an external sense resistor. When measuring temperature, the output code of the A/D converter is linearly proportional to the temperature in °C. Production trimming achieves +/-2°C initial accuracy at room temperature and +/-4°C over the full -40°C to 85°C temperature range. The LTC 1392 is connected to the PicoWeb server as detailed in the schematic "pwadc.pdf" (an Adobe Acrobat document). The connection to the LTC 1392 chip requires five wires: Signal DB-25 Pin Description ------ --------- ----------- +5V 2 Power (Vcc) GND 19 Ground CS_ 4 Chip select (Atmel Port B, bit 0) CLK 6 Clock (Atmel Port B, bit 1) D 8 Bidirectional data bit (Atmel Port B, bit 2) The PicoWeb project file "adc.pwp" implements a pcode routine named "pread_adc" that can be used to read 10-bit values from any of the LTC 1392's four registers: pread_adc - take reading from LTC1392 chip pread_adc a,n where: a - address in SRAM to get 10-bit result (as 16-bit integer) n - which LTC1392 register to read, defined as follows: n Register Meaning --- ------- ------- 0 Temperature Temp(°C) = (10-bit code) / 4 - 130 1 Supply Voltage Vcc = [(10-bit code) * 4.84/1024] + 2.42 2 Input (0-1 V) Diff. Volts = 1.0V * (10-bit code) / 1024 3 Input (0-.5 V) Diff. Volts = 0.5V * (10-bit code) / 1024 The PicoWeb project file also provides several user-supplied CGI routines which will return ASCII decimal values, as described in the following table: CGI Routine Returned Value (ASCII decmial) ----------- ------------------------------ readtemp temperature (deg-C) readpwr power supply voltage (mV) readhigh 0-1.0 V differential input voltage (mV) readlow 0-0.5 V differential input voltage (mV) rawtemp raw 10-bit temperature reading rawpwr raw 10-bit power supply reading rawhigh raw 10-bit differential input reading (0-1.0 V scale) rawlow raw 10-bit differential input reading (0-0.5 V scale) Using these routine names as "CGI tags" in PicoWeb HTML files will cause readings (in decimal ASCII) to appear in place of the "tags" in Web pages sent by the PicoWeb server. The Web pages in this sample project use HTML FRAMES to create a Web page with the top FRAME containing a table with the four ADC readings (i.e., temperature and the three voltage readings). A FORM button can be used to start and stop auto-update of the readings. Another FORM button can be used to update the readings table each time it is pressed.