Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Programming SMS Controller Chip

Status
Not open for further replies.

bowlingo

New Member
Hi all,

I really want to make this project..

https://www.siliconchip.com.au/cms/A_102670/article.html

As far as my electronics knowledge goes I can solder and understand basic components etc..

I can get the board from a company in Australia and also the components

Where I think I am going to get well and truly stuck is obtaining and programming the chip

The chip is described as

AT90S8515-8 or ATMega8515-16 microcontroller (40 pin) (IC1), programmed with SMS.HEX

As of the provided info from the sms controller part 2 aritcle that I also had to pay for
https://www.siliconchip.com.au/cms/A_102994/article.html as far as programming the chip its providing the following info..



Microcontroller Programming
If you’re building this project from a kit, then the microcontroller (IC1) will have been programmed and you can ignore the following information. Alternatively, if you’ve sourced all the components separately, then you’ll need to program the microcontroller yourself.


**broken link removed**

Fig.10: if you're programming your own ATMega8515 micro, you must also program the fuse bits. Here's how they're configured in AVR Prog, as used with the AVR ISP Serial Programmer. Once you've set all of the options exactly as shown, click on the "Write" button.A 10-way header (CON5) has been included on the PC board for connection to an "in-system" type programmer. We described a suitable low-cost programmer in the October 2001 edition of SILICON CHIP. Kits for the programmer are currently available from Altronics (Cat. K-2885), on the web at www.altronics.com.au.

Note that if you are using this particular programmer, the "Atmel AVR ISP" software described in the instructions is no longer available. A suitable alternative, named "PonyProg", is available free from www.lancos.com. Set up PonyProg for the "AVR ISP (STK200/300)" parallel port interface as described in the included documentation for compatibility with the programmer.

Some readers may also be familiar with the more recent "AVR ISP Serial Programmer", described in the October 2002 edition. This newer programmer will do the same job but connects to your PC via a serial (rather than parallel) port. Kits for this programmer are available from AutoSpeed Electronics (Cat. KC-5340) – see AutoSpeed

As published, the AVR ISP Serial Programmer can successfully program the AT90S8515 microcontroller. However, to program many of the newer generation micros, including the ATMega8515, the code in the programmer’s on-board micro must first be updated. An update is available from the SILICON CHIP web-site.

Once you have a suitable programmer, together with the necessary cables and Windows software to drive it, all you need to complete the job is a copy of the microcontroller program for the SMS Controller. This can be downloaded from our web site in a file named "SMS.ZIP".

"SMS.ZIP" contains the file "SMS.HEX", which needs to be programmed into the micro’s program (FLASH) memory. Just follow the instructions provided with the programmer and software to complete the task.

Fuse bits


**broken link removed**

Fig.11: the parallel port programmer (October 2001) uses PonyProg, which has an entirely different fuse configuration menu. Again, copy this example and hit the "Write" button. Don't be tempted to experiment with different fuse settings unless you know exactly what you're doing, as certain combinations can render the micro inoperable!We’ve specified either AT90S8515-8 or ATMega8515-16 microcontrollers for this project. Although it has many improvements over its predecessor, the ATMega8515 is a pin-for-pin replacement for the AT90S8515. In fact, we’ve tested this project with both devices to ensure compatibility.

The only additional requirement when using the ATMega8515 is to ensure that the fuse bits are correctly programmed (see Figs.10 & 11). The default fuse settings in the AT90S8515 are OK and should not be altered.

The AT90S8515 & ATMega8515 micros are both stocked by Jaycar. The ATMega8515 is also available from Dontronics, on the web at www.dontronics.com.



Thanks
 
You get an AVR programmer, plug in the 10 way IDC header and use the fuse bits as described above and program the HEX to the chip.

The fuse bits being the configuration shown such as WDTON, BODEN, which are WatchDog Timer ON, and Brown Out Detect ENable respectively for example.

Wilksey
 
I bought the kit for that project some time ago and it came with the AT90S8515-8 already programmed. It has version 1.01 of the firmware.

Since then, there have been two updates to the firmware to fix bugs. The latest version I've found is 1.2 and I'd like to update to this but have no idea how to.

Have you had any luck with your project?

I'd like to build another one but can't get a reply from the PCB supplier and the AT90S8515-8 appears to be obsolete now.

Send me a PM if you'd like to collaborate on this.

I should add that the kit I've made works well and is pretty impressive. Good value too, considering what it costs and what it's capable of.
 
Hi rip..

I ended up buying a 8 input, 8 output sms controller from China for £150.00 it work amazingly :)
 
You need a GSM modem, if it's 232 then you will need a MAX232 or equivalent level shifter, I use 2 2n7000 transistors for level shifting, a hell of a lot cheaper than the MAX chips!
Or you could always interface with a mobile phone if you have the appropriate cable, again, you will more than likely need a level shifter.

You will need the AT Command set for said phone / modem, and a working SIM card, make sure the PIN is off, it can be used with it on,but it's a pain in the a$$!

Then you will need to define your messages, I prefer to use something like: "$1234::eek:utput-1-on(off)^" where 1234 would be a pin code. Makes it more secure. Once that is done you can test this with a standard serial port to hyperterminal or something. Once you are satisfied that the system is working correctly, then you need a message loop to check for SMS messages, if you're clever you will use a phone with TEXT mode and not PDU as PDU needs to be decoded, another pain in the a$$! The AT Command set for your device can help you with receiving SMS and checking for.

Outputs can be simply 5V logic, or transistor driven, i.e. ULN2803 to a relay network to control lamps, air conditioners, fans, etc.

Inputs can be read by the device, compose an SMS (again in TEXT mode!!) and send out using predefined numbers etc. Again, your AT Command set will tell you your syntax etc.
Syntax can be similar to above, or completely different, if you want it to be readable on a reciprocating mobile phone then I suggest more readable text, such as "Fan has stopped working!" for example.

At the end of the day it's just another serial interfaced device, make sure you got your level shifters, make sure you can issue AT<CR> and get a response back, and make sure you got your power right, some GSM devices only require up to 3V/3.3V and you may damage with 5V.

If you are using a GSM modem with GPIO, and you want to utilise this from a device, make sure if your controller is driven by 5V but your GSM modem is driven by 3V, that you have either a level shift or that your controller can accept 3V as a valid voltage, most can, just a precaution, always worth checking!

You can output and input whatever number you want, depending if your controller has the functionality.

I personally use PIC's, a 40 pin device can utilise 36 IO lines, that can be used to drive 20 devices and read 16 devices back in for example. But with the controller you will need at least 2 for UART, with an internal oscillator you can use 14 input devices and perform SMS commands for example, as well as retaining the 20 output pins.

Hope this made sense!!

Wilksey
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top