I Dave

Glad you got it going.  This reminds me of 8255 struggles from days long
gone.

Rayh


On Wed, 2007-09-26 at 06:30 -0500, [EMAIL PROTECTED] wrote:
> My ongoing troubles with using the ax5214h driver with an Acess DIO-48 card 
> may be of assistance to some others.
>   I checked the Axiom manual for the card, and discovered that the three 
> most significant bits of the 8255 control reg. were pre-empted in some way 
> on the board. This resulted in " dont care" status for those 3 bits. the 
> Acess board uses the full register set of the 8255, So a simple mod to the 
> driver:
> Snip;
> ====================================
>      msg = rtapi_get_msg_level();
>      rtapi_set_msg_level(RTAPI_MSG_WARN);
>      retval = 0;
>      config = 0;                 ( CHANGE TO: config = 0x80; )
>      dir = board->dir_bits & 0x01;
>      retval += export_port ( boardnum, 0, &(board->port_1A[0]), 8, dir );
>      if ( dir == 0 ) {
>          config |= 0x10;
> =====================================
> set the msb of the control port to allow direction configuration of ports 
> a,b and c. ( do the same for second chip )
> IT WORKS!!
> Only trouble was:    when I used halrun, and  loadrt hal_ax5214h etc. etc, 
> all the outputs came on.
> after making thread, addf etc, start, they react normally. ( frantic time 
> trying to remember what to do as the power was
> temporarily on the i/o for testing )
> So back to the drawing board. The 8055 defaults to all inputs on 
> power-up/reset , probably can't write to inputs,
> So - - - -  a simple mod to the driver:
> Snip;
> =====================================
>    /* initialize hardware - all outputs high
>          (since outputs are active low) */
> ( NEW )    outb(board->port1config, board->base_addr+3);
>      outb(0xff, board->base_addr+0);
>      outb(0xff, board->base_addr+1);
>      outb(0xff, board->base_addr+2);
>   ( OLD )    outb(board->port1config, board->base_addr+3);
>   ( NEW )   outb(board->port2config, board->base_addr+7);
>      outb(0xff, board->base_addr+4);
>      outb(0xff, board->base_addr+5);
>      outb(0xff, board->base_addr+6);
>    (OLD )     outb(board->port2config, board->base_addr+7);
>      /* restore saved message level */
>      rtapi_set_msg_level(msg);
>      return retval;
> }
> =====================================
> Place the control register write before the initialisation bits. ( I guess )
> remove the old, and replace with the new lines.  ( out with the old and in 
> with the new ? )
> IT WORKS! Really works, all outputs are off on loading the driver, all i/o 
> is as it is configured.
> My compile method?   download source and GCC etc. and compile the whole 
> shebang !!
> Aboriginal sledgehammer approach. But it works! (git er done 
> )   Perserverance pays.
> ( It might be interesting if someone with the Axiom card found out what 
> happens when they load the driver )
> hope all this helps someone.
> Dave
> Dave B.
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Emc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-users
> 


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to