Society of Robots - Robot Forum
Electronics => Electronics => Topic started by: sonictj on August 10, 2009, 12:27:05 AM
-
I couldn't decide whether this was a software or hardware issue. It could go either way so I just picked a forum.
I've had a blackfin for a while now and I would like to finally interface it with a robot, but each time I pick the thing up. I get so frustrated I put it aside. My problem at the moment is that my microcontroller does not receive the data correctly from theblackfin its garbled like a baud mismatch.
setup same as the blackfin axon tutorial rx's to tx's and flow control overridden on the blackfin.
Here's what I know for sure
1. I can communicate with the blackfin with my computer via bluesmirf or ftdi cable
2. The blackfin recognizes the commands I send from my avr (proved this with a second ftdi cable to my computer)
3 the baud is definitely correct 115200 for both devices. I would not have gotten data to my PC otherwise, and likewise would not have been able to send data to the blackfin
what I've tried
1. I guessed that the 3.3V logic from the blackfin may not be reliably recieved as a high signal by the avr. So I tried a pull up resistor first in hardware, then in software neither worked.
what else I think may be wrong
1. I am wondering if the error at 115200 baud (16MHz crystal) may be coming into play if I have wires ~12" long
my software is attached the files of interest are the uartn (n = number), print, and main.
-
I just got an email back from the Surveyor guys and they recommend a level shifter, which makes sense, but Admin doesn't have to use a level shifter with his setup ???. No harm in trying one out I guess.
Any thoughts?
-
We never had any problems with a 7.37 etc crystal. Maybe try a lower baudrate and see if it helps.
-
I was talking about my avr with the 16 mHz crystal
-
What exactly is the 115200 baud rate with a 16MHz crystal ? I think in the past we've had trouble interfacing wwith XBee modules at 115200 because they actually run closer to 112400.
-
http://surveyor-corporation.stores.yahoo.net/srblcabo.html (http://surveyor-corporation.stores.yahoo.net/srblcabo.html) its says here that the default baud is 115K for uart0. Plus the camera communicates fine at that baud rate to my computer.
What exactly is the 115200 baud rate with a 16MHz crystal ?
My AVR board is running at 16Mhz with its uart at 115200 baud. At 16Mhz the baud is off I think by 3%. you have to use a 14. something MHz crystal for there to be no error.
-
I can communicate with the blackfin with my computer via bluesmirf
Wait, you got it to work with a bluesmirf?! At least with the older bluesmirf version, I was never able to get it to work. Well, except once, but never figured out why, nor could I repeat it . . . I also never got it to work with a CP2102 . . . but it works fine with ftdi!
1. I can communicate with the blackfin with my computer via bluesmirf or ftdi cable
2. The blackfin recognizes the commands I send from my avr (proved this with a second ftdi cable to my computer)
wait . . . so both work, then whats wrong? ???
This is my setup, exactly:
http://www.societyofrobots.com/electronics_blackfin_camera.shtml
(yea, its a rough draft, and I plan to finish it one day!)
-
The problem is on the recieving end of the avr.
I also never got it to work with a CP2102
I've used mine and it worked
This is my setup, exactly:
http://www.societyofrobots.com/electronics_blackfin_camera.shtml
(yea, its a rough draft, and I plan to finish it one day!)
I'm connected in the same fashion. I checked your uart initializations too and we are using the same settings, with the exception I don't use , or have set the tx complete interrupt. I guess I could try the axon code and see if I get any different results. The only possibility I can think of now is software since the axon works with the blackfin and I have nearly identical hardware.
**EDIT when I power the blackfin I use a 12V battery hooked up to the green board for power. The regulator seems to want more than 5V. For a switcher that seems like a pretty high dropout voltage. 6V should work, but I haven't tried it.
-
I only ordered a single blackfin camera so i dont know anything about the boards you get with tha packige but i asssume they are way better than the ones i made.
Only thing i can suggest is to lower the baudrate of both the camera and the avr.
Just checking, but do the 2 boards share ground?
-
yes, they share gnd.
T is for transmit, R is for receive, G is for ground. they're the three wires you need
-
Can it be a stupid fuse bit setting? Like clockdivby8 or something like that? I remember a post that may be related to your problem: http://www.societyofrobots.com/robotforum/index.php?topic=2679.msg47933#msg47933 (http://www.societyofrobots.com/robotforum/index.php?topic=2679.msg47933#msg47933)
Good luck!
-
just a stupid-check . . . got interrupts running?
-
do the 2 boards share ground?
yep
just a stupid-check . . . got interrupts running?
just the ones for the uart. I tried another test last night I made a txt file and then sent that to the board. I made sure the file was longer than the version string sent out by the blackfin. My AVR board recieved and spit out the file correctly. I figure thats the same amount of stress on the uart. Do you agree ?
-
As you suggested earlier, I'd recommend using my Blackfin code for the Axon. That'll verify whether its a hardware or software issue.
-
As you suggested earlier, I'd recommend using my Blackfin code for the Axon. That'll verify whether its a hardware or software issue.
Thats probably the next step I'll try that in a bit
-
I just uploaded the axon source and I'm having issues.
I simply took the axon source with no alterations, and nothing comes up in hyper terminal. yet during the initializations of the axon in axon.c there is a an rprintf statement sent to uart1 stating something like the initializations finished. I'm confused.
-
Sounds like you aren't accounting for the right UART ports. My Blackfin code changes the UART port behind your back - its a 'feature' I added so people didn't have to change it themselves.
-
I know the blackfin is uart3 I'm talking about uart 1. I just simply compiled/uploaded the axon code and uart1 never printed anything even though there was an rprintf statement in the initializations. It would be easy for me to figure out whats going on except when I run the simulator, assembly code pops up. I don't know how to switch to simulating the c code, and I'd rather not read through the full instruction set of the AVRs :P.
-
I just fixed the problem the reason I suspect was timing of the ATmega640 uart and the Blackfin's uart. I was using 115.2k buad but without the U2Xn bit set (double speed). The baud calculation was corect , but the error was high enough to cause bad communication.
@ Admin you did not encounter this problem because of your camera's default baud being 38400. Since you bought the product the firmware has changed a few times. You may want to include this information in your tutorial when you get around to it.
-
Well, as hgordon mentioned to me a month or two ago, the firmware has changed a lot in the last year. So some of my software is probably no longer compatible. I'll have to upgrade it all before posting the tutorial. My ERP code all works on the old firmware versions . . .
-
Well, as hgordon mentioned to me a month or two ago, the firmware has changed a lot in the last year. So some of my software is probably no longer compatible. I'll have to upgrade it all before posting the tutorial. My ERP code all works on the old firmware versions . . .
I was just talking about the timing issues associated with the uart. Its not your fault if the blackfin changes firmware ect. people can make their own functions. Its just a bit hard to do anything if you cannot get any data from the Blackfin :P.