| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| ATmega Usart http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=727 |
Страница 1 от 1 |
| Автор: | Nikola Kirov [ Пон Юни 06, 2005 12:26 am ] |
| Заглавие: | ATmega Usart |
Експериментирах си с Usarta една ATmega16 и всичко си беше добре докато не пробвах да вдигна връзката на по висока скорост. До 57600 няма никакви забележки но като вдигна скороста на 115200 се омазва всичко.Даже и единичен байт да пратя го приема грешно. Смених кварца,но не е там проблема. Тествам с ComPortToolKit и връзката ми е с адаптер с MAX232. Въпроса ми дали има някаква особенност с работата със USART-a на по висока скорост или да търся проблем в хардуера. Всъщност дължината на RS232 кабела ми е 3,5 метра но не ми се вижда чак толкова много с същия кабел си връзвам JTAG-A на 115200 и си работи. |
|
| Автор: | Цецо [ Пон Юни 06, 2005 9:09 am ] |
| Заглавие: | |
Абе по принцип COM-a на компютера не е много придирчив. Но не знам как е изпълнено дкодирането в Мегата. При новите пикове например можеш да превключваш честотата на "семплиране" - грубо казно на порта на три степени. И толерантноста към грешки намалява/увеличава се. Що не вържеш скопа и не видиш в двата края къде е проблема. Като сравниш данните навсякъде по веригата ще видиш от къде идва грешката. Според мен е от дългия кабел. Обикновенно като имам бърза дълга връзка - слага по 10мкф на Макса, нищо че в новите даташеетове пише 0,1мкф. |
|
| Автор: | Реконструктор [ Пон Юни 06, 2005 9:13 am ] |
| Заглавие: | |
Аз ползвам 5+ м кабел и си бачка перфектно на 115200, точно с мега16. Провери си настройките на софтуера от страна на ПЦ-то. Почти сигурен съм, че е там. Кондензаторите на макс-а 1 uF ли са? Щото съм виждал някои да слагат 0.1, и от там се преебват нещата. |
|
| Автор: | Nikola Kirov [ Пон Юни 06, 2005 11:55 am ] |
| Заглавие: | |
Ами то в биоса има само типа на порта,там си е standart. Опциите дето са в port seting ги инициализира ComPortToolKit. Да не би да има нещо друго дето се настроива? Макса ми е с 10мф. Имах една връзка между адаптера и процесора около 10см намалих я на 2 но ефект никакъв. На осцилоскопа изглежда нормално от страна на Мегата Ефекта е като да се разминават честотите на COM-а и Мегата. Като ми остане време ще сложа друга Мега с едим дисплей да прослушвам с нея какво става. |
|
| Автор: | bateAz [ Пон Юни 06, 2005 12:44 pm ] |
| Заглавие: | |
Пускай единични байтове с голяма пауза между тях. Провери кои битове приема вярно - ако са само старшите, имаш малка разлика в скоростите ( 10 -20 % ). Ако няма нищо общо - най-вероятно имат голями разлики ( в пъти ). Пускай 0x00, 0x55 и 0x77 за да провериш дали нямаш заглаждане на фронтовете някъде по трасето. |
|
| Автор: | Цецо [ Пон Юни 06, 2005 1:25 pm ] |
| Заглавие: | |
Мойта мислъл беше да изкубеш кабела от компютера и да се закачиш едновремнно на ТХ на мегата и на края на кабела, да видиш какво е разминаването във фронтовете. И дали въобще има някако съвпадение - защото нито един байт да не приемеш (макар и сбъркан)??? |
|
| Автор: | ДедоБоре [ Пон Юни 06, 2005 2:39 pm ] |
| Заглавие: | |
ако правилно съм разбрал: пращаш байт от мегата на 115К и се опитваш да го приемеш с РС под WIN? ако е така: - трябва да си сигурен, че го пращаш само гогато мегата е готова UDRE бит в регистърUCSRA. - каква е честотата на кварца? по принцип асинхронната комуникация трябва да може да се осъществява при bitrate error до +-3%. твоята колко е? - хардуерен проблем? ако имаш диференциална мода на осцилоскопа, премери какво става на крачето на мегата и на края на кабела - тъпия уиндовс. но не би трябвало ако имаш грешки при приемане в мегата, това е друг случай. айде уточни се |
|
| Автор: | bateAz [ Пон Юни 06, 2005 2:47 pm ] |
| Заглавие: | |
Ако има скоп, нещата са много по-лесни. Предавай непрекъснато 2 байта : 0xFF и някакъв друг и гледай със скопа какво става. Първият байт е за да се ориентираш по картинката какво гледаш. |
|
| Автор: | Predator_MF [ Пон Юни 06, 2005 2:48 pm ] |
| Заглавие: | |
Извинете ме, ще се намеся малко встрани, само да попитам, какъв макс. бодрейт държат тия меги (нема време да свалям целите PDF-и) |
|
| Автор: | Nikola Kirov [ Пон Юни 06, 2005 3:23 pm ] |
| Заглавие: | |
Това е и отговора на въпроса,не знаех че има ограничение +-3%. Мислех че е по голямо. 8.5% е при 8М кварц. Гледах го по таблицата с примери за различни честоти на кварца и си мислех че като го дават като възможен трябва да е ОК. Всъщност от какво се определя това ограничение максимално допустимата грешка? Predator_MF При 20Мhz Asynchronous Normal Mode - 1,25Mbs Asynchronous Double Speed Mode - 2.5 Mbps |
|
| Автор: | Predator_MF [ Пон Юни 06, 2005 3:37 pm ] |
| Заглавие: | |
Ами смятай примерно при 115200 bps, 8% отлконение е 9260 бита всяка секунда. Значи от едната страна някой предава на 124460 от другата страна се слуша на 115200. Заради ей такива сметки ми се наложи да напиша преди време един PIC USART calculator, намерих един кварц 22,118400MHz точно изчислено за 460800bps с 0% грешка |
|
| Автор: | Реконструктор [ Пон Юни 06, 2005 3:51 pm ] |
| Заглавие: | |
Пробвай да го пуснеш на 57600 с удвояване. Грешката я дават 2.1%. |
|
| Автор: | Nikola Kirov [ Пон Юни 06, 2005 4:05 pm ] |
| Заглавие: | |
Като вече знам какъв е проблема решения много. А просто си експериментирам с една библиотечка за сериина комуникация дето си я правя сега. |
|
| Автор: | Цецо [ Пон Юни 06, 2005 4:34 pm ] |
| Заглавие: | |
Ами няма еднозначно обяснение защо е +-3%. По принцип зависи от честотата с която приемника накъсва приетия сигнал, както и от алгоритъма му за проверка за грешка. До колкото си спомням всички нови PC-та се правят UART 16550 съвместими,така че ако се поинтересуваш от метода на работа на тоя чип, сигурно ще намериш точната калкулация. Но тя почти сигурно няма да се препокрива с алгоритъма използван в мегата. Както и да е, аз не си позволявам повече от 2% разлика и досега ядове не съм имал. Пиковете на 20 и 40 Мхз докарват 1,25%, значи мегата горе долу трябва да е същата. |
|
| Автор: | ДедоБоре [ Пон Юни 06, 2005 6:10 pm ] |
| Заглавие: | |
ами има си стандарт бе момчета. V24 от там са тези 3% ако искаш да си обясниш принципа, погледни дейташита на мегата в часста му приемане. там има едни много хубави картинки са семплиране на отделен бит и мажоритарна логика колкото по-голяма е скоростта, толкова по-точен трябва да ти е битрейта. и кварца трябва да е с по-шантава честота, която да се дели на цяло число. например 7.3728 или 14.756 |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|