Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATMega48
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
QuickWitted
Третий день мучаюсь с ATMega48... (решил попробовать сделать датчик)
А проблема состоит в том что я никак не могу нормально настроить порты...

(Подобная проблема у меня была на ATMega16 когда забыл Джайтаг выключить)

В общем на данный момент нормально управлять получается только B0,D7,D6
(к ним подключены 3 светодиода)

А ноги с C0-C5 и B1,D4 - на выход переключить у меня не получается...
(через резистор 5,1 на них вешал базу транзистора управляющего бизером,
тот же транзистор нормально пишит бизером в параллель к светодиодам на ногах B0,D7,D6)

Также не удаётся запустить UART... (вроде по датащиту делал)

Не подскажет ли доброуважаемый АЛЛ в чём может быть проблема?
(В файле прилагаю исходник и файл для автоматизированной прошивки в PonyProg)

ЗЫ: Мой уровень - средний, с МК работаю давно - хобби...
jasper
Прогоните программу в симуляторе, сразу видно станет.
Скорее всего, альтернативные функции портов мешаются. На C0-C5 АЦП висит, для примера.
QuickWitted
Цитата(jasper @ Oct 4 2007, 13:52) *
Прогоните программу в симуляторе, сразу видно станет.

Нет у меня симулятора (только тот что в АВРстудии)
А по нему не видно...

Цитата
Скорее всего, альтернативные функции портов мешаются. На C0-C5 АЦП висит, для примера.


Я в программе их не включал...
(в приколе с мега16 я их врубил фусами...)

А фусы выставил по калькулятору... (в ссылки мои настройки)
FuseCalkulator
GDI
В АВРСтудии все прекрасно видно, и состояние всех портов и т.д. и т.п. К сожалению не могу оченить сам код, т.к. он у вас в раре, а у меня в линуксе он некорректно открывается, киньте в теме ваш стартап код. Каким компилятором пользуетесь?
QuickWitted
Цитата(GDI @ Oct 4 2007, 14:20) *
В АВРСтудии все прекрасно видно, и состояние всех портов и т.д. и т.п.

Угу картинка соответствует заданию...
ОДНО НО он работает не по заданию, а если быть точным - не управляется СОВСЕМ

Цитата(GDI @ Oct 4 2007, 14:20) *
К сожалению не могу оченить сам код, т.к. он у вас в раре, а у меня в линуксе он некорректно открывается, киньте в теме ваш стартап код.

Как не понял, поэтому дублирую мылом, а сюда кидаю в ZIP архиве откомпилированную версию под АВРстудию...

в ней всё работает как надо, только в оригинале не так....

Цитата(GDI @ Oct 4 2007, 14:20) *
Каким компилятором пользуетесь?


ассемблером выдранным из студии... (тот что под командную строку)
в студии отлаживаю...


Цитата(jasper @ Oct 4 2007, 13:52) *
На C0-C5 АЦП висит, для примера.


Мысль №2: На Меге16 они тоже есть, но сами-то не включались...
(структура кода взята ПОЛНОСТЬЮ с рабочего девайса на Меги16)
и в архиве даже инициализация UART отключена....
просто мигание на ногах...


Пока копался в файлике настройки программатора ошипочку нашёл...
(вместо SPI включил сторожевой таймер) но результата НОЛЬ
(лошадь умная - сама SPI обратно включила...)

Причём тестр показывает что все эти концы (включая TX RX) висят в Z состоянии...
bill_vs
На AVcc питание подано? В Datasheet на mega48:
AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6. It should be externally
connected to VCC, even if the ADC is not used
.
GDI
К сожалению(или счастью) асм я знаю плохо, но не в том ли проблема что кjд взят от мега16? там же регистры разные могут быть в смысле адреса регистров и их названия, в мега48 все это несколько отличается от мега16, учтено ли это ?
QuickWitted
Цитата(GDI @ Oct 4 2007, 16:30) *
но не в том ли проблема что кjд взят от мега16? там же регистры разные могут быть в смысле адреса регистров и их названия, в мега48 все это несколько отличается от мега16, учтено ли это ?


Не пугать...
Есно учтено

;-----------------------------------------------------------------
;---------- Подключим модуль Меги48 ------------------------
;-----------------------------------------------------------------

.nolist
.include "m48def.inc"
.list

Цитата(bill_vs @ Oct 4 2007, 16:26) *
На AVcc питание подано? В Datasheet на mega48:
AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6. It should be externally
connected to VCC, even if the ADC is not used
.


Питание подано...
Кстати ГЛЮК наблюдается и с другими ногами...
смотри заготовку схемы...
Нажмите для просмотра прикрепленного файла
bill_vs
А где Вы переключаете PORTC на выход?
Единственное упоминание в тексте:
ldi R16_Tmp1,0xFF ;00 ; нету - Out - остальные In
out DDRC,R16_Tmp1 ; Кстати незабудь если собрался юзать АЦП - настрой нужные на IN

Сами пишите - всё вход!
GDI
Да не, тут все в порядке, в DDRC выводится 0xFF, т.е. все на выход
bill_vs
Виноват, ФФ-а то я и не заметил!
QuickWitted
Цитата(bill_vs @ Oct 4 2007, 19:01) *
А где Вы переключаете PORTC на выход?
Единственное упоминание в тексте:
ldi R16_Tmp1,0xFF ;00 ; нету - Out - остальные In
out DDRC,R16_Tmp1 ; Кстати незабудь если собрался юзать АЦП - настрой нужные на IN

Сами пишите - всё вход!


При 00 вход... а при FF выход... Ноль закрыт символом ";"
(Смотри описание портов)


bill_vs подсказал правильную идею:

Цитата(bill_vs @ Oct 4 2007, 16:26) *
На AVcc питание подано? В Datasheet на mega48:


Выяснилось, что в панельке контакт от AVcc надломился...
Со стороны пайки питание было... (неоднократно замерял тестером)
А на ноге МК оно было "временами" и контакт был до попытки вывести
что либо в порт, а при выводе очевидно нагрузка повышалась, и контакт пропадал...

Теперь wink.gif
chernenko
Не хотел плодить темы, так как вопрос простой и быстрый.
Известно, что Мега 128 программируеться не по MOSI и MISO а по TXD RXD.

Как в Меге 48? также или по MOSI и MISO?
xemul
Цитата(chernenko @ Dec 5 2007, 21:02) *
Не хотел плодить темы, так как вопрос простой и быстрый.
Известно, что Мега 128 программируеться не по MOSI и MISO а по TXD RXD.

Как в Меге 48? также или по MOSI и MISO?

По MOSI и MISO. В даташите п.26.8 Serial Downloading.
chernenko
Скажите, а чем отличаются версии ATMega48 и ATMega48V? Что различного между ними?
DASM
Так в даташит на первой странице
• Operating Voltage:
– 1.8 - 5.5V for ATmega48V/88V/168V
– 2.7 - 5.5V for ATmega48/88/168
• Speed Grade:
– ATmega48V/88V/168V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
– ATmega48/88/168: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
chernenko
Цитата(DASM @ Dec 9 2007, 11:54) *
Так в даташит на первой странице
• Operating Voltage:
– 1.8 - 5.5V for ATmega48V/88V/168V
– 2.7 - 5.5V for ATmega48/88/168
• Speed Grade:
– ATmega48V/88V/168V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
– ATmega48/88/168: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V


Это то я тоже знал smile.gif

И всего то, а зачем же на найте атмела расписывать версия Autimotie AVR и обычная версия Mega. AVR.. 07.gif
ae_
Цитата(chernenko @ Dec 10 2007, 01:00) *
Это то я тоже знал :)

И всего то, а зачем же на найте атмела расписывать версия Autimotie AVR и обычная версия Mega. AVR.. :07:

Не путайте, "ATmega48(V)" и "ATmega48 Automotive" - это два устройства с разными спецификациями.
chernenko
Цитата(ae_ @ Dec 10 2007, 05:37) *
Не путайте, "ATmega48(V)" и "ATmega48 Automotive" - это два устройства с разными спецификациями.


Попутал. Извиняйте.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.