|
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.
|