UART + ATtiny2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
Тарас
Встал на лапы
Сообщения: 89
Зарегистрирован: Ср июн 04, 2008 01:20:54
Откуда: Украина, Винница
Контактная информация:

UART + ATtiny2313

Сообщение Тарас »

Доброго времени суток.
Вот возникла интересная ситуация: сделал переходинид ЮСБ-УАРТ и решил к нему вцепить тини2313. написал простую прогу
при которой когда нажимаешь на клавиатуре 1 (тоесть аски код 49) контролер отправляет версию оборудования,
при нажатии 2 а затем 1 засвечивается первый светодиод
при нажатии 3 отсылается код кнопки(нажата или нет 1/0)

в протеусе(7,5) работает восхитительно)) все обменивается все супер
на железе, нет( когда посылаешь на порт данные контроллер мертв, думал дело в переходнике, корочил ноги РХ и ДХ посылаю на порт данные - они возвращаются... а вот почему контролер не отвечает, никак не пойму(( когда написал прогу которая в УАРТ (c контроллера) передает данные, то комп принимает их отлично.

Помогите советом, в чем может быть загвоздка ?
(Фюзы никакие на контроллере я не шил - тактируется от внешнего кварца 4МГЦ + 2 кондера на 22пФ)

Файли прошивки исходник и протеус выложил.
Вложения
hardware.rar
(77.92 КБ) 144 скачивания
Мяу-у-у-у-у
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: UART + ATtiny2313

Сообщение ibiza11 »

1=0x31=49
2=0x32=50
3=0x33=51
http://ascii.org.ru/
может со системами исчисления перепутали что?

Добавлено
Посмотрел код, попробуйте в условии вместо <...=="1"...> написать <...==0x31...>
Последний раз редактировалось ibiza11 Вт мар 16, 2010 08:43:04, всего редактировалось 1 раз.
Ставим плюсы: )
Аватара пользователя
Тарас
Встал на лапы
Сообщения: 89
Зарегистрирован: Ср июн 04, 2008 01:20:54
Откуда: Украина, Винница
Контактная информация:

Re: UART + ATtiny2313

Сообщение Тарас »

Проверял, не перепутал.... Парадокс, в протеусе отлично а на железе, ну-никак.
Мяу-у-у-у-у
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: UART + ATtiny2313

Сообщение ibiza11 »

посмтрел код на асм :

Код: Выделить всё

;0000 0039         if (num=="1")
   __POINTW1FN _0x0,0
   RCALL SUBOPT_0x1
   BRNE _0x8
макрос __POINTW1FN : записывает число равное (2*(_0х0)+0) в регистры r30 и r31/ (как я понял это число равно нулю)
по сему, думаю что компилятор неправильно понимает надпись =="1"
исправьте, если я неправ.

Код: Выделить всё

   LDI  R30,LOW(2*@0+@1)
   LDI  R31,HIGH(2*@0+@1)
подпрограмма SUBOPT_0x1: сравнивает число в регистрах r30-31 с числом в регистре r17.

Код: Выделить всё

   MOV  R26,R17
   LDI  R27,0
   CP   R30,R26
   CPC  R31,R27
   RET
число в регистре r17 и есть наше число из UARTa:

Код: Выделить всё

;   num -> R17
;   cmd -> R16
;   knopka -> R15.0
попробуйте сделать, как я рекомендовал в предыдущем посте.
Ставим плюсы: )
Аватара пользователя
Тарас
Встал на лапы
Сообщения: 89
Зарегистрирован: Ср июн 04, 2008 01:20:54
Откуда: Украина, Винница
Контактная информация:

Re: UART + ATtiny2313

Сообщение Тарас »

пробовал, не пашет(
в протеусе работает на желези никак... мне кажется может дела з фюзами, может какие-то нужно прошить ?
Мяу-у-у-у-у
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: UART + ATtiny2313

Сообщение AI_Disable »

Тарас писал(а):мне кажется может дела з фюзами, может какие-то нужно прошить ?

Разумеется! С завода тини2313 идёт с внутренним RC на 1 мгц.
Аватара пользователя
Тарас
Встал на лапы
Сообщения: 89
Зарегистрирован: Ср июн 04, 2008 01:20:54
Откуда: Украина, Винница
Контактная информация:

Re: UART + ATtiny2313

Сообщение Тарас »

Хотя я подумал (может я и не прав, выправите меня если я заблуждаюсь)...
вот смотрите, я никаких фюзов не шил, потом перепрошил все в состояния 1 (непрошиты).
он тактируеться от внешнего кварца... если были б проблемы с частотой то на терминал не правильно выводились символы, а так воводятся правильно, но вот поидеи с приемом чтото нето.
Мяу-у-у-у-у
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: UART + ATtiny2313

Сообщение AI_Disable »

Ну вот, а говорите не шили. Или вы считаете, что отключение фьюзов не относится к прошивке? Помню, тоже была проблема с тини2313 и UART: выставлял условие на приём конкретного байта, отправлял его, а получал совсем другой. Оказалось, что терминал, после отправки каждой строки, либо отдельного байта, отправлял код конца строки и, естественно, условие в МК не срабатывало. Отключение этой "фитчи" решило проблему.
Аватара пользователя
Тарас
Встал на лапы
Сообщения: 89
Зарегистрирован: Ср июн 04, 2008 01:20:54
Откуда: Украина, Винница
Контактная информация:

Re: UART + ATtiny2313

Сообщение Тарас »

ну у меня все правильно передает с терминала компа...
Мяу-у-у-у-у
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: UART + ATtiny2313

Сообщение urry »

Земляк, ведь неизвестно чем ты принимаешь...
Если под линуксом, то для приема бинарной инфы нужно вывести комп-порт из канонического ввода.
Если под виндой, то обратить внимание на rCommTimeouts.ReadTotalTimeoutConstant, может, не вписываешься...
При передачи текстовой инфы завершай строку /r/n.
Аватара пользователя
zebrox
Встал на лапы
Сообщения: 117
Зарегистрирован: Вс апр 12, 2009 22:40:37

Re: UART + ATtiny2313

Сообщение zebrox »

Думаю причина именно в переходнике.

Я когда-то пытался сделать переходник на USB-UART на PL2303HX (точно не помню), то была аналогичная ситуация, и когда тх и рх закорачивал тоже прием был, а МК ничего не мог получить с компа, но передавал на пк он нормально. Я забил на это дело и сделал переходник на компорт на двух транзисторах.

Другой человек делал подобный переходник на максе, тоже у него что-то куда-то не шло, но после того как или RTS или DTS притянул к земле или к + уже непомню, то все заработало. Попробуйте эти выводы переходника попритягивать к чему-нибудь, или один из них или оба сразу.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»