I'm connecting to Mega128 running UART but since, from datasheet, the Atmel is a 4.5~5.5v IC, may I know if the attached circuit is safe for the prop?
At 5V atMega128 Vih is 3V. Putting a diode on Propeller TX -> mega RX will not work. Just use a wire or if you're really paranoid 470 resistor. Just use 2.2K resistor from mega TX -> Propeller RX.
You would be better off using an atMega128L with 3.3V power.
Thanks Jazzed. I have no control in selecting the type of mega128 though I did see the "L" version.
Yes, I'm paranoid as due to my boo-boo, I've burnt 2 prop pins. I've placed the resistors. But I still have a problem. I place a scope on the prop's TX line to see the voltage. When power up, I notice the signal line starts from 4v then 3.58 but mega128 still receives signal and works but after sometime, then it goes down to -0.728v! mega128 stops receiving anything.
I'd power OFF & ON immediate & still it shows -0.726v. So I power OFF for more than a minute & when power ON, its back to 3.58v. I didn't place any caps on the TX & RX line as initially thought. I can never duplicate this bug consistently. It goes to -0.726/8 whenever it like.
Could you please point me to any possibility that a signal line could go down so drastically? Is it prop's internal fail-safe mode??? If so, the current must be > 0.5mA? So perplexed.
Wish you could describe the connections used on your troubled design.
I've had Propeller connected to atTiny USI pins simply with resistors and had no problems at all. At first I used the USI to drive the pins directly for I2C. Longer term I decided the better way is to use 3.3V pull-ups on the SDA (Tiny->Propeller) pins and bit-bang the data by only driving the SDA low and releasing the pin for high. Works like a charm.
The mega128 has a different USART interface, but the transmitter can still be bit-banged like I mentioned. The receiver can be interrupt driven.
Spent the whole day trouble-shooting this board. Suspected mega128 might be faulty but I don't have a spare on-hand so I replaced it with a mega8. Again, not "L" so its between 4.5~5.5. Interestingly, I don't get to see the -0.7v problem anymore but I do get to see a 0.88v on Prop's Tx pin. Then .... I have questions...
I'm using the FullDuplexSerialExt to comm & if no signal is sent, will Prop bring Tx pin to low? Meaning zero voltage??? And, if this is so, if I out DIRA[Tx]~~ & OUTA[Tx]~~ while using FDSExt, will there be any problem?
Also, I scope Prop's Rx pin from mega8's Tx pin and it is 4.35v but since I have already placed a 2.2k resistor, it should help cut the current but the voltage remains to be about 4v, is it safe?
And, if this is so, if I out DIRA[Tx]~~ & OUTA[Tx]~~ while using FDSExt, will there be any problem?
The special register bits are like an OR gate. If you have 7 cogs driving a pin low and an 8th cog driving the pin high, the pin will be high. This means that setting the pin will cause FDS* to not function.
Also, I scope Prop's Rx pin from mega8's Tx pin and it is 4.35v but since I have already placed a 2.2k resistor, it should help cut the current but the voltage remains to be about 4v, is it safe?
It's supposed to clamp at about 3.9v. The community consensus is that 2.2K should be fine, but I would be worried too. And that is why I decided to use the method I described before since it is worry free. Using a diode to drop the voltage like shown in your original schematic would not hurt, but I would still use a series resistor from the diode to the prop pin.
Comments
You would be better off using an atMega128L with 3.3V power.
Yes, I'm paranoid as due to my boo-boo, I've burnt 2 prop pins. I've placed the resistors. But I still have a problem. I place a scope on the prop's TX line to see the voltage. When power up, I notice the signal line starts from 4v then 3.58 but mega128 still receives signal and works but after sometime, then it goes down to -0.728v! mega128 stops receiving anything.
I'd power OFF & ON immediate & still it shows -0.726v. So I power OFF for more than a minute & when power ON, its back to 3.58v. I didn't place any caps on the TX & RX line as initially thought. I can never duplicate this bug consistently. It goes to -0.726/8 whenever it like.
Could you please point me to any possibility that a signal line could go down so drastically? Is it prop's internal fail-safe mode??? If so, the current must be > 0.5mA? So perplexed.
Thanks a lot.
Wish you could describe the connections used on your troubled design.
I've had Propeller connected to atTiny USI pins simply with resistors and had no problems at all. At first I used the USI to drive the pins directly for I2C. Longer term I decided the better way is to use 3.3V pull-ups on the SDA (Tiny->Propeller) pins and bit-bang the data by only driving the SDA low and releasing the pin for high. Works like a charm.
The mega128 has a different USART interface, but the transmitter can still be bit-banged like I mentioned. The receiver can be interrupt driven.
Thanks!
I'm using the FullDuplexSerialExt to comm & if no signal is sent, will Prop bring Tx pin to low? Meaning zero voltage??? And, if this is so, if I out DIRA[Tx]~~ & OUTA[Tx]~~ while using FDSExt, will there be any problem?
Also, I scope Prop's Rx pin from mega8's Tx pin and it is 4.35v but since I have already placed a 2.2k resistor, it should help cut the current but the voltage remains to be about 4v, is it safe?
Thanks a lot!!!
Depends on the mode bits. The special register bits are like an OR gate. If you have 7 cogs driving a pin low and an 8th cog driving the pin high, the pin will be high. This means that setting the pin will cause FDS* to not function.
It's supposed to clamp at about 3.9v. The community consensus is that 2.2K should be fine, but I would be worried too. And that is why I decided to use the method I described before since it is worry free. Using a diode to drop the voltage like shown in your original schematic would not hurt, but I would still use a series resistor from the diode to the prop pin.