Hi,
I have an embedded system with an AT89C51SNDC1 (which have only one UART) So actually I have only one external serial connection for debugging this UART by a DB9 connector.
for my new application I must implement the reading of data comming from a GPS oem (each second). Because of I have only one UART (on pins P3.0 and P3.1 are connected a debug cable) incoming data from GPS must be connected to the same pins of connector of UART than use for debugging (perhaps only on RX pin of the µc because of GPS incoming), so I think so but I don't know if it is correct?
for that I suppose to use every short time of each second reading of data coming from GPS in my infinite loop, but how exactly do that? Must I use software interrupts?
In my actual program there is no interrupts.
So how must I implement that, could you help me please?
PS: So I suppose that hardwarelly I will have an external connector with "Y" cable.
Thank you
Best Regards,
Sems
If The GPS only transmits. Then split the TX and RX
Apart from the cost of the PCB re-spin, the per-unit additional cost of a debug port is virtually nil:
All you need to provide on the board is a 3-pin header; the RS232 transceiver can reside off the board, as you only need it when actually connected to the debugger. In fact, for production boards, you might not even fit the header!
Often, in places, where tools (e.g. ICEs) and respins are scarce, you will find that it is an accounting issue. The salary of those who work forever to manage without proper tools is in a different column than the cost of the tools/respins required for efficient work.
I recall a place, that shall remain unnamed, where the staff was (in my opinion) at least 3 times larger than it should be with proper support. A request for CodeWright (~$300) was refused "not room in the budget". Of course, things like respins, ICEs, faster PCs were totally out of the question. When I (quickly) decided that that was not a place for me, I had 'a talk' with the boss and his statement was "no competent IT person (yes he used that 'title' in an embedded shop) need stuff redone or fancy tools". I recall the weeks of work (at ~$50/hour salary and benefits) spent poring over schematics to make sure that no respin (~$500 once) would be needed.
So I told him that my desire to be productive eveidently made me incompetent and left.
Erik
"I recall a place, that shall remain unnamed, where the staff was (in my opinion) at least 3 times larger than it should be with proper support. A request for CodeWright (~$300) was refused 'not room in the budget' ... weeks of work (at ~$50/hour salary and benefits)"
Yes, been there - see: www.8052.com/.../read.phtml
I seem to remember that Michael Karas posted a story a while back on 8052.com relating how skimping on tools killed a company - unfortunately, I can't seem to find it now.
Thanks all,
Yes the software development can cost much too.
for the moment I can not realize a new PCB but in the future maybe anyway if I can use this new GPS application with the existent PCB it will be too an software investment for the new future project.
so your propositions are very interristing.
Using of an ICE ( I think to a JTAG system isn't it?) if yes how use it like simulation or debug?
And the encapsulated GPS data this is very interresting too (normally the data incoming from GPS on port com at 4800 baud/s) Knowing that the using of rx tx of the µc is at 19200baud/s. How must I encapsulate the gps data for using the debugging (seeing what happens in a console changing some settings etc..) and GPS data on the same UART ?
And finnaly using only GPS data on the single UART of the µC but this way will be difficult to debug (see what happens on a console) so difficult too to impement the receiving GPS data. (problem coming from problem :( ).
Could you help ùe to implement the good software for resolving this problem?
Thank you Best regards,
Multiplexing the data could be done by limiting the two streams to 7-bit data, and using he 8:th bit as selector. This would allow a PC program to send typed characters immediately to your application.
An alternative could be to multiplex a full line at a time, i.e. the first character received after a newline character is the mux character, specifying if the next line of text is NMEA data or debug data.
Both alternatives requires you do write a little application on the remote side, to pick up GPS data from an external GSM module (or simulate it) and feed in one mux channel, and to display some form of console or GUI for the monitor interface.
If you have existing code, it can be done fast and cheap. If you start from zero, the required time can be very high - especially if you have never worked with serial ports on Windows, Linux or whatever OS you run.
Which, of course, begs the question: would that time be better spent re-spinning the PCB...?
;-)
I would definitely have selected updated hardware. The spin-off from a better suited hardware can potentially lead to other market niches being available.
Using of an ICE ( I think to a JTAG system isn't it?) if yes how use it like simulation or debug? If you do not know, visit e.g. Ceibo.com or Nohau.com
an ICE rarely is JTAG, if you have JTAG it usually is "ICE functionality built into the chip". For the typical chip the ICE has a 'pod' that you plug into your board instead of your processor, the pod runs your program on your actual board with the same inputs and outputs and at the same speed as your actual chip (your board will not know the difference)
thus an ICE is neither "simulation or debug" it is In Circuit Emulation
ICEs will cost you ~$500(e.g. Acqura) - ~$20000(e.g. Lauterbach) and they will pay for themselves in no time at all.
Actually I try to make goo software,
it will be nice if you show me some code sample doing what you said ie in encapsulation gps data or other.
Thank you.