PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کم بودن غیرعادی ولتاژ در پورت های خروجی مگا16



dostajn
29-01-2013, 09:49
باسلام
صبح همگی بخیر در ضمن عید همگی هم مبارک:125:
چند روزه با یه مشکل مواجه شدم که کامل گیجم کرده و هنوز راه حل منطقی برای اون پیدا نکردم:
من ا زusbasp برای پروگرام کردن میکرو مگا16 استفاه میکنم و میکرو هم با یه مدار ساده روی بردبرد بسته شده و از تغذیه خود پروگرامر برای مدار استفاده میکنم که کنترل کردم و حدود 5 ولت خروجی داره. اما هروقت میکرو را برنامه ریزی میکنم خروجی پایه ها در حالت output در حد یکی دولت بیشتر نیست. حتی توانایی روشن کردن یه ال ای دی هم نداره:018:(با یه مدار ساده چشمک زن کنترل کردم)
میکرو رو عوض کردم تقریبا همین جور مشکلی داره رو بعضی پایه ها خروجی ضعیف و روی برخی قوی تره!
ولی با مگا 8 که چک کردم ال ای دی پرنور کار میکنه
خودم موندم پرواگرامر مشکل داره، میکرو هام مشکل دارن(یکی از میکروها نو هست)و...
اگه کسی نظری داره ممنون میشم...

Ma3ood
29-01-2013, 11:48
بهتر برنامه تون را این جا قرار بدهید و منبع تغذیه بهتری برای این کار انتخاب کنید !

KHM
29-01-2013, 12:41
مهندس من فک کنم تغذیه قسمت آنالوگ رو وصل نکردی..منظورم avcc , agnd هست...حتمآ اونارو وصل کن...یا از پورت c داری استفاده میکنی...

esisafa
29-01-2013, 14:02
اشاره جالبی به پورت سی شد. وسط پورت برای jtag هست که ممکنه فیوزبیت هاشو فعال کرده باشین در این صورت به عنوان خروجی عمل نمیکنه. چون از usbasp استفاده کردین به صورت پیش فرض فیوزبیت ها رو برای jtag تنظیم میکنه

dostajn
29-01-2013, 17:50
سلام
دست همگی درد نکنه
برنامه خاصی نیست. اینم یه نمونه که روی همه پورت ها یکی یکی چک کردم:


#include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
#ifndef F_CPU
#define F_CPU 1000000
#endif
 
#define master_off PORTD&=~(1<<PD2)
#define master_on PORTD|=(1<<PD2)
int main (void)
{
void init(void);
while(1){
//master_on;
PORTA = 0xff;
//PORTB = 0xff;
//PORTC = 0xff;
//PORTD = 0xff;
_delay_ms(500);
//master_off;
//PORTD = 0x00;
PORTA = 0x00;
//PORTB = 0x00;
//PORTC = 0x00;
_delay_ms(500);
}
return 0;
}
void init (void)
{
// Enable Interrupts
sei();
DDRA = 0xff;
PORTA = 0xff;
DDRB = 0xff;
PORTB = 0x00;
DDRC = 0xff;
PORTC = 0x00;
DDRD = 0xff;
PORTD = 0xff;
}

در مورد پورت سی هم برای اطمینان خودم فیوز رو d9 گذاشتم یعنی بیت 7 که مربوط به jtag بود رو غیر فعال کردم ولی مشکل هنوز باقی موند.
خروجی usbasp 5 ولت که می دم به avr اما خروجی avr کمتر ا ز2 ولته!
فقط می مونه
..منظورم avcc , agnd هست که الان دسترسی ندارم در اولین فرصت چک می کنم خدمتتون نتیجه رو عرض می کنم ولی فکر نکنم به این خاطر باشه چون مگا 8 داره جواب میده!
راستی یه سوال کسی از دوستان usbasp الان داره می تونه ببینه بعد از پروگرام کردن آیا پورتی که برای ریست انتخاب شده هنوز خروجی داره یا نه؟ منظورم پورت 16 توی این عکسه، برای من یه جورایی مشکوک شده:
You can see links before reply

dostajn
03-02-2013, 08:30
سلام به همگی
مشکل من از عدم تعربف تابع init قبل از استفاده بود. در واقع پورت ها هنوز پیکر بندی نشده بودند:018: