|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:18 am
| Автор |
Съобщение |
|
nhadjinikolov
Ранг: Минаващ
Регистриран на: Пон Яну 11, 2010 3:27 am Мнения: 14
|
 Проблем с UART(AVR)
Здравейте!
Започнах да се занимавам с УАРТ на една атМега16. Четох някакви туториали, седнах и възоснова на даташийта си написах проста програма, която да плюе по едно 'А' всяка секунда. Свързах на бредборда тази схема и боцнах към серийния порт на лаптопа ми. Добавих и по един светодиод на Rx и Tx пиновете на мегата, за да мигат, когато има активност. За терминал използвам PuTTy. Отварям, но нищо не се показва.. Добавих функция да светва друг диод, когато получи главна буква от компа към мегата. Отново има активност на Рх пина, но контролера не го отразява софтуерно.
Странните неща, обаче не свършват до тук... Взех една букса ДБ9 и направих това, но никакво ехо не се вижда и с този лууп-бек...
Уж порта не е повреден, защото все пак получавам след МАХ232 ТТЛ активност
Май нещо не съм донастроил, но кое и какво, вече не знам. От няколко вечери се мъча и така, и не успявам да измисля нещо, от което да идват тези проблеми...
Настройките са бодрейт 9200, 8 бита данни, 2 стопови, без проверка, без флоу контрол
Ето сорс на мегата:
Благодаря предварително за помощта!
|
| Пет Авг 20, 2010 12:45 am |
|
 |
|
Ники
Ранг: Почетен член
Регистриран на: Съб Окт 30, 2004 11:19 pm Мнения: 609
|
В момента не съм много буден, но за уарт си имаше примери с АВР студиото и в даташита, даже корекции не съм правил, ползвах ги наготово, ако не си сигурен че проца пали правилно при стартиране си направи някаква индикация за това.
|
| Пет Авг 20, 2010 12:57 am |
|
 |
|
nhadjinikolov
Ранг: Минаващ
Регистриран на: Пон Яну 11, 2010 3:27 am Мнения: 14
|
Кода, който съм написан е на база на този от даташийта. Пробвах с 2 атмеги(и двете 16) едната 8PU, другата 16PU.
Сега ще разгледам примера, който идва с GCC. За него не се бях сетил... Благодаря! 
|
| Пет Авг 20, 2010 1:02 am |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
Не работи, защото имаш грешка в кода (логическа).
Проблема ти (по това време на денонощието виждам само 1  ) е в условието
Така написано, трябва да дойдат 2 символа , един по голям аски от 65 и един с по малък от кода на Z, понеже четеш 2 пъти уарт-а. Ей ти най елементарното решение
успех!
|
| Пет Авг 20, 2010 1:08 am |
|
 |
|
nhadjinikolov
Ранг: Минаващ
Регистриран на: Пон Яну 11, 2010 3:27 am Мнения: 14
|
Това е така, защото съм станал преди почти 20 часа, а трябваше да върна кода в състоянието, в което го описвам в поста по-горе
Иначе си беше с буфер, като го пробвах...
За последно го бях направил просто по-голямо от А
Пробвах с прекъсвания при RXC, обаче то дори не влиза в ПОП...
|
| Пет Авг 20, 2010 1:46 am |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
Тъси проблема в хардуера (примерно тх и рх да си завъртял..Ако пък не си сигурен дали не си объркал някой извод на ком-ската букса, погледни по внимателно - изписани са със ситни номера изводите, на предната и част), защото програмата е ОК.
Тя е 90% 1:1 от дейташийта, а тя със сигурност работи.
До колкото помня, трябва в софта на ПЦ-то да чекнеш XON/XOFF flow controll-а.
|
| Пет Авг 20, 2010 1:47 pm |
|
 |
|
nhadjinikolov
Ранг: Минаващ
Регистриран на: Пон Яну 11, 2010 3:27 am Мнения: 14
|
Ами до този момент уж всичко е добре, но положението е същото
Само едно нещо ме притеснява - кондензаторите на МАХ232 са 4.7 микро, а по даташиита ги дават 1 или 0,1. Утре ще ги сменя с 0,1, но пък съм виждал схеми, където ползват и 10 микро...
Има ли значение дали ползвам свързване само на Рх, Тх и земя или ще окъся и 7ми и 8ми и 4ти и 6ти?
|
| Пет Авг 20, 2010 11:11 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
Кондензаторите задължително 1:1 от дейташийта. Виж много внимателно кой е производителя, и му намери точно неговия дейташийт.
За окъсяването - мисля че не ти трябва... (все пак опитай различни варианти, че аз само усб-сериал (pl2303, ft232rl) съм бутал и там определено не съм окъсявал)
|
| Съб Авг 21, 2010 12:21 am |
|
 |
|
Ники
Ранг: Почетен член
Регистриран на: Съб Окт 30, 2004 11:19 pm Мнения: 609
|
Трябва да започнеш с абв-то, окъси RX и TX na MAX232, и от терминала на ПЦ каквото пратиш трябва да го получиш, така поне ще си изчистиш че терминала, ком порта и макс232 работят, и остава само проца.
Не ти трябва двоен стоп и тази скорост ако не е грешка 9200, я направи стандартна, въобще ползвай настройките които са масови 9600,8,1стоп, но парити,без хард и софт контрол
|
| Съб Авг 21, 2010 12:43 am |
|
 |
|
nhadjinikolov
Ранг: Минаващ
Регистриран на: Пон Яну 11, 2010 3:27 am Мнения: 14
|
скоростта е 9600, просто съм объркал в началото  в кода е 9600
Аз при окъсяване на Рх и Тх още на изхода на ком порта не получавам нищо...
|
| Съб Авг 21, 2010 7:13 am |
|
 |
|
Ники
Ранг: Почетен член
Регистриран на: Съб Окт 30, 2004 11:19 pm Мнения: 609
|
ако си ме разбрал какво ти написах и си сигурен в отговора си за окъсяването на RX и TX и неработенето на терминала, не видях някъде в постовете това да си го упоменал, какъв софтуер какви 5 лева..
Смени терминала, или смени порта на УСБ ако трябва, изчисти си пътя извън процесора и тогава пак опитай със софта в него..
|
| Съб Авг 21, 2010 9:53 am |
|
 |
|
amdatlon
Ранг: Почетен член
Регистриран на: Чет Мар 19, 2009 8:33 pm Мнения: 804
|
|
| Съб Авг 21, 2010 11:49 am |
|
 |
|
nhadjinikolov
Ранг: Минаващ
Регистриран на: Пон Яну 11, 2010 3:27 am Мнения: 14
|
В първия пост съм написал, че ползвам PuTTy и ...
Сложих 1 микро кондензатори на МАХ232, както пише в даташиита. Промяна няма.
Занесох си "системката" на друг компютър(на ХР с Хипертерминал, който съм го подкаралвал да работи с един ренесаски процесор) и там нищо не става... Праща до Рх пина и диода си мига, обаче и там абсолютно същото става.
Да не би проблема да е в това, че съм на бредборд и сигнала да се изменя прекалено много заради шумове и смущения?
Но пък аз когато окъсявах Рх и Тх на ком-порта го направих с женска букса, без дори да има кабел...
|
| Нед Авг 22, 2010 7:51 pm |
|
 |
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 10:16 am Мнения: 1730
|
Пак ще се повторя - вместо да броиш изводите и да правиш грешки, обърни челото на буксата към теб и си виж номерата на изводите.
Сврържи правилните РХ и ТХ диретно на ком-а на компютъра, докато на терминалния софтуер започне да се изписва символа който си написал.
После сложи мах-а и повтори упражнението. След като тръгне и с мах-а, тогаз слагай контролера.
Сега се сетих и друго - ако ползваш ком-ски кабел, взет от УПС, имай в предвид, че той не е с пълния брой жила.
И махни диодите от РХ и ТХ 
|
| Пон Авг 23, 2010 11:27 am |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
А сещаш ли се, че женската букса е огледална на мъжката?
Когато ги нанижеш двете краката им по номера съвпадат!
//когато гледаш женската откъм перата за запояване 1 е най-ляво, при мъжката е обратно
|
| Пон Авг 23, 2010 2:19 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 4 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|