[En-Nut-Discussion] changing of OS v4.2.1 to v4.3.3 bit wiht respect to ToWireBitBanningInterFase

Lokker, Ronald R.Lokker at krohne-altometer.nl
Tue Aug 7 22:35:00 CEST 2007




Super Developers,

Question

i use a at91sam7x-ek board and i inplemented a RTC circuit as the
eternut3 board and i enabele in the config X12RTC
		(nut os configuration - Device drivers - x12xx driver -
system configuration - ENABELED) 

but the cpu's are different ant the i/o ports are not the same
	ethernut    board CPU AT91R40008	clock at Poort P17
data at Poort P16	(cpu has 1 poort)
	and i use e free poort to te SAM cpu as follows
	atmelsam board CPU AT91SAM7X	clock at Poort PA29	data at
Poort PA26	(cpu has 2 poorts PA and PB)

so i eddit the file (first i copy the file twbbif.c to twbbifsam.c) and
edit the file twbbifsam.c an change

this

	#if defined(__arm__)
	
	#include <arch/arm.h>

	#ifndef TWI_SDA_BIT
	#define TWI_SDA_BIT     16
	#endif
	#ifndef TWI_SDA_PE_REG
	#define TWI_SDA_PE_REG  PIO_PER
	#endif
	#ifndef TWI_SDA_OE_REG
	#define TWI_SDA_OE_REG  PIO_OER
	#endif
	#ifndef TWI_SDA_OD_REG
	#define TWI_SDA_OD_REG  PIO_ODR
	#endif
	#ifndef TWI_SDA_COD_REG
	#define TWI_SDA_COD_REG PIO_CODR
	#endif
	#ifndef TWI_SDA_SOD_REG
	#define TWI_SDA_SOD_REG PIO_SODR
	#endif
	#ifndef TWI_SDA_PDS_REG
	#define TWI_SDA_PDS_REG PIO_PDSR
	#endif	

	#ifndef TWI_SCL_BIT
	#define TWI_SCL_BIT     17
	#endif
	#ifndef TWI_SCL_PE_REG
	#define TWI_SCL_PE_REG  PIO_PER
	#endif
	#ifndef TWI_SCL_OE_REG
	#define TWI_SCL_OE_REG  PIO_OER
	#endif
	#ifndef TWI_SCL_OD_REG
	#define TWI_SCL_OD_REG  PIO_ODR
	#endif
	#ifndef TWI_SCL_COD_REG
	#define TWI_SCL_COD_REG PIO_CODR
	#endif
	#ifndef TWI_SCL_SOD_REG
	#define TWI_SCL_SOD_REG PIO_SODR
	#endif

in that

	#if defined(__arm__)
	
	#include <arch/arm.h>
	
	#ifndef TWI_SDA_BIT
	#define TWI_SDA_BIT     26
	#endif
	#ifndef TWI_SDA_PE_REG
	#define TWI_SDA_PE_REG  PIOA_PER
	#endif
	#ifndef TWI_SDA_OE_REG
	#define TWI_SDA_OE_REG  PIOA_OER
	#endif
	#ifndef TWI_SDA_OD_REG
	#define TWI_SDA_OD_REG  PIOA_ODR	
	#endif
	#ifndef TWI_SDA_COD_REG
	#define TWI_SDA_COD_REG PIOA_CODR
	#endif
	#ifndef TWI_SDA_SOD_REG
	#define TWI_SDA_SOD_REG PIOA_SODR
	#endif
	#ifndef TWI_SDA_PDS_REG
	#define TWI_SDA_PDS_REG PIOA_PDSR
	#endif
	
	#ifndef TWI_SCL_BIT
	#define TWI_SCL_BIT     29
	#endif
	#ifndef TWI_SCL_PE_REG
	#define TWI_SCL_PE_REG  PIOA_PER
	#endif
	#ifndef TWI_SCL_OE_REG	
	#define TWI_SCL_OE_REG  PIOA_OER
	#endif
	#ifndef TWI_SCL_OD_REG
	#define TWI_SCL_OD_REG  PIOA_ODR
	#endif
	#ifndef TWI_SCL_COD_REG
	#define TWI_SCL_COD_REG PIOA_CODR
	#endif
	#ifndef TWI_SCL_SOD_REG
	#define TWI_SCL_SOD_REG PIOA_SODR
	#endif

and than last but no least

edit the file ((so this choosen the file by config) HW_MCU_AT91R40008
use twbbif.c and HW_MCU_AT91SAM7X use twbbifsam.c)

\ethernut-4.2.1\nut\conf\dev\dev.nut

from this 

    --
    -- Simple Interface Drivers.
    --
    {
        name = "nutdev_twbbif",
        brief = "Bit Banging Two Wire",
        description = "Tested on AT91 only.",
        requires = { "HW_MCU_AT91R40008" },
        provides = { "DEV_TWI" },
        sources = { "twbbif.c" }
    },

to that

    --
    -- Simple Interface Drivers.
    --
    {
        name = "nutdev_twbbif",
        brief = "Bit Banging Two Wire",
        description = "Tested on AT91 only.",
        requires = { "HW_MCU_AT91R40008" },
        provides = { "DEV_TWI" },
        sources = { "twbbif.c" }
    },
    {
        name = "nutdev_twbbif",
        brief = "Bit Banging Two Wire SAM",
        description = "Tested on SAM only.",
        requires = { "HW_MCU_AT91SAM7X" },
        provides = { "DEV_TWI" },
        sources = { "twbbifsam.c" }
    },

and than it is working 

but i wil now change from os v4.2.1 to v4.3.3

and i have heard that the bit ToWireBitBanningInterFase ar now
configurabel 

and the question are how to do ???

ps let this also a good lesson to change the os device of your choic

Ronald  :-)

====================================== DISCLAIMER =================================== 
NOTE: The information transmitted in this email is for the person or entity to which it is addressed: 
it may contain information that is confidential and/or legally privileged. 
If you are not the intended recipient, please do not read, use, retransmit or disseminate this information. 
Although this email and any attachments are believed to be free of any virus, it is the responsibility 
of the recipient to ensure that they are virus free. No responsibility is accepted by the KROHNE Company 
for any loss or damage arising from receipt of this message. 
Furthermore, unless explicitly stated, this email is in no way a legally binding agreement. 
The views represented in this email do not necessarily represent those of the corporation. 



More information about the En-Nut-Discussion mailing list