PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تبدیل uart به usb نوع avr cdc



M.ABDOLLAHI
16-04-2009, 17:16
به نام خدا سوال من در مورد مدار مبدل uart بهusb سایت You can see links before reply
مداری که من میگم همان مداری است که با مگا 8 ساخته شده و برای تبدیل uart به usb میخواستم بدونم چطور میشه میکرو رو به کامپیوتر معرفی کرد من برنامه نویسی با .net رو یاد دارم و با پورت سریال هم کار کردم میشه بگید چطور میتونم این کار رو انجام بدم واین که چطور میشه نرخ ارسال رو تعیین کرد و البته دیگر مشخصات اگر امکانش هست این مدار رو یک مقدار بیشتر توضیح بدید چون فکر میکنم جایگزین مناسبی میتونه برای ft232 باشه و بدرد خیلی از دوستان خواهد خورد. باز هم از کمکهای بی دریغ شما متشکرم.خداحافظ.

kavir
16-04-2009, 17:42
سلام
دوست عیز در این رابطه بارها بحث شده بود به هر حال دوباره می گم
بله جایگزینی خوبی هست برای ft232
ارتباط خیلی خیلی راحت هست بعد از ساخت سخت افزار شما به پورت USB که متصل می کنید یک پورت کام مجازی می سازه یعنی شما یک پورت com در اختیار دارید و با هر زبان برنامه نویسی که می تونید به این پورت کام متصل بشید و برای میکرو هم که خیلی ساده هست پایه های mega8 واسط (منظورم rx و tx ) هست به میکرو اصلی وصل کنید و دیتا رو بفرستید

M.ABDOLLAHI
18-04-2009, 11:56
به نام خدا سلام مسئله اینجاست که زمانی که من مشخصات مدار رو خوندم مربوط به مگا8 دارای قابلیت تعیین مشخصات ارسال سریال بود در این قسمت فایل readme
AVR-CDC with USART (ATmega8/48/88/168)
speed: 1200 - 19200bps
datasize: 5-8
parity: none/even/odd
stopbit: 1/2
میخواستم ببینم چطور میشه این مشخصات رو تعیین کرد.

kavir
18-04-2009, 12:17
خوب این مشخصات مر بوط می شه به پورت کام یا همونی که avr cdc می سازه .این تنظیمات مر بوط به برنامه هست و لازمه نوشتن اون یعنی شما مقدمه برای کار با پورت com دارید که با توجه به به اینکه برنامه کامپیوتری چی هست توی گوگل جستجو کنید .

M.ABDOLLAHI
20-04-2009, 15:48
به نام خدا سلام دوستان من اون مدار رو ساختم ولی زمانی که اون رو به کامپیوتر متصل میکنم میگه احتیاج به درایور داره من اون رو به پوشه usbdrv راهنمائی کردم ولی اون رو به عنوان درایور نمیشناسه در ضمن من اون مدل که با tiny2313 است رو ساختم من منتظر راهنمائی های شما دوستان عزیز هستم.

kavir
20-04-2009, 18:19
فولدر usddrve فکر کنم سورس برنامه باشه
دقیقا یادم نیست ولی فکر می کنم برای avr cdc فقط یک فایل sys داره
لینکی که ازش دانلود کردید اینجا بذارید تا راهنمایی کنم

M.ABDOLLAHI
21-04-2009, 12:22
به نام خدا سلام من از این لینک دانلود کردم
You can see links before reply

technologist
22-04-2009, 13:52
سلام چندتا سوال:
1)atmega8 و usb به يك مقدار vcc وصل مي شن؟
2)منظور از مقاومت 1k5 همون 1.5k هست؟
3)مقادير مقاومت هايي كه به D+,D- وصل مي شه چه قدره ؟ (مقادير R2,R3,R6,r8 چرا در شماتيك مشخص نشده؟)
4)‌baud rate و فرمت بندي فريم ها چه طوريه؟ چند بيت؟ پريتي داريم يا نه؟

M.ABDOLLAHI
22-04-2009, 16:40
به نام خدا سلام من دقیقا همان مداری که آدرسش رو در پست قبلیم دادم رو ساختم با tiny2313

M.ABDOLLAHI
23-04-2009, 16:17
به نام خدا سلام دوستان من همچنان منتظر کمک شما دوستان عزیز هستم.

kavir
26-04-2009, 15:35
1.بله
2.بازم بله
3.d+ وd- یک مقاومت 68 اهم یا کمتر یا بیشتر زیاد مهم نیست
4.بسته به برنامه کامیپوتر داره موقعی که یک پورت کام مجازی ساخت از طریق همان راست کلیک روی mycomputer->properties,... که بقیش بلد هستین پورت کامی که ساخته رو ببینید رو چی تنظیم هست می تونید مطابق همون باشه یا دستی تغییر بدین و توی برنامه کامپیوتر هم تغییر بدین
پیشنهاد من اینه اول یک برنامه برای پورت کام پیدا کنید اگه باvb کار می کنید که مثالش توی گوگل بگیردید زیاده
موفق باشید

technologist
26-04-2009, 16:18
ممنون از راهنمايي هاتون
من مدار را با ATMega8 بستم و ويندوز هم درايورش را مي شناسه
حالا مي خوام با يه ميكروي ديگه (والبته با واسطه همينATMega8) اطلاعات را روي پورت usb كامپيوتر بخونم و بنويسم
سوالم اينه كه سرعت و قالب فريم ها چه جوري تنظيم بشه؟(‌BaudRate چه قدر باشه؟ ديتا ها چند بيتي ارسال مي شن؟بيت هاي استارت و استپ و پريتي داريم يا نه؟)

توسايت زياد گشتم پست ديگه اي پيدا نكردم اگر تاپيك ديگه اي راجع به اين موضوع بحث كرده لطفا لينك بدين

با تشكر

kavir
26-04-2009, 18:00
سلام
خوب من چندین دفعه این حرف رو تکرار کردم بازم می گم
شما دقیقا دارید با پورت سریال کار می کنید اصلا فرض کنید یک سخت افزار به USB وصل کردید و تمام و کلیه کارای نرم افزاری دقیقا مشابه پورت کام هست
با توجه به نرم افزار کامپیوتری که کار می کنید توی گوگل نمونه مثال برای کار با پورت کام پیدا کنید
اینکه دیگه کاری نداری!! ii998)

technologist
27-04-2009, 09:14
مي دونم كاري نداره ولي حتي براي كارهاي ساده هم گاهي به در قابلمه مي خوري :k08:
من قبلا پورن سريال را درايو كردم الان مدار را مي بندم و ويندوز هم مي شناسش و يك پورت com بهش اختصاص مي ده
تا اينجاش مشكلي نيست
من از يك ATmega32 استفاده مي كنم و با تنظيمات زير usart را پيكر بندي مي كنم:
Baude rate=9600
Frame bits=8
number of start bit=1
number of stop bit=1
no parity
در كامپيوتر هم ترمينال CodeVision را با همين تنظيمات پيكربندي مي كنم ولي ترمينال چيزي نشون نمي ده البته ميكرو وارد روتين اينتراپت مربوط به transmit مي شه(پس يعني ارسال را انجام مي ده كه وارد اينتراپت مي شه)
اين هم سورس برنامه كه در پست بعدي گذاشتمش:

technologist
27-04-2009, 09:16
[marq=left]
/************************************************** ***
This program was produced by the
CodeWizardAVR V1.24.1c Standard
Automatic Program Generator
© Copyright 1998-2004 Pavel Haiduc, HP InfoTech s.r.l.
You can see links before reply
e-mail:office@hpinfotech.ro

Project :
Version :
Date : 4/26/2009
Author : Mahdi
Company :
Comments:


Chip type : ATmega32
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 512
************************************************** ***/

#include <mega32>
#include <delay>

// Declare your global variables here

interrupt [USART_TXC] void usart_tx_isr(void);

void main(void)
{
// Declare your local variables here
char str[40]="Amir";
unsigned int i=0;

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x01;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
// Analog Comparator Output: Off
ACSR=0x80;
SFIOR=0x00;

UCSRA=0x00;
UCSRB=0x48;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
UDR='A';

#asm ("sei");
while (1)
{
// Place your code here

};
}

interrupt [USART_TXC] void usart_tx_isr(void)
{
unsigned char ch;
PORTC=0x01;
//UDR=str[i];
//i++;
ch=UDR;
}

technologist
27-04-2009, 18:26
اي بابا رفقا اين چه سايتيه؟
چرا هيچ كس راهنمايي نمي كنه؟
انساني را از گمراهي نجات بدين... :lol: