เปลี่ยนจาก PIC เป็น AVR [ปิด]


14

ฉันทำงานกับ PIC16 และ PIC18s มานานกว่าสามปีแล้วและอยากรู้จัก AVR เช่นกัน ฉันไม่มีโครงการที่เฉพาะเจาะจง แต่อยากจะลองกับสถาปัตยกรรมที่แตกต่างกัน ฉันต้องการรับรายงานความเข้ากันได้กับ PIC และ AVR

ซอฟต์แวร์ของ uC
ฉันคุ้นเคยกับ Assembly และ C สำหรับ PIC16 และ PIC18 ชุดประกอบและตัวควบคุม C สำหรับไมโครคอนโทรลเลอร์ AVR แตกต่างจากชุดรูปแบบอย่างไร มีความแตกต่างกันมากไหม?

ซอฟต์แวร์ของพีซี
ฉันต้องใช้ซอฟต์แวร์อะไรในการรวบรวมและประกอบโปรแกรมสำหรับชิป AVR? ฟรีและฉันจะดาวน์โหลดได้ที่ไหน

ฮาร์ดแวร์การเขียนโปรแกรม
ฉันใช้Wisp648ของ VOTI ในการเขียนโปรแกรม PICs แต่บอร์ดนั้นไม่สามารถเขียนโปรแกรม AVR ได้ ฉันต้องซื้อโปรแกรมเมอร์หรือมีวงจรใด ๆ บนเว็บที่ฉันสามารถสร้างตัวเองได้หรือไม่?

ฮาร์ดแวร์ของ uC
สำหรับ PICs ฉันใช้PIC18F4620 บ่อยครั้งมาก ฉันกำลังมองหา AVR ที่มีคุณสมบัติคล้ายกัน คุณสมบัติที่ฉันชอบคือ:

  • Oscillator ภายใน
  • จับเวลา
  • รุ่น 5V และ 3.3V
  • ADC
  • MSSP พร้อม I2C และ SPI รองรับ
  • (E) USART
  • PWM
  • หมุด I / O มาก
  • > = หน่วยความจำโปรแกรม 32kB> = = RAM 2kB
  • แพคเกจกรมทรัพย์สินทางปัญญา

ชิป AVR ตัวไหนที่มีคุณสมบัติเหมือนกัน? แพ็คเกจเป็นตัวจัดการดีลฉันต้องการ DIP, PDIP หรือ SPDIP AVR ที่มีคุณสมบัติเทียบเคียงจะเป็นอย่างไร?


ฉันได้รับแจ้งว่าชุดข้อมูลSPI และ I2Cนั้น Microchip มีชุดตัวเองในโปรโตคอล SPI และ I2C ฉันมักจะใช้อุปกรณ์ทาส SPI และ I2C จากไมโครชิปร่วมกับ PIC ฉันจะสามารถใช้ชิปเหล่านี้ (23K256, RTC, ENC28J60, ... ) ร่วมกับ AVR ได้หรือไม่? นอกจากนั้นจะสามารถเชื่อมโยง AVR และชิป PIC โดยใช้ I2C หรือ SPI ได้หรือไม่?


@ LeonHeller ขอโทษที่ฉันไม่ชัดเจนฉันไม่ได้มีโครงการที่เฉพาะเจาะจงในใจ แต่ต้องการที่จะเล่นรอบ ๆ เพื่อทำความรู้จักกับสถาปัตยกรรมที่แตกต่างกัน

5
นี่เป็นคำถามที่กว้างเกินไปและไม่เหมาะกับรูปแบบ Q + A ของเรา แต่โดยทั่วไปคุณอ่านแผ่นข้อมูลของโปรเซสเซอร์ที่คุณกำลังพิจารณาใช้อยู่ ฉันไม่รู้ว่ามันเป็นอย่างไรในด้านมืด แต่ Atmel อาจมีคู่มือตัวเลือกอย่างที่ Microchip ทำ บริษัท เหล่านี้มี micros มากเกินไปสำหรับทุกคนที่ต้องคำนึงถึง ฉันทำโครงการ PIC ได้ดีกว่า 100 โครงการในระยะเวลา 15 ปีอย่างมืออาชีพ แต่ยังคงปรึกษาคู่มือตัวเลือกเมื่อเลือกใหม่
Olin Lathrop

1
คำสั่งชนิดใดที่ตั้งค่าการใช้งาน AVR และเครื่องมือในการพัฒนาและอื่น ๆ ค้นคว้าได้อย่างง่ายดาย สิ่งเหล่านี้ได้รับการสนับสนุนเป็นอย่างดีเช่น PIC ฉันขอแนะนำวิดีโอความบันเทิงนี้: youtube.com/watch?v=DBftApUQ8QI
Kaz

ลองดูที่electronics.stackexchange.com/a/66163/8627และเปลี่ยน Linux สำหรับ Windows Toolchain นั้นส่วนใหญ่เหมือนกัน ไม่เหมือนกัน แต่เต็มไปด้วยสิ่งต่าง ๆ สำหรับ Google
jippie

@ jippie ดี! บันทึกไว้ในบุ๊คมาร์คของฉันเมื่อตัวอย่างมาถึงแล้ว :)

คำตอบ:


8

ซอฟต์แวร์ของ uC

ชุดคำสั่ง PIC และ AVR นั้นคล้ายกัน แต่ฉันจะไม่เริ่มเขียนโปรแกรม AVR ในชุดประกอบ โปรแกรมใน C กับ Atmel Studio มันมาพร้อมกับ AVR รุ่น gcc และมีเครื่องถอดแยกชิ้นส่วนที่ดีมากซึ่งจะแสดงบรรทัด C ที่คุณเขียนและภายใต้คำแนะนำในการประกอบมีประโยชน์มาก ฉันจะดาวน์โหลดWinAVRด้วย

ซอฟต์แวร์ของพีซี

ใช้Atmel สตูดิโอ อย่ากังวลกับ Eclipse, Notepad ของโปรแกรมเมอร์หรืออะไรก็ตามที่คนอื่นใช้ IDEs แบบสุ่ม Atmel Studio ใช้ Visual Studio มีปลั๊กอินทุกชนิดที่มีอยู่ใน Atmel และมีโปรแกรมจำลองที่ดีในตัว

การเขียนโปรแกรมฮาร์ดแวร์

มีจำนวนมากของการเขียนโปรแกรม AVR ราคาถูกเช่นโจรสลัดรถประจำทางมี แต่ได้รับการAtmel ICSP มันคุ้มค่ากับค่าใช้จ่ายทั้งหมดหากคุณตั้งใจจะทำโครงการ AVR มากกว่าหนึ่งโครงการ มันใช้ USB และสามารถควบคุมได้จากภายใน Atmel Studio

ฮาร์ดแวร์ของ uC

มีเครื่องมือตัวเลือกแต่โดยทั่วไปแล้วฮาร์ดแวร์ระดับต่ำของ AtMega ทั่วไปคือ:

Internal Oscillator (8 MHz)
3 Timers
2.7-5.5V Supply range
8-channel multiplexed ADC
I2C and SPI support
USART
2 PWMs that work in conjunction with the 8 bit timers

การไปที่ชิปประสิทธิภาพสูงจะซื้อตัวจับเวลาและ PWM ให้คุณมากขึ้น จำนวนหน่วยความจำแฟลชและ SRAM ที่คุณมีอยู่นั้นขึ้นอยู่กับชิปนั้น ๆ ชิ้นส่วน AtMega ส่วนใหญ่มีอยู่ใน PDIP โดยมีจำนวนพินสูงมากเป็น QFP

ชุดข้อมูล SPI และ I2C

เป็นไปได้ที่จะใช้ MCP I2C (TWI สำหรับ AVR) และอุปกรณ์ SPI กับ AVR uCs คุณต้องอ่านส่วน SPI และ TWI ของแผ่นข้อมูล AVR อย่างระมัดระวังอย่าข้ามสาย มีการควบคุมการลงทะเบียนหลายครั้งสำหรับการเรียงลำดับข้อมูลขั้วสัญญาณนาฬิกา ฯลฯ สำหรับแต่ละอินเตอร์เฟส มันเป็นโครงร่างทั้งหมดในเอกสารข้อมูลและสามารถอ่านได้มาก มันคงไม่ยากที่จะเชื่อมโยง AVR และ PIC คุณเพียงแค่ต้องเล่นกับโหมด SPI หรือ TWI จนกว่าคุณจะสร้างการสื่อสาร


3
ATtiny เป็นน้องชายคนเล็กของ ATmega พวกมันคล้ายกันมากเมื่อพูดถึงการเขียนโปรแกรม ฉันได้ซอฟต์แวร์ 'เปลี่ยน' จาก mega เป็นจิ๋วเพียงแค่เปลี่ยนประเภทของชิ้นส่วนใน Makefile
jippie

@CamilStaps jippie ทำให้เป็นจุดที่ดี ฉันไม่รู้ว่านี่เป็นความคล้ายคลึงกับ PIC หรือไม่ แต่ตัวประมวลผล AVR สำหรับชื่อลงทะเบียนและคำสั่งบิตส่วนใหญ่ใช้ร่วมกัน มีข้อยกเว้นบางอย่างเช่นโปรเซสเซอร์ที่มีความสามารถมากกว่าอาจแบ่งการลงทะเบียนการควบคุมออกเป็นสองส่วน เอกสารข้อมูลทั้งหมดมีส่วนคำอธิบายการลงทะเบียนในแต่ละบทที่ทำให้การเปรียบเทียบง่ายขึ้น
Matt Young

PIC ทำเช่นกันอย่างน้อยก็ในตระกูลเดียว (PIC16, PIC18, .. ) ขอบคุณสำหรับเคล็ดลับ (@jippie)!

นี่คือคำอธิบายที่ดี ชิป AVR ที่ฉันโปรดปรานคือ ATmega328p และ ATtiny24 เส้นทั่วไปอื่น ๆ คือ tinyx5 และ tiny2313 สิ่งเหล่านี้ทั้งหมดมีอยู่ในกรมทรัพย์สินทางปัญญาและทั้งหมดมีอินเทอร์เฟซการเขียนโปรแกรมตาม SPI ที่แน่นอน: ISP สำหรับการเริ่มต้นที่รวดเร็วและราคาถูกลองใช้โปรแกรมเมอร์ USB จาก Sparkfun: sparkfun.com/products/9825 สิ่งที่ควรค่าแก่การกล่าวถึงคือชุดโปรแกรมยอดนิยมสำหรับ Windows ที่รู้จักกันในชื่อ WinAVR: winavr.sourceforge.netคุณไม่ต้องการการพัฒนาใด ๆ คณะกรรมการเพียงแหล่งจ่ายไฟบายพาสหมวกและอาจจะเป็นคริสตัล
Kurt E. Clothier

12

ฉันทำงานได้ดีเท่ากันกับ PIC และ AVR (และอื่น ๆ ด้วย)

ฉันชอบ AVRs มากเพราะAVR-libc มันเป็นห้องสมุดที่ฝังตัวดีที่เปิดแหล่งที่มาและเอกสารได้ดีพอสมควร ( ซึ่งแตกต่างจาก plib Microchip แต่ plib จะมีมาเต็มรูปแบบซึ่งผมขอขอบคุณอย่างแท้จริง) AVR ใช้ gcc และ gdb เก่าปกติซึ่งหมายความว่าไม่มี IDEs ที่งี่เง่าเข้ามาขวางทางฉัน เครื่องมือเดียวกันทำงานบน Windows, OSX และ Linux และฉันไม่ต้องการ 600MB + IDE กับ Java และ Netbeans หรือ Eclipse เพื่อเดินทางข้ามหรือทำให้ต้นไม้ต้นกำเนิดของฉันสกปรกด้วยขยะของตัวเอง

การเขียนโปรแกรม AVR นั้นมักจะทำผ่าน ISP หรือ JTAG (มีคำถามล่าสุดเกี่ยวกับเรื่องนี้) และจากมุมมองการเขียนโปรแกรมมันไม่แตกต่างจากไมโครอื่น ๆ มากนัก

จากมุมมองส่วนตัวฉันเติบโตจนไม่ชอบเอกสารข้อมูลทางเทคนิคของ Microchip และการกำหนดหมายเลขชิ้นส่วน ฉันตัดฟันด้วยการออกแบบฝังตัวด้วย Microchip และฉันรักพวกเขาเป็นเวลานานนาน แต่เมื่อฉันมองหาไมโครวันนี้ฉันมักจะเริ่มต้นด้วย Atmel แม้ว่าพวกเขาจะไม่ได้มีข้อบกพร่อง (SAM-BA เป็นขยะสำหรับชิ้นส่วน SAM ของพวกเขาและฉันก็มีปัญหากับการสนับสนุนโรงงานของพวกเขาด้วย)

เท่าที่จะใช้ ... ลองทั้งคู่มันเหมือนความแตกต่างระหว่างโค้กกับเป๊ปซี่ พวกมันคล้ายกันมากและตัวเลือกมักจะลดราคาและเครื่องมือที่คุณต้องการใช้


11
  • C จะเหมือนกันกับความแตกต่างของคอมไพเลอร์เล็กน้อย การประกอบจะแตกต่างกันมากเนื่องจากเป็นสถาปัตยกรรมที่แตกต่างกัน ฉันแนะนำให้ไปกับ C และอาจจะรับการประกอบพอที่จะสามารถอินไลน์กิจวัตรที่สำคัญบางอย่าง

  • สำหรับ IDE และโปรแกรมเมอร์ Atmel มีข้อเสนอที่คล้ายคลึงกับ Microchip เพียงแค่ดูที่เว็บไซต์ของพวกเขาดาวน์โหลด IDE ฟรีและเลือกโปรแกรมเมอร์

  • ชิปที่คล้ายกับ 18F อาจเป็นอะไรที่เหมือน ATMega328 (อันที่ใช้ใน Arduinos) ฉันเชื่อว่าพวกเขามีแพ็คเกจแพ็คเกจ DIP

  • ใช่ I2C และ SPI ควรทำงานเหมือนกัน การเชื่อมโยง AVR และ PIC ไม่น่าจะมีปัญหา

ข้อสงวนสิทธิ์ - ฉันไม่ได้ใช้ AVR เป็นเวลานาน ฉันใช้ PICs และ ARM ส่วนใหญ่ในปัจจุบัน แต่ฉันไม่เคยมีปัญหาในการเชื่อมต่ออะไรกับ SPI / I2C ในอดีตเคยใช้ SPI เพื่อเชื่อมต่อระหว่าง PIC / Atmel EEPROM / Cortex-M3 / FPGA บ่อยครั้ง SPI เป็นโพรโทคอลพื้นฐานมากซึ่งค่อนข้างทันสมัย ​​micro ใด ๆ ควรมีความสามารถในฮาร์ดแวร์
I2C นั้นซับซ้อนกว่าเล็กน้อย ฉันจำเรื่องราวการออกใบอนุญาต / การตั้งชื่อไม่ได้ (เช่น 2-wire, I2C, SMBus) จากส่วนหัวของฉัน แต่อุปกรณ์ต่อพ่วงส่วนใหญ่เข้ากันได้ในระดับพื้นฐานเท่าที่ฉันทราบ อ่านหน้า Wikiสำหรับรายละเอียดเพิ่มเติม


TWI (Two Wire Interface) ของ Atmel เข้ากันได้กับ I2C I2C สามารถได้รับอนุญาตจาก NXP (เดิมเป็นเทคโนโลยีของ Philips) แต่ Atmel สามารถจัดการค่าธรรมเนียมใบอนุญาตได้
jippie
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.