کتابخانه I2CSLAVE

199,000 تومان

به کمک کتابخانه I2CSLAVE قادر خواهید بود که میکروکنترلر avr خود را در حالت slave  برای پروتکل I2C  به کارببندید هم چنین براحتی با قطعات الکترونیکیدیگر مانندlcd های PCF8574 از طریق پروتکل i2c  در ارتباط باشید.پکیج I2CSLAVE برای میکرو کنترلرهای مختلف به صورت کتابخانه های مختلف ارائه شده است.

توضیحات

به کمک کتابخانه I2CSLAVE قادر خواهید بود که میکروکنترلر avr خود را در حالت slave  برای پروتکل I2C  به کارببندید هم چنین براحتی با قطعات الکترونیکیدیگر مانندlcd های PCF8574 از طریق پروتکل i2c  در ارتباط باشید.پکیج I2CSLAVE برای میکرو کنترلرهای مختلف به صورت کتابخانه های مختلف ارائه شده است.

همچنین در این کتابخانه از حالت نرم افزاری نیز استفاده شده تا با استفاده از Timer  و INT  بتوانید حتی در میکرو های قدیمی که از TWI یا USI پشتیبانی نمیکند مانند سری های   ۲۳۱۳,۲۳۲۳, ۲۳۳۳,۲۳۴۳,۴۴۳۳ و tiny22 استفاده نمود هم چنین در این پکیج کتابخانه ای جهت ارتباط با میکرو کنترلرهایی که در آن بخش سخت افزاری TWI  تعبیه شده وجود دارد که میتوان برای میکرو های M8,M32, M64,M128, M644 استفاده کرد.

از دیگر کتابخانه های موجود در این پکیج میتوان در میکرو های TINY  که با USI  ارائه شده است اشاره نمود مانند میکرو های tiny2313,  tiny4313,  tiny24,  tiny44,  tiny 84, tiny25,  tiny45 , tiny85,  tiny26,  tiny261,  tiny461, m169, m165 , m325,  m3250,  m645,  m6450,  m329,  m649, tiny87,  tiny167 و tiny43U هم چنین که برای سری محبوب XMEGA  نیز کتابخانه های در این پکیج وجود دارد.در مورد نحوه استفاده از این کتابخانه در برنامه مورد نظر مانند دیگر کتابخانه های رایج میباشد اما برای راحتی بیشتر کاربران نیز نمونه کد هایی ارائه شده است.

در اخر به این نکته باید اشاره کرد که رنج وسیعی از میکروکنترلر ها را پشتیبانی میکند اما همه میکرو کنترلرها را شامل نمیشود و نمیتون در تمام میکرو کنترلر ها به عنوان I2C SLAVE  استفاده کرد .در اخر نمونه کد برای میکرو atTiny2313 با USI برای شما قرار داده شده است .

‘——————————————————————————-
‘                            (c) ۲۰۰۴-۲۰۱۴ MCS Electronics
‘          This demo demonstrates the USI I2C slave
‘          This is part of the I2C Slave library which is a commercial addon library
‘          Not all AVR chips have an USI !!!!
‘——————————————————————————-

$regfile = “attiny2313.dat”

$crystal = ۸۰۰۰۰۰۰
$hwstack = ۴۰
$swstack = ۱۶
$framesize = ۲۴

const cPrint = ۰                                            ‘make ۰ for chips that have NO UART, make ۱ when the micro has a UART and you want to show data on the terminal

#if cPrint
 $baud = ۱۹۲۰۰                                            ‘only when the processor has a UART
#endif

config usi = twislave , address = &H40                      ‘bascom uses ۸ bit i2c address (۷ bit shifted to the left with one bit)

#if cPrint
 print “USI DEMO”
#endif

‘do not forget to enable global interrupts since USI is used in interrupt mode
enable interrupts ‘it is important you enable interrupts

do
 ! nop ; nothing to do here
loop

‘The following labels are called from the library. You need to insert code in these subroutines
‘Notice that the PRINT commands are remarked.
‘You can unmark them and see what happens, but it will increase code size
‘The idea is that you write your code in the called labels. And this code must execute in as little time
‘as possible. So when you slave must read the A/D converter, you can best do it in the main program
‘then the data is available when the master requires it, and you do not need to do the conversion which cost time.

‘A master can send or receive bytes.
‘A master protocol can also send some bytes, then receive some bytes
‘The master and slave address must match.

‘the following labels are called from the library  when master send stop or start
Twi_stop_rstart_received:
 ‘  Print “Master sent stop or repeated start”
Return

‘master sent our slave address and will not send data
Twi_addressed_goread:
 ‘ Print “We were addressed and master will send data”
Return

Twi_addressed_gowrite:
 ‘  Print “We were addressed and master will read data”
Return

‘this label is called when the master sends data and the slave has received the byte
‘the variable TWI holds the received value
Twi_gotdata:
 ‘   Print “received : ” ; Twi ; ” byte no : ” ; Twi_btw
 Select Case Twi_btw
 Case ۱ : ‘Portd = Twi                                   ‘ first byte
 Case ۲: ‘you can set another port here for example
 End Select
Return

‘this label is called when the master receives data and needs a byte
‘the variable twi_btr is a byte variable that holds the index of the needed byte
‘so when sending multiple bytes from an array, twi_btr can be used for the index
Twi_master_needs_byte:
 ‘  Print “Master needs byte : ” ; Twi_btr
 Select Case Twi_btr
 Case ۱ : twi = ۶۸                                       ‘ first byte
 Case ۲ : twi = ۶۹                                       ‘ send second byte
 End Select ‘you could also return the state of a port pin or A/D converter
Return

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “کتابخانه I2CSLAVE”

This site uses Akismet to reduce spam. Learn how your comment data is processed.