uC-controlled Modem Progress
Posted 02 December 2010 - 03:51 AM
I posted a thread a couple months ago asking for some advice on my project, and some really good information. Thanks for that. I thought some of you might be interested in how the project is progressing. I just ordered the components for an initial development board sort of thing today.
After sifting through quite a few documents I finally settled on using a 73K222BL as the modem. 73K222 is apparently just a 73K212 with some revisions, and the BL will control opening the line itself, while the AL relies on the uC to do this. There are probably some benefits to having the line under software control, but I decided not to for this application. We can still open and close the line with commands to the modem, but probably not fast enough for something like pulse dialing. I'm using an LH1546 optocoupler to open and close the line.
The 73K222BL (and all the other modems in the series) apparently aren't manufactured anymore, so I had to source them from a shady Chinese operation. The rest of the components are coming from some well-known US-based suppliers. I didn't quite make my ~$20/unit price goal, but that may have been unrealistic. I'm still not doing to bad considering my small orders. Building them in a reasonably quantity might get them close to $20. They're still cheap enough that I can treat them as disposable if a situation warrants it.
I didn't want to deal with working with a PLCC on a breadboard, so I decided to go straight to making a simple development board. My modem development board will attach to an off-the-shelf uC development board so I can start working. The PC boards have been set up, and the designs were sent off for manufacture today. The turnaround is slow, I can probably expect them to be here in about a month. If the boards aren't fantastically fucked up I can start testing some of my code then.
These modem board can't power themselves yet (they rely on the uC board for power,) and they'll be tedious to attach to anything other than the uC development board I designed them for, so they're definitely not ready for being out in the wild, but I'm still making progress. If things go well I might have a fully integrated board with in-system programming, etc within the next few months.
The uCs I'm using are Atmel AVR series, probably ATMEGA8. You can probably think of some applications of a low-power programmable controller+modem pretty quickly, and a few more interesting ones if you keep it in mind for a little while. Once things start looking a bit more respectable I'd love to publish what I've come up with so others here can experiment if they're interested.
I can recall a time when I was younger (and a bit more active in working with phones) when a battery-powered, programmable board like the one I'm hoping for would have been the holy grail. Hopefully I'm getting close to satisfying the curiosity of my inner-troublemaker.
Posted 03 December 2010 - 05:59 AM
While I'm thinking of unreasonable ways to improve this, is there any sort of way the microcontroller can monitor line audio? A while back, I wrote an article about detecting ring type based on the switch you're connecting to. It's got a few inaccuracies I need to edit out eventually (the "DCO" I point out is actually a Metaswitch VP3500 and the Comcast switch is a Cedarview Networks C3), but the concept works, and it'd be great to have the potential of introducing something like this in a software update; http://www.antilimit...dex.php?post=35
Either way, I'm looking forward to hearing how development pans out.
Edited by ThoughtPhreaker, 03 December 2010 - 06:04 AM.
Posted 04 December 2010 - 01:33 AM
I'd like to add some way to charge from the line eventually. Maxim has an appnote about it here. Adding this circuit would more than triple my parts count though. It says it should provide about 150mW when off-hook, that's about twice what the board should use when in a call. It would also be useful to be able to do some simple tone detection. There are a lot of interesting things to find that aren't modems, and I think signatures could be made for most of them. Unfortunately the AVR isn't powerful enough to do any real tone detection work. I'd also like to write some sort of simple scripting language, so a program could be "uploaded" to the chip and then run. I'd want it to be easy enough to write so people could get in to it pretty easily. Since the modem can generate DTMF, including A-D, it could do something like call in to a voicemail and wait a set period before it spat out anything we wanted it to report. Two DTMF tones could correspond to one hexadecimal digit. These are all ideas I've been playing with.
If you want to see the capabilities of the chip, the most current revision of the datasheet is here:
Keep the ideas coming. I'd hate to come up with a fantastic idea that I wish I'd included just after I send the next boards out for processing.
Posted 26 December 2010 - 02:48 PM
The boards and components arrived. I assembled my modem board and attached it to my microcontroller proto-board, loaded my code, and as I expected somethings not quite right. When I request the modem's ID it consistently gives me a response that doesn't match what I should be getting, or any obvious mutation of it. I'll have to wait until classes start again so I can watch what's happening on a logic analyzer. I'm still pretty happy with the way things are progressing. With any luck I'll have the board working within the next few weeks so I can get started on the first uC/modem combo board and start using the thing in the real world. If I can afford to build a few I'd love to send a few out to different people who are interested in trying them out.
BinRev is hosted by the great people at Lunarpages!