マイクロコントローラーatmega32と通信するために、SCBTS-7500のi2cインターフェースを使用しようとしています。twiclockfrequencyを構成したいので、そのためにECONACAVIUMネットワークアクセスプロセッサを構成する必要があります。Cのコードで2クロック周波数のレジスタを構成できません。i2ctemp.cimという名前のプログラムを使用して支援しています。
これはTWIのアドレスです。reg=map_phys(0x71000020、&fd); クロックのアドレスは0x24です。次に、TWI_CLKDIVのビット16:8。
私はこのようなことをしました:
void setbitrate(long bitrate){
unsigned bitratediv;
//Calcule of twi clock divider value
//Formule is TwiCLockFreq = PCLK /(2*(TwiClockDivider +1))
bitratediv = (unsigned)(PCLK/(2*bitrate)); //PCLK= 1M and bitrate= 50k
///If bitrate value is less than 16 then do:
if(bitratediv <= 16)
bitratediv = bitrate -1 ;
//FINALLY assigned the value to the register of the TWICLOCK
reg[0x24/sizeof(unsigned)] = bitratediv;
* これは機能しないため、このレジスタ「0x24」を取得する方法を知りたいだけです-------------------> reg [0x24 / sizeof(unsigned)] = bitratediv ;** }
ご協力ありがとうございました
これがECONACAVIUMとプログラムi2ctemp.c(ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7558-linux/samples/i2ctemp.c)のマニュアルです!(http://www.embeddedarm.com/documentation/third-party/ECONA-CNS21XX-HRM-v.1.8.pdf)!