Charon 2 Development Kit
Charon 2 DB peripherals demo firmware

The user can access Charon 2 DB peripherals demo HTML page by an internet browser. Simply write the current Charon 2 IP address into the browser and the following page appears. The default IP address =192.168.1.100 , in browser: http://192.168.1.100.
There is a ‘welcome’ HTML page and from this page the user can enter to other pages (links on page):

On NutOs status HTML pages we can see some important NutOs operating system information. The main purpose of the implemented application on Charon 2 is peripheral control. Therefore the most important link is Peripheral control to show the following HTML page :


 

Charon 2 DB peripherals demo

LCD display control

On the webpage is an edit box to control displayed text on the external LCD display connected to the Development Board. This edit box has dimensions of 2x16 chars - the same as the connected LCD display to ensure similar visualisation.
 

LED diodes - output pins control

LED diodes present on the Development Board (as LED-bar graph) are controlled with 8 checkboxes. Each checkbox has a corresponding picture which shows the required (or present) LED state. Checkbox state represents the bit value of the output shift register - if it is checked then given bit/pin is in log.1 state and if is unchecked then given bit/pin is in log.0 state. Because LED diodes are connected to VCC then LED states are opposite the checkboxe states. But the pictures display the real LED states.

Output shift register port state is displayed in one edit box as a decimal value.
 

DIP switches - input pins reading

DIP switches present on Development Board are monitored within 8 checkboxes and 8 corresponding pictures. Each checkbox has a corresponding picture, which shows the present DIP switch state. The checkbox state represents the bit value o the input shift register - if it is checked then the given bit/pin is in log.1 state and if it is unchecked then the given bit/pin is in log.0 state. Because the DIP switch is connected to GND (when it is switched on t the input pin is connected to GND) then DIP switch states are negated checkboxe states. But picture displays are the real DIP switch states.

Input shift register port state is displayed in one edit box as a decimal value.
 

RS232 data output

The user can send some data (text) from this HTML page to the RS232 port located on the Development Board. The user writes the required textin the edit box and in the next update the text is transmitted to the RS232 (at baudrate given in RS232 baudrate box setting).

Because this RS232 data is sent to Charon 2 with the GET method and Ethernut supports a maximum of 256 bytes received by the GET or POST methods, length of this RS232 data output is limited to cca 70 bytes (because the whole 256 byte GET message also includes other settings: LED, DIP switch,..).
 

RS232 data input

When Charon 2 receives some data from RS232 the user can display this data (text) on the HTML page in the supplied edit box. This data is updated with every refresh or update of the HTML page. Charon 2 buffers a maximum of 255 bytes of received chars. If no data was received from the last refresh/update then the previously received data remains displayed.
 

RS232 baudrate control

Charon 2 RS232 line baudrate is controlled through the given edit box on the HTML page. When we transmitsome data from the HTML page to RS232 line, data is transmitted at the given baudrate. After refresh/update of the HTML page this box displays current baudrate (therefore speed may be slightly different as required due to limited step in Charon 2 UART baudrate setting).
 

Thermometer(s) reading

The Charon 2 Development Board has a connector for connecting 1-wire thermometers. The Charon 2 measures temperature from all thermometers every 1 second. The number of connected thermometers is automatically detected. The user can read the thermometers values on the HTML page. The values are displayed in the edit box on the HTML page - in the case of multiple connected thermometers, the temperatures are displayed on multiple lines.

In the present firmware, the maximum number of thermometers that can be connected is 5 (but may be set to different value in Charon 2 firmware).
 

RS232 to TCP port 23 (telnet) link

On the HTML page is displayed information that Charon 2 works also as converter between the RS232 line and TCP (port 23 = telnet). This converter works independently from controlling other peripherals (except baudrate of RS232 whos changes are reflected immediately).
 

Update and refresh values on HTML page

All required values are sent to the Charon 2 Development Boards peripherals by the Update/Refresh values button. Then the required data is submitted by the GET method to the Charon 2 which works as a server. The Charon 2 sets required values, collects required information and display the modified HTML page with current peripheral values.
 

Additional pictures and links

The HTML page shows 2 pictures - logos of the main firmware/software developer companies. Thess pictures are links to their homepages where the user can obtain more information about embedded Ethernet (products, examples, solutions, .. ).

On the top left corner of the page is a link to the Charon 2 Developer Board demo homepage. Use this link to see additional information about Charon 2 current operating system state.

Bottom right is the link to www.HW-group.com, author of this page and developers names.

Description of RS232-telnet converter

RS232 to TCP port 23 (telnet) link

Charon 2 DB peripherals demo firmware works on background as RS232 to telnet (TCP port 23) converter. To display functionality of this converter simply run telnet on some computer on network and connect to given IP address (default IP=192.168.1.100). Then connect computer with running RS232 terminal to Charon 2 Development Board serial port (default serial port parameters are 9600,8,N,1 , but the baudrate can be changed from HTML page). After this actions is telnet client connected with terminal program through network. User can write something into terminal and Charon 2 sends this data to telnet client (data appears in telnet window). Similar this works also in reverse direction (from telnet to RS232).
 

Description of firmware

Basic principle of firmware is to perform some actions as result for user requirements and some background services. On background is running in threads:
  • Thermometers reading: Thermo thread
  • RS232 receiving and RS232 to TCP converter: Receiver thread
  • TCP to RS232 converter : Main program loop
  • HTML pages processing : Service threads httpd1, httpd2, httpd3, httpd4

When firmware starts it firstly open network and UART device. Initializes UART to default speed 9600 baudrate and load network parameters from EEPROM. Then is checked presence of Setup jumper and if present run RS232 setup. Starts Receiver thread to receiving data from RS232 line and starts

Thermo thread to read temperatures from thermosensors. Initializes network to parameters stored in EEPROM. Then register CGI samples to display web pages (NutOs status pages and Charon 2 DB peripherals demo page). In the next are created 4 threads for processing server HTTP responses (threads are named httpd1, httpd2, httpd3, httpd4). LCD display is then initialized to default value: startup text is displayed. At the end of main routine is endless loop for processing TCP to RS232 transfer (this can be made in independent thread, but in this case the main program routine will nothing to do).
 

LCD display control

Output to LCD display is performed during HTML page response in ShowForm routine. Required text to LCD is send as parameter "LCDtext" from HTML page. String value of this parameter is firstly filtered by ReplaceHTMLStr routine to correct conversions to true text chars. Then is performed actions for "intelligent" separation of given text to 2 lines on LCD display. Finally is performed initialization of LCD display (LCD_Init function) and writing required text to this LCD (LCD_Puts function). Initialization is necessary because in case of LCD removing is no firmware restart required.
 


LED diodes - output pins control

LED diodes (in bargraph) control is performed during HTML page response in ShowForm routine. Required value of this LEDs is send as parameter "ShiftLEDOut" from HTML page. According this parameter value is simply set the states of LED diodes with function DevBoardShiftLedOut (because LEDs are connected to outputs of shift register on Development Board).
 

DIP switches - input pins reading

DIP switches state is captured during HTML page response in ShowForm routine. Capture is performed by function DevBoardShiftByteIn because DIP switches are connected to inputs of shift register on Development Board. State is finally inserted into HTML page.
 

RS232 data output

Sending data to RS232 line is performed during HTML page response in ShowForm routine. Required data are sent as parameter "RS232DataOut" from HTML page. This parameter values are firstly filtered by function ReplaceHTMLStr and then sent to Charon 2 UART (_write function).


RS232 data input

RS232 receiving is processing on background in thread Receiver. This thread simply reads data from RS232 line and if something receives then sends received data to TCP port (if client is connected) and also stores data to buffer. This buffer rxbuff can be read by user into HTML page response. Buffer rxbuff has limited size - 255 bytes.

Reading RS232 data is performed during HTML page response in ShowForm routine. Content of rxbuff buffer is inserted to HTML page.
 

RS232 baudrate control

Change of baudrate of RS232 line is performed during HTML page response in ShowForm routine. Required baudrate is sent as parameter "RS232Speed" from HTML page. According this parameter value is set UART baudrate (_ioctl function).
 

Thermometer(s) reading

1-wire thermometers (Dallas DS1822 or DS1820 type) capturing is processing on background in thread Thermo. This thread works in a endless loop: Firstly detect all connected thermometers (TM_Init function) and then reads all detected thermometers values (TM_Init function). The temperatures are stored into buffer Temperatures. Then the thread sleeps 1 seconds and repeat this sequence. Therefore new connected thermometers are detected automatically (in present firmware are supported connections of up to 5 temperature sensors). From buffer Temperatures are reading values by user during HTML page response.

Reading temperatures are performed during HTML page response in ShowForm routine. Temperatures buffer is read and its values are converted to temperatures and inserted to HTML page.
 

RS232 - TCP port 23 (telnet) converter

This conversion is performed in two independent threads.
  • RS232 to TCP conversion is processing as part of RS232 receiving in thread Receiver. This thread simply reads from RS232 line and if something receives then send received data to TCP port (if client is connected) and then stores data into buffer rxbuff for HTML page response.
     
  • TCP to RS232 conversion is made in main program. Main program finally performing a loop where it opens socket (NutTcpCreateSocket function) and then waits for client connections (NutTcpAccept function). When connection is established then stream for reading data from TCP port is opened. During connection is all received data from TCP port transmitted to UART (in function StreamCopy). When disconnection occurred, socked is closed and this loop is restarted.
     

RS232 setup: Ethernet, TCP/IP parameters

RS232 setup routine is performed in independent function RS232Setup. Here is displayed RS232 menu and is processed user input/output. According user changes are changed network parameters and stored into EEPROM. Exit from this routine and continue in firmware is possible by "R" option in RS232setup. To enter to this routine user must on Development Board to short setup jumper and reset firmware (by reset button).
 

HTML pages and pictures

All HTML pages present in firmware are stored in project \HTMLdir directory. This pages and pictures are used as templates for generating HTML pages. To simplify HTML page generation we choose following principle:

Charon 2 DB peripherals demo firmware only insert to this template HTML page a couple of variables in form : variable = value . Charon finds the position of insertion of this small number of variables according first presence of char "@". Therefore insertion place must be near the top of page (to ensure removing other "@" chars collisions). Position place is set into JavaScript function which according this values builds whole HTML page visualization: set checkboxes as bits in byte value, loads corresponding pictures to checked/unchecked checkbox, displays corresponding text to editboxes (including some testing procedures and conversions), ... . JavaScript functions present in HTML page performs some additional functions: Editboxes height settings according text length, removing unsupported chars from editbox (e.g. only numbers are valid in baudrate settings) and formatting of submitted parameters.

Using this technique we transfer complicated page layout processing/testing to client side which has usually more performance as embedded Ethernet server. Disadvantage of this method is that client must supports JavaScript language - but in present time is JavaScript present in all commonly used commercial browsers.
 

Part of HTML template page for inserting variables:

...
  ShiftLEDOut      ="<#ShiftLEDOut> ";
  ShiftLEDIn       ="<#ShiftLEDIn>  ";
  LCDText          ="<#LCDText>     ";
  RS232DataOut     ="<#RS232DataOut>";
RS232Speed       ="<#RS232Speed>  ";
RS232DataIn      ="<#RS232DataIn> ";
Thermometer      ="<#Thermometer> ";

//not remove next line - this char is mark for Charon insert data command
//@
if ((ShiftLEDOut =="<#ShiftLEDOut> ")||(ShiftLEDOut==null)) 
      ShiftLEDOut = 0xAA;
if ((ShiftLEDIn  =="<#ShiftLEDIn>  ")||(ShiftLEDIn==null)) 
      ShiftLEDIn  = 0x55;
if ((LCDText =="<#LCDText> ")||(LCDText==null))
      LCDText = "    LCD Text"+"\n"+ "Ethernut project";

if ((RS232DataOut=="<#RS232DataOut>")||(RS232DataOut==null))
      RS232DataOut = "RS232 Data Out" + "\n" + "0123456789";

if ((RS232Speed =="<#RS232Speed>")||(RS232Speed==null))
      RS232Speed = 9600;

if ((RS232DataIn =="<#RS232DataIn> ")||(RS232DataIn ==null))
      RS232DataIn = "RS232 Data In" +"\n" + "0123456789";

if ((Thermometer =="<#Thermometer> ")||(Thermometer==null))
      Thermometer = 0.0001 + "\n" + 0.0002 + "\n" + 0.0003;;
...

And part of firmware source code to insert variables into template:

    ...
while (NutRomFileRead(DemoFile1,&DemoData,1)>0){
if ((DemoData!='@')||(!EnableParse)){
fprintf_P(stream, PSTR("%c"), DemoData);
}
else{
u_int i,j;
EnableParse=0;
fprintf_P(stream, PSTR("\r\n"));
/*ShiftLEDOut*/
fprintf_P(stream, PSTR("ShiftLEDOut= %d;\r\n") , ShiftLEDOut);
/*ShiftLEDIn*/
fprintf_P(stream, PSTR("ShiftLEDIn = %d;\r\n") , ShiftLEDIn);
/*LCDtext*/
j=strlen(LCDText);
fprintf_P(stream, PSTR("LCDText =unescape(\""));
for (i=0;i<j;i++){
fprintf_P(stream, PSTR("%%%02x"),LCDText[i]);
}
fprintf_P(stream, PSTR("\");\r\n"));
/*RS232DataOut*/
j=strlen(RS232DataOut);
fprintf_P(stream, PSTR("RS232DataOut =unescape(\""));
for (i=0;i<j;i++){
fprintf_P(stream, PSTR("%%%02x"),RS232DataOut[i]);
}
fprintf_P(stream, PSTR("\");\r\n"));
/*RS232Speed*/
fprintf_P(stream, PSTR("RS232Speed =%lu;\r\n") , RS232Speed);
...
...

And after processing the template page (variables are modified):

...
  ShiftLEDOut      ="<#ShiftLEDOut> ";
  ShiftLEDIn       ="<#ShiftLEDIn>  ";
  LCDText          ="<#LCDText>     ";
  RS232DataOut     ="<#RS232DataOut>";
  RS232Speed       ="<#RS232Speed>  ";
  RS232DataIn      ="<#RS232DataIn> ";
  Thermometer      ="<#Thermometer> ";
  //not remove next line - this char is mark for Charon insert data command
  //
ShiftLEDOut= 254;
ShiftLEDIn = 8;
LCDText=unescape("%20%43%68%61%72%6f%6e%20%49%49%20%64%65%6d%6f%20%0a
%45%74%68%65%72%6e%75%74%20%50%72%6f%6a%65%63%74");
RS232DataOut =unescape("%44%61%74%61%20%74%6f%20%52%53%32%33%32");
RS232Speed =9601;
RS232DataIn =unescape("");
Thermometer = 26.6250 ;
;
if ((ShiftLEDOut =="<#ShiftLEDOut>")||(ShiftLEDOut==null)) 
      ShiftLEDOut = 0xAA;
	  
if ((ShiftLEDIn  =="<#ShiftLEDIn>  ")||(ShiftLEDIn  ==null))   
      ShiftLEDIn = 0x55;
	  
if ((LCDText     =="<#LCDText>     ")||(LCDText     ==null)) 
      LCDText = "    LCD Text"+"\n"+"Ethernut project";

if ((RS232DataOut=="<#RS232DataOut>")||(RS232DataOut==null)) 
      RS232DataOut= "RS232 Data Out" + "\n" + "0123456789";

if ((RS232Speed  =="<#RS232Speed>  ")||(RS232Speed  ==null)) 
      RS232Speed= 9600;
	  
if ((RS232DataIn =="<#RS232DataIn> ")||(RS232DataIn ==null)) 
      RS232DataIn= "RS232 Data In" +"\n" + "0123456789";

if ((Thermometer =="<#Thermometer> ")||(Thermometer ==null)) 
      Thermometer= 0.0001 + "\n" + 0.0002 + "\n" + 0.0003;
...
				

ATmega128 Fuses & Lock bits settings

The ATmega128 MCU has three fuse bytes, this listing of the default fuses settings is organizes as the AVR Studio - STK500 – Fuses tab.

Note that the fuses are read as logical zero :

  • 1” means unprogrammed
  • 0“ means programmed
Fuse
Value
Description
M103C
1
ATmega103 compatibility mode
WDTON
1
Watchdog Timer always on
OCDEN
1
Enable OCD
*JTAGEN
0
Enable JTAG   (PB0 - PB4 use for JTAG only)
SPIEN
0
Enable Serial Program and Data Downloading
EESAVE
1
EEPROM memory is preserved through the Chip Erase
BOOTSZ1
X
Select Boot Size
BOOTSZ0
X
Select Boot Size
BOOTRST
1
Select Reset Vector
BODLEVEL
1
Brown out detector trigger level   (BODLEVEL=2.7V)
BODEN
0
Brown out detector enable
CKOPT
0
Oscillator options   (Ext. Crystal/Resonator High Freq.)
SUT1
1
Select start-up time
SUT0
1
Select start-up time   (Start-up time + 64 ms)
CKSEL3
1
Select Clock source
CKSEL2
1
Select Clock source
CKSEL1
1
Select Clock source
CKSEL0
1
Select Clock source   (Start-up time = 16K CK)
X - any value

* JTAG pins – The PB0, PB1, PB2, PB3 pins are used for the JTAG programming, because of this, you can’t use it free while the JTAG interface is enabled (default state).

Lock Bits

LB mode
LB2
LB1
Protection Type
1
1
1
No memory lock features enabled.

Application Protection Mode

BLB0 mode
BLB02
BLB01
Protection Type
1
1
1
No restrictions for SPM or (E)LPM accessing the Boot Loader section.

Boot Loader protection

BLB1 mode
BLB12
BLB11
Protection Type
1
1
1
No restrictions for SPM or (E)LPM accessing the Application section.

 

HW STK500 programmer using

Introduction

This chapter presents some information about how to upload your software into the Charon 2 - Ethernut or any other AVR microcontroller board. A not-so-simple programming adapter is presented, which enables you to program the target board by using the RS232 interface (aka. COM port) of your PC.

Note, that the hardware of this adapter should work for almost any AVR target, but the software is quite limited. It has been tested with ATmega103 and ATmega128 chips only. While programming flash memory, fuses and lock bits of these MCUs works fine, the current version also fails programming the on-chip EEPROM.

Another word of caution. Playing around with the software inside your programming adapter or with the ATmega fuse settings is risky, as long as you don't take special care. Always make sure, that you got a second programming alternative or an Charon module with a working bootloader, if you change the adapter software. Also take care not to disable the ATmega oscillator, when reprogramming the fuse registers.



 

HW STK500 limitations

  • It’s programming ATmega103 and ATmega128 only!
  • It works with the AVR studio 3.56 and 4.06 or higher only!
  • You can’t program internal EEPROM with this dongle.
  • You can use ImageCraft, because it’s calling STK500.EXE from your AVR Studio.

Atmel AVR ISP Programming generally

There are several methods to upload your software to a target device like an Ethernut Board. One of the most advanced is using an Ethernet bootloader (http://www.ethernut.de/en/eboot/) based on the DHCP, BOOTP and TFTP protocols. But how to get the bootloader software into the target system?

This requires a special hardware called programming adapter, also called programming dongle. Programming AVR devices like the ATmega128 is fairly simple. There is no need for special programming voltage supply and timing is not very strict as long as you don't violate the speed limit. Note however, that AVR chips typically support two programming modes, parallel and serial programming. Parallel programming is very fast and excellent for volume production, but it requires an additional 12 Volts supply and is most often done before soldering the chip onto the PCB. The simple serial programming method is the first choice for low volume production and during development. Just three pins are used in this mode, an input line, an output line and a clock line. In addition, the RESET line of the chip must be held low during programming. Because serial programming is done while the chip is already soldered onto the target board, it is also called In-System Programming or ISP. Many AVR boards are equipped with a 6 or 10-pin connecter, where you can plug-in the programming adapter. The 6-pin version had been used initially by Atmel, but they later switched to the 10-pin version which provides additional ground lines. Originally - Ethernut system uses the 10-pin version.

On the ATmega128 the ISP input and output lines are shared with the transmit and receive lines of the first on-chip USART. This adds a minor problem. As long as the adapter is connected, the output line of the adapter shares the same MCU input line as the RS-232 receiver output, which is included on almost any ATmega128 board. To overcome this, Atmel used an additional line called programming enable or programming LED. The programming software on the PC will set this line low before starting the programming cycle. This line can be used to switch the pins on the ATmega from the RS-232 driver to the ISP connector. On Ethernut version 1.3 or Charon I&II Development Board this is done by a multiplexer chip and the line will also lit the red programming LED.
But not all programming adapters provide this signal, so on Ethernut 1.3 (15 – ISP LED & STK500 programming jumper on the Development Board) a jumper has been added to manually pull this line low.

JTAG Programming

JTAG is completely different from ISP. It can not only program the target device, but adds additional hardware and software debugging support. And it requires a more advanced programming adapter which costs much more than a simple ISP adapter. Atmel's "low cost" JTAG adapter, called AT JTAGICE, comes with an adapter cable, which can be used to connect it to an Ethernut 1.3 board with some troubles, but directly to the Charon I&II Development Board. On the Ethernut 2.0, the 10-pin connector can be switched between JTAG and ISP mode by a 20-pin jumper field. Changing the jumper isn't convenient, but typically done once only.
Due to their high price when compared to ISP adapters, JTAG adapters are mainly used for debugging.

ISP Adapters

The often used terms "serial or parallel programming adapter" may be misleading, because some ISP adapters use the PC's parallel port while others are connected to one of the PC's serial COM ports. But both of them use the AVR's serial programming mode.

Parallel port (LPT) ISP Adapters

ISP adapters for the PC parallel printer port are most simple. Some of them do not even need any active components. But you can imagine, that directly connecting your AVR board to the PC parallel port may cause problems. Therefore, most adapters use a line driver. But still this isn't very save. The parallel port on the PC is not very well protected against shortcuts or overload and several people killed this port by plugging the adapter in or out without switching off the Ethernet board power supply first. Very bad, when you did this to your notebook computer. Let’s call these devices “LPT adapters

But there is possible to order Charon 2 Development Kit with the LPT interface. You can use PonyProg (www.PonyProg.com) or UISP software for programming, it’s slower but sometime it’s useful.
 

Serial port (RS-232) ISP Adapters

In opposite to the parallel port, the serial port on the PC is very well protected. But again, there are two types of programming adapters for the COM port. The simpler type uses the port lines directly to generate the programming pulses for AVR chip. Let’s call these devices “RS-232 adapters

The second type sends programming commands and program data to the adapter, which interprets them and accordingly generates the pulses. This adapter type needs some kind of processing capabilities, typically provided by a microcontroller build into the adapter. Let’s call these devices “RS-232 dongle
 

ISP Software

What ever type of adapter you intend to use, you should check the available programming software too. There is no solution, that fits everywhere and a large variety of tools is available in the Internet. Luckily, almost all of them are free.

  • Atmel offers AVR Studio. This isn't just a simple programming software, but an integrated development environment with assember, debugger, simulator, source code editor and other goodies. It's free, but only available for the Windows operating system. Two additional command line tools for ISP are included as well, STK500.EXE and AVRPROG.EXE.

[STK 500 – RS-232 dongle compatible only]
 

  • Originally written by Uros Platise, uisp is a command line tool for the Linux operating system. It's currently maintained by Ted Roth and Marek Michalkiewicz and available at savannah.nongnu.org. A port to the Windows operating system is included in the WinAVR distribution. Before Ted and Marek took over the uisp support, several programmers tried to enhance it and find it a hard nut to crack. The source code is a mixture of C and C++, handles many kinds of different hardware and is not really easy to follow.

[original STK 500 – RS-232 dongle and LPT adapters]
 

  • The commercially supported ICCAVR compiler IDE offered by ImageCraft comes with it's own programmer GUI. However, it uses an external call to STK500.EXE to deal with STK500 compatible programmers until version 6.28. Therefore, AVR Studio had to be installed too. Since version 6.29, ICCAVR handles it internally.

[STK 500 – RS-232 dongle compatible only]
 

  • Last not least, Claudio Lanconelli developed PonyProg, a powerful programming software for the Windows operating system. His company LancOS does not only offer free downloads of this software, but also low cost ISP adapters.

[Various LPT and RS-232 adapters]


HW STK 500 dongle

HW STK500 dongle contained in the Development Kit is copy of the original SISP from the Ethernut Project. Please respect some non compatibility troubles with original STK500 adapter. We are working on this, but it’s only tool for the Charon 2 module programming..

For more detail about this, please check Ethernut project article :

ISP Adapter (http://www.ethernut.de/en/isp/)
 

Additional information

All firmware is written for use with compiler WinAVR and NutOs version 3.3.0. For use with another compiler is necessary rewrite some compiler unsupported functions (e.g. as strtok_r function).

Project files must be located in directory \ethernut\nut\app\<ProjectDirectory> to ensure correct including of some headers.

Project was created by Ing. Igor Cesko for for the HW-group company. Additional routines for LCD display control, shift registers control , 1-wire thermometers reading, threads processing, UART control, TCP control was collected from www.HW-group.com resources and examples included in NutOS operating system www.ethetnut.de.

Charon 2 DB peripherals demo – version 1.0.4

For your own compile of the Charon 2 peripherals demo code, can be useful compile and development applications list:

Development system

Source codes:

Instalation process

  • Install WinAVR (leave checked checkbox for automatic set environment variables),
  • Install Ethernut (run file \ethernut\nut\nutconf.exe and configure system),
  • Copy Development Board demo to the directory - \ethernut\nut\app\db_demo
     

Make process

  • Current directory \ethernut\nut\app\db_demo,
  • Entry „make“ from the command line – it’ll create demo,
  • Entry „make burn“ from the command line – firmware upload to the Charon2,
  • Configure demo in the Charon 2 from the serial port on the USART0 and connect to the webpage.


  Main page Products Support & Download Pricelist Contacts SiteMap  


HW group - Prague - Czech republic - Europe