AVR SPI-Port master/slave Mode

SPI-Port master Mode
–  DS1302  RTC
–  MCP3208 12bit A/D

SPI-Port slave Mode
– I/O expantion driver by Mega8

Advertisements

AVR – I2C Bus , master/slave Mode

I2C  master Mode

–  DS1307     http://202.28.49.186/download/AVR/Mega16_DS1307.rar
–  EEPROM 24L256

I2C slave Mode
–  I2C – I/O expantion driver by Mega8
–  I2C – 4*16 LCD driver  by Mega8

Metrix 4×4 KeyPAD — ATMega16/32

การใช้งาน Metrix 4×4 KeyPAD กับ AVR – ATMega16/32

http://202.28.49.186/download/AVR/Mega16_LCD_keypad.rar

–  รูปภาพ.. ยัง
– schematic ..ยัง
–  รายล่ะเอียด API.. ยัง
– การประยุกต์ ..ยัง

– Flexible Metrix 4×4 KeyPAD สามารถย้ายขาใช้งาน ไปได้อิสระทั้ง pin และ port
– แก้ Denounce โดยใช้ Timer0 เป็น timer base รัน background service
– แสดงผลผ่าน LCD
– ค่าที่  scan ได้ ตั้งแต่ 0x01 – 0x10 [1-16] สถานะปล่อยจะให้ค่า 0x00 [0]
– มี function ตรวจสอบการ กด / ปล่อย Key

– Feature ต่อไป.. เก็บค่ากดลง bufferring , Global Status สำหรับเขียนแบบ STATEmachine

..เดี่ยวมาเขียน  ต่อ

แนะนำ website AVR Libary “USART + LCD”

ที่จริงแล้ว จะว่าไป  Microcontroler  มันก็เหมือน เครื่อง computer ดีๆ นี่แหละ ..เสียแต่ว่า มันไม่มี จอภาพแสดงผล  กับ keyboard เท่านั้นเอง  ซึ่งถ้าเทียบกับเครื่อง PC ที่ไม่มี จอภาพแสดงผล กับ keyboard  เวลาจะใช้งานมัน คงลำบากน่าดู จะไปป้อนแถบกระดาษคำสั่งเหมือนกับ เครื่อง computer สมัยก่อน..ก็คงจะไม่ใช่อีก.. อิอิ

ถ้ามองกลับไปถึง Microcontroler ครั้นจะเอา Microcontroler ไปต่อ จอภาพแสดงผล กับ keyboard  ก็คงจะไม่เรียกว่า Microcontroler แล้วแหละ.. แต่เวลาพัฒนา Microcontroller นั้นกลับทำเหมือน การพัฒนาโปรแกรมบน PC นี่เป็น  “ปัญหาสำคัญ”  ของการพัฒนางานทางด้านนี้ แล้วเราจะใช้งานมันได้ยังไง ล่ะ?

ไม่ว่าผมจะใช้  MCU ยี่ห้อไหน ตระกูลไหน สิ่งที่ผมเขียนเป็น program “ที่สอง” รองจาก โปรแกรมไฟกระพริบ ก็คือ  LCD driver และ UART driver ซึ่งการเชื่อมต่อ LCD ก็เหมือนการพ่วงจอแสดงผล เข้ากับ MCU และ การ เชื่อต่อ  UART ผ่าน RS232 เข้าสู่  Serial-Terminal  ของ PC ก็เหมือนกับ เชื่อม keyboard เข้ากับ MCU นั่นแหละ เพื่อความสะดวกในการพัฒนา อีกทั้งการเชื่อม RS232 ยังสามารถป้อนคำสั่งเป็นชุดได้ โดยสะดวกโดยไม่มีข้อจำกัดเรื่อง จำนวน Key เหมือน Keypad และสามารถแสดงผล สำหรับข้อมูลปริมาณมากๆได้เป็นอย่างดี อีกด้วยสำหรับ AVR แล้ว ที่ผมใช้เป็นหลัก เอามาจากที่นี่ครับ   http://jump.to/fleury

โดยเฉพาะ UART driver ซึ่งเขียนไว้ได้ดีมากๆ.. เป็น UART buffer-ring หรือที่ผม ชอบพูดติดปากเสมอว่า UART-FIFO นี่แหละเป็นตัวช่วยที่ดีทีเดียว สำหรับงานทางด้านการเชื่อมต่อกับ PC หรือ MCU Interface กับ PC ซึ่งโดยส่วนมากแล้ว งานที่ผมเองทำบ่อยๆ จะเป็นงานทางด้านเครื่องมือวัด หรือ data logger  มากกว่างานควบคุม  ดังนั้นสิ่งที่สำคัญของงานทางด้านนี้ คือ protocol และ ความแม่นยำของการแลกเปลี่ยนข้อมูลกัน ระหว่าง MCU และ PC  ซึ่งผมก็ได้ libary ตัวนี้ เป็นตัวหลักสำหรับการพัฒนางานของ AVR มาโดยตลอด ไม่ว่าจะเปลี่ยนไปใช้ MCU ตระกูลไหน เบอร์ไหนก็ต้องทำ libary  UART-FIFO ก่อนเสอม โดยตัว libary ของ Peter Fleury นี้ก็ผ่านการใช้งาน การทดสอบมาได้ ร่วมๆ ปีกว่าๆ ผมก็ได้แก้ไข ปรับลดขนาดให้กระชับขึ้น ทำการ debug test  ทดสอบกันมาพอสมควร ซึ่งโดยรวมแล้วก็ ใช้การได้ดี ยังไม่เจอ bug ตัวที่ผม revise จากตัวต้นฉบับ  link ข้างล่างครับ

http://202.28.49.186/download/AVR/Mega16_USART_PGMspace.rar

การทำงานของ โปรแกรม ที่เขียนไว้ จะเป็นการแสดงผลผ่าน RS232 และ loopback ทำการ check ข้อมูลที่ส่งเข้า AVR เดี่ยวจะมาเล่าต่อ เกี่ยวกับการใช้งาน การประยุกต์ใช้งาน จะทำยัง เรื่องมันยาว…. หนังเรื่องนี้หลายภาค จบ หุๆๆ

AVR Project

AVR Project

  1. Mega16  +  MCP3208
  2. Mega32 +  CS5525/26 ( 20/22bit A/D )
  3. Mega32  +  GLCD (Nokia6100)
  4. Mega32  + UART FIFO ( RS232- Interface with PC -VB6.0 )
  5. Mega32 +  MAX7219 (8digit – 7Segment driver)
  6. Mega32 +  MAX3100 (SPI-UART driver )
  7. Mega32 +  GLCD (24*128)
  8. Mega168  +  nRF24L01
  9. Mega16  +  Zigbee
  10. Mega16  +  DS1820 (1-wire , multi drop)
  11. Mega16  – PrecisionTimer  (1/100  sec)
  12. Mega16  +  Max667  +  LCD (Thermo meter)