FM0 (bi-phase space) decoding!

I started a post which left this group pointing their fingers right at me , well I didn't want to deliberately hurt any one and wasn't trying to be rude as well. Oh when your code does not work and you are stuck with oscilloscope to figure out the reason for last break then its very natural to lose control ;-)

Any how I hope that this thread would serve as a netiquette reference rather FM0 decoding. As good as it gets!

Reply to
Ali
Loading thread data ...

The "kids" who complain about netiquette are the people who have been working with embedded systems, and using Usenet, for years or decades. Most of the time we put up with the crap, but sometimes it boils over for one or more of the regulars. Ali came to this newsgroup looking for help. He was given some help for his questions, and some instruction on the way this newsgroup works. He has repeatedly ignored all requests that he follow our style if he wants our help. He started out ignorant

- we help with ignorance in this group. But by ignoring the help and suggestions he has passed through ignorance, obstinacy, rudeness, and his last post claiming "I hope that this thread would serve as a netiquette reference" would be obnoxious if it weren't so ironically funny.

I don't often get into this sort of thread, and I'd be much happier if it were not necessary. But this group is important to many people, as a source of information and ideas, a discussion forum, a way to pass on knowledge, and a source of entertainment. The regulars here don't want it clogged up with off-topic threads like this, but neither do they want it filled with meaningless snippets without context, or other such nonsense. Remember, the people posting here are real people, with their likes and dislikes - if you want to come here and talk to us, then it seems reasonable to ask you to do so politely.

Reply to
David Brown

In article , Michael D_ writes

the argument was about the basic way of using the system to ask questions

Yes. Otherwise you end up with chaos.

society only works because people follow the rules. What if people decide at random what side of the road to drive on?

What if some people decided "f*ck you " was a good form of greeting when the norm was "hello"

What amazes me is when some one comes into a forum and is asked to follow the rules the argue about it with the very people who could help them.

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England     /\/\/\/\/
/\/\/ chris@phaedsys.org      www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Reply to
Chris Hills

In article , Ali writes

You were, repeatedly after being told the correct format for this (and in fact all the 45K odd) Newsgroups

No it's not. Using the correct format to ask questions would have got you the answers.

It has. You are a shining example of how not to do it. Your Nettiquette is appalling.

I suggest you get a new email address and start again as you have managed to piss off a lot of people who would have otherwise helped you.

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England     /\/\/\/\/
/\/\/ chris@phaedsys.org      www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Reply to
Chris Hills

Where and how I was rude? And as far as help is concern I have already solved my problem and I'm hopeful I'll make that thing finish on this weekend.

I wonder that because of f* google broken link problem some people can get so ridiculous , certainly I don't mean every one here specially who have participated in this thread. But some do, as I was awarded being a *PLONK* ! then no one came ahead to stop that kind of nonsense. Is this the gentle way to react on f* google broken link problem?

David wrote:

obnoxious if it weren't so ironically funny.

See the Chris post which includes in fact good guidelines for posting and netiquettes.

Reply to
Ali

piss off a lot of people who would have otherwise helped you.

So have many emails you have used so far?

Reply to
Ali

I'm glad you got your problem solved - that is the aim of this group. If you've found an interesting solution (and especially if it is thanks to help you got here), post a brief summary for the benefit of future readers. This is in fact one of the biggest issues I have with the google interface problem - lack of context makes it much harder to search the archives, so don't forget to add context.

As to how you were rude - I and others have repeatedly told you the problem with your posts (google's reply link, which fails to quote the previous post), and how to fix it. You repeatedly ignored the advice, and it appears that despite the brief quotation you included in one post, you still haven't posted to the correct branch of the thread.

Getting things wrong once is a matter of ignorance - everyone starts off ignorant, until they learn better. For example, I'm happy to tell you that top-posting is bad netiquette (since you have only quoted once, this has only turned up once). But if you repeatedly make the same mistakes like this, you're either too lazy to make an effort, or too disrespectful to pay attention to other people. Either way, you're being rude and irritating people.

You are not alone in this, nor are you the worst (using Google's "reply" is bad, but there are many worse Usenet "crimes"). The hope is that other Google-posters will also read this thread and learn from it.

The gentle way to react was to tell you of your mistake when you first posted - thus CBFalconer gave you useful advice early on. You've been plonked as a result of repeatedly ignoring advice, not as a result of getting things wrong in the first place. The google interface problem is *your* problem if you want to use google instead of a proper newsreader, and *you* have to learn to work around it (including complaining to Google, if you think it could help).

obnoxious if it weren't so ironically funny.

Reply to
David Brown

Hallelujah! He is quote correctly at last !:-)

I send many every day. this is just light entertainment.

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England     /\/\/\/\/
/\/\/ chris@phaedsys.org      www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Reply to
Chris Hills

You might link to try Googling for +netiquette +usenet. Many articles and primers there.

Steve

formatting link

Reply to
Steve at fivetrees

found an >interesting solution (and especially if it is thanks to help you got here), post a brief >summary for the benefit of future readers. This is in fact one of the biggest issues I >have with the google interface problem - lack of context makes it much harder to

Its cool that eventually things are cool;-) As far as I remember I'm in touch with usenet from not more than tow years or so , i always try to share knowledge and participate while being fair enough without any bias.

My exiting design is with 75% correction rate still can't say anything sure as i haven't fine tuned that because of problem in our hardware part.

I'm performing following steps in my interrupt service routine and using just single pin for one edge. I think changing interrupt ( invert interrupt sense on single pin) or using tow pins for both edges for getting every bit is good if data is directly coming from a device (EEPROM , FLASH , ROM etc.) but in my case it is wireless device (RF) so there can be problem in duty cycles;-) thats way i thought that getting just one edge would be better (Not very sure).

MCU = atmega16 CPUclk = 16 Mhz Prescaler = 8 Datarate = 40 kbps Bit rate = 25 micro second

0) Get the timer value 1) Start timer again // so it keep doing its work 2) Encode incoming signal as we are either on falling or rising edge. There can be three possibilities if falling edge is used: a) You get '0' bit b) It would be '0' and '1' c) Or it can be '1' and '1' 3) Keep an eye on glitches and if there is any then request the data again. Not filering the glitch! 4) Disable the ISR once your are done.

Chris Hills wrote:

l0l See how smart learner i can be;-)

Regards, ali

Reply to
Ali

you've

Some of us have been on here well over a decade (well 15 years)

SO are the rest of us. the problem is some of the new people ignore the advice they are given. Now you have picked up, eventually, the correct method of use I hope you get your technical questions answered.

Actually quite slow. You should have picked it up the first time and not argued. That would have been smart.

--
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\ Chris Hills  Staffs  England     /\/\/\/\/
/\/\/ chris@phaedsys.org      www.phaedsys.org \/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Reply to
Chris Hills

Come on give me a break! I do respect seniors as nothing is more worthy than experience.

Reply to
Ali

Well done, that lad. Thanks for taking the advice and quoting context - it really helps, and avoids a lot of unnecessary noise.

Steve

formatting link

Reply to
Steve at fivetrees

not

Ali, you're improving, but you still aren't attibuting the quotes to those who said it.

To the problem at hand:

Firstly the incomming signal needs to be bandpass filtered before feeding to the micro. Having to great a bandwidth is just an excuse for noise and glitches to get by. Similarly you need to loose the low frequencies because there is no information there either - note that the all ones is a 20 kHz squarewave and all zeroes is 40 kHz - so there is little of value below 20 kHz.

Secondly the signal needs to be cleaned up with a comparitor that is affectively a zero-crossing detector to be able to reconstruct as close to square wave as possible i.e. equal duty cycle.

Next, a single edge detection isn't sufficient. It isn't enough to know how long it is between rising edges (say) - 50 us measured between edges is very likely to be two ones but 37.5 us could be 1 plus half a zero or half a zero plus a one - you need to know whether you started on a bit boundary or in the middle (of a zero) - not impossible, but I think it is possible to be stuck out of sync with some bit patterns.

I would suggest trying to use a timer capture on both edges of the input if you have the hardware. The interrupt then has all the time until the next interrupt to handle the data (12.5 us). Typically you level the counter free running and subtract the capture value from the previous one. Now you have a stream of half-cycle widths which you can decode into a bit stream - two narrows mean a zero and one wide means a one. In the simplest case you would use fixed thresholds for what narrow and wide means, but because of the bandpass filtering the edges will move depending on the prior signal and so the optimal thresholds are data dependent.

Finally, it is necessary to sync-up to the data stream. Normally the signal will include sync patterns of some sort so that you can reliably identify the bit cell positions. For example, a string of zeroes is encoded as transitions every half bit-time and until you see a one (full bit-time) the stream could be interpretted two ways. I guess the higher level character encoding scheme uses bit stuffing or start/stop bits or 'sync bytes' to handle this. Whichever way it is you will be decoding data to throw away until the sync is acheived.

And... ...just to contradict myself there will be some harmonic content below 20 kHz because most data doesn't repeat every bit time - imagine

101,101,101 which has a strong 13.3 kHz component.

Peter

Reply to
Peter Dickerson

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.