[ECOS] UART communication
Gary Thomas
gthomas@redhat.com
Tue Sep 5 09:03:00 GMT 2000
You might try the [untested] attached patch. No guarantees, but it
will give you an idea of where to look and what to try.
Of course if you get it working, we'd appreciate any feedback/patches.
On 05-Sep-2000 Dave Airlie wrote:
>
> With eCos on the ARM AEB you cannot choose 57600, I up came against
> something similiar a while back.. check the return from
> cyg_io_set_config I found it by tracing the code ...
>
> I think you can use a different clock multiplier to get 57600 but it
> involves changing eCos code...
>
> Dave.
>
>
> On Tue, 5 Sep 2000 Andreas.Karlsson@combitechsystems.com wrote:
>
>> Hi,
>>
>> While receiving several bytes on the UART0 port on my AEB-board the
>> eCos-serialdriver says it only received 1 byte with the value of 0.
>>
>> The incoming data looks very nice on an oscilloscope.
>>
>> Just to be sure that I hadn't messed something up in my receiver-thread I
>> connected the TX and the RX pin and sent 4 bytes, the packet was received
>> just as it should.
>>
>>
>>
>> I compiled the ser0 with a baud rate of 57600 since that's the only one I
>> can use. The other settings are 1 stop bit, no parity, wordsize=8 and
>> CTS/RTS enabled.
>>
>> I noticed that the baudrate of 57600 wasn't supported in aeb_serial.h but
>> what happens when I make this selection in the configuration?
>>
>> To be able to enable CTS/RTS I had to modify the select_baud-array in
>> aeb_serial.h. This because I should be able to set all fields in the
>> cyg_serial_info_t struct. I added the value of 26 on the bauddivisor for
>> 57600, maybe this is the problem.
>>
>> I really don't know what could be wrong so if anybody has a clue...
>>
>> /Andreas
>>
>
> --
> David Airlie, Software Engineer, Parthus Technologies plc.,
> Mary Rosse Centre, National Tech Park, Limerick, Ireland.
> t: +353-61-508116 / f: +353-61-508101 / David.Airlie@parthus.com
>
============= Patch to support 57600 and 115200 baud on AEB-1 ================
Index: devs/serial/arm/aeb/current/src/aeb_serial.h
===================================================================
RCS file: /local/cvsfiles/ecc/ecc/devs/serial/arm/aeb/current/src/aeb_serial.h,v
retrieving revision 1.1
diff -u -5 -p -r1.1 aeb_serial.h
--- devs/serial/arm/aeb/current/src/aeb_serial.h 2000/04/10 14:44:46 1.1
+++ devs/serial/arm/aeb/current/src/aeb_serial.h 2000/09/05 15:59:29
@@ -144,11 +144,11 @@ static unsigned short select_baud[] = {
69*3, // 7200
52*3, // 9600
(69*3)/2, // 14400
26*3, // 19200
13*3, // 38400
- 0, // 57600
- 0, // 115200
+ 26, // 57600
+ 13, // 115200
0, // 230400
};
#endif // CYGONCE_ARM_AEB_SERIAL_H
More information about the Ecos-discuss
mailing list