Перейти к содержанию

Почему Программатор Не Видит Микроконтроллера?


Рекомендуемые сообщения

. На правой картинке указано куда подключать шлейф к ATtiny44, в данном случае это не поможет.

я просто показал распиновку разьема с программатора.

у автора походу такая же распиновка.

Николай.cxem.net

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Да да. У меня даже программатор так же выглядит. Только там где резет SS))) А так все в точности

Пару слов чем плохо что МК 48PA а не 48?)) в протеусе они идентичны))

Да и какая ему разница))) Шутка конечно я вкурсе, что скорее всего архитектура чуточку отличается)))

Вопрос че делать)) Магазин далеко бежать за другим МК

Изменено пользователем AvtoFocus

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Это Atmel'овский стандарт, ISP-10. Распиновка разъема не зависит от программатора и контроллера (кроме каких-нибудь ATtiny10 которые SPI не понимают ввиду куцости). Поэтому я уже раз 10 сказал чтобы не смотрел на разводку программатора а только на распиновку разъема. Пока не помогает :-(

Зачем? По ногам и исходному коду они наверняка совместимы. Программатору укажи чтобы прошивал не ATmega48 а ATmega48P. Ну и прошивку хорошо бы перекомпилировать.[ .include "m48def.inc"] для ассемблера (точка перед include обязательна). Что за прошивку пытаешься испытать?

Изменено пользователем COKPOWEHEU

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Диодиками должен мигать. Сказал, что скушал прошивку хорошо, а как теперь помигать?))

Тока в списке нету 48P. В ручную дописал - все равно обзывается

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

Как как...отключи от программатора и подай питание на схему...Если косяков нет, то все заработает.

Минин Андрей. Обращайтесь за помощью.

Ссылка на комментарий
Поделиться на другие сайты

Поддержку контроллеров можно и добавить если уметь пользоваться поисковиком.

И да, исходной код-то покажи.

Изменено пользователем COKPOWEHEU

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

/*

* GCCFirstMC.c

*

* Created: 22.08.2013 16:57:48

* Author: AvtoFocus

*/

#define F_CPU 1000000UL

#include <avr/io.h>

.include "m48def.inc"

#include <util/delay.h>

int main(void)

{

DDRC = 0b0010101;

while(1==1)

{

PORTC = 0b0010101;

_delay_ms(500);

PORTC = 0b0000000;

_delay_ms(500);

}

}

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

.include было только для ассемблера, в Си это не нужно. Там нужно в настройках компилятора указать контроллер.

В протеусе все работает. В железе проверить не могу, m48p нет.

Изменено пользователем COKPOWEHEU

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Если бы я нашел где)) Щас AvrStudio запущу

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

Стрелками указана последовательность. Вместо #define F_CPU можно настраивать там, эффект будет тот же. Оптимизация стоит по умолчанию -Os, лучше так и оставить.

post-58864-0-84506600-1377198337_thumb.jpg

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

AVRStudio 4.16 А ты на чем программируешь?? Вроде же тоже gcc-avr

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

тока 6-я студия) она кардинально отличается))

а сама студия зашивать прошивку может? или сторонние утилиты нужны?

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

Как 6-я не знаю, вместе с 4-й идут AVRprog, что-то для связи с STK-500 и другими программаторами. Но avrdude универсальнее. Прошивка пересобралась и зашилась хоть чем-нибудь? Или выложить пересобранное для проверки камня?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

УРЯ)) Мигают)) Что бы я без вас делал)) Щас всем спасибо наставлю)

Пишу в AvrStudio зашиваю Кхазамом)) все норм) ругается но дело делает)

Изменено пользователем AvtoFocus

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

Ну и последнее после чего можно тем закрыть. Я читал что то страшное про кол-во перезаписей памяти МК. Вроде 10 тыс. только(((

Ай ещё кое что)) А какие порты я могу безнаказанно теребить?))) ну т.е. сколько свободных портов у этого мк)) а то они называются по разному трудновато с ориентироваться))

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

Наконец-то. Стоило ли обижаться на пользователей и подозревать программатор в нехорошем?

Только программировать поначалу лучше на Ассемблере а не на Си. Вот разберешься с особенностями архитектуры и основными подводными камнями, появятся соответствующие задачи, тогда к Си и вернешься. Пару самых очевидных граблей могу показать: типы данных (аппаратно поддерживаются только 8-битные, с остальными работа дольше, особенно с дробными), арифметика (аппаратно только сложение, вычитание и умножение. Тоже по 1 байту, да. Так что делениями больших чисел не злоупотребляй) и, самое страшное, размер кода: вот честно хз откуда его столько берется и как с этим бороться.

К тому же могу дать пару простых задачек на работу с переферией.

1. Мигание светодиодом (на ассемблере это сложнее чем на Си)

2. Обработка нажатия кнопки (работа с PINx по сути. Можно сюда же подтяжку к питанию посмотреть)

3. Обработка кнопки на прерываниях.

4. Работа с таймером. Например, смотреть, сколько он насчитал и каждые сколько-то тактов менять состояние вывода.

5. Работа с таймером на прерываниях (довольно интересная и практически полезная задача), разные режимы: normal, CTC, ШИМ, fast-ШИМ, фазокорректный ШИМ. Лучше тренироваться на Timer0, он попроще.

Удачи!

.include <m48Pdef.inc"
.def temp=r16
RESET:
 ldi temp,low(RAMEND)
 out SPL,temp
 ldi temp,high(RAMEND)
 out SPH,temp
 ldi temp,0b00010101
 out DDRC,temp
 ldi temp,0b00010000
 out PORTC,temp
LOOP:
 inc temp
 andi temp,0b00010101
 out PORTC,temp
 rjmp LOOP

Набросал шаблон для Ассемблера. PC4 горит, PC2 погашен, PC0 горит в полнакала. Надеюсь, разберетесь. Надеюсь, не ошибся :-)

У большинства портов есть основная функциональность (обычно просто порт ввода-вывода) и дополнительная. Дополнительная по умолчанию отключена и включается специальными регистрами, TCCR1A например или еще что-нибудь малопроизносимое. Если эта функция не используется то и не страшно что она с чем-то совмещена.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

На Ассемблере проще)) Учить уже ничего не надо в моем случае)) И мигание диодом не так сложно. Правда надо разобраться есть ли у этого МК простая система таймера. Не хотелось бы циклы городить

Во че есть)) Вот это типа первобытный таймер))

mvi d, 05

call Time1

Time1: dcr d

jnz Time2

HLT

nop

nop

Time2: mvi c, 10

call Dush1

Dush1: dcr c

jz Time1

mvi b, 05

call Dush2

Dush2: dcr b

jnz Dush2

jz Dush1

ret

На Хальт не обращайте внимания писалась под И8080))) Там это важно

А в этом мк интересно поищу Хальт есть)))?

А где можно узнать такую вещь как диапазон адресов МК?

Хех)) А мерцания не видно

PORTC = 0b0000001;

_delay_ms(3);

PORTC = 0b0000100;

_delay_ms(3);

PORTC = 0b0010000;

_delay_ms(3);

PORTC = 0b0010101;

_delay_ms(3);

PORTC = 0b0010000;

_delay_ms(3);

PORTC = 0b0000100;

_delay_ms(3);

PORTC = 0b0000001;

_delay_ms(3);

}

Полезный опыт, когда бду играться с матричными диодами =))

Главное уложиться в 25 мс

Изменено пользователем AvtoFocus

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

В даташите. Скомпилировать это не пробовали? Ассемблер для avr и для x86 существенно отличаются и лучше бы все же написать пару программ. На Си потом будет переходить проще. А циклы для задержки используются сплошь и рядом. Не всегда выгодно использовать таймер ради пары (десятков) тактов. Тот же _delay_ms() думаешь как работает? Именно циклами.

Но обсуждение уже вышло из темы и этого топика) Впрочем обсуждать-то особо больше нечего. Если разберешься с даташитом да моими задачками, дальше будет проще, хотя бы будешь знать где искать тот или иной модуль и как примерно он работает. К тому же в прежней теме я давал названия книг с которыми полезно ознакомиться, там про все это написано.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Знаю, что ассемблер круче)) но щас ночь и мне влом что то вспоминать)) Я даже диапазон адресов не помню как посчитать. Он зависит от битности и объема памяти помоему)))

Ещё больше скажу)) Если Си пишется под 32 бита или 64, а у вас программа использует только 8 то памяти оно займет аж:

0000 0000 0000 0000 0000 0000 1111 1111

Вон сколько лишних нулей)) А все потому, что автор компилятора предусмотрел на все случаи жизни)) В ассемблере даже в 32-х битной системе можно брать столько памяти сколько нужно.

Вот как это было с И8080

в каждую ячейку памяти записывался код команды и операнд. И мог использовать как по полной память (т.е. юзать 3-х этажные команды ) или пользоваться однобайтными командами и сократить немножко программу)) У нас даже задание было персонально каждому есть программа там 19,20,40 байт. Сократите её до самого минимального размера по вашему мнению и чем ближе она будет к идеалу такая и оценка

Хотя я могу компилировать одну из своих старых программ для И8080)) Команды заменю и гляну что будет)

Ой, а там с флагами исследования))) Тогда лучше пойду читать систему команд этого МК

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

А типы данных? Например, char весит 8 бит, int - 16, long int - 32 ну и так далее. Правда, это для 8-разрядной архитектуры. Для 16-32-64-разрядной память особо уже не экономят а скорость работы все равно одинаковая если работа идет с одним машинным словом (те же 16-32-64 бита). Впрочем сейчас и скорость не экономят. И это печально.

Разумеется, я не заставляю тебя кодить на ночь глядя! Просто эти примеры, я считаю, могут помочь разобраться с архитектурой контроллера.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Что то в списке команд не вижу инверсию http://www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/start.htm

Сдвиг есть, флаг переполнения есть,а инверсии нет. Там правда можно по моему логической операцией как то надо таблицу вспомнить. Как же решать тогда задачи изменения бита в слове. Допустим надо в 4-м знаке обязательно в какой то отрезок времени, что бы был 0. Вдруг это датчик какой, разлив пива контролирует))) И как мне выудить этот бит из числа 1001 1110. Был способ сдвинуть например в право 4-е раза. Инверсию переноса и потом сдвинуть влево 4-е раза)))

И кстати вы завтра наверное работаете)) Подкиньте пару идей чем побаловаться утром?)) я если что не про траву, нет нет :unknw:

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

Могу подсказать про исключающее ИЛИ (оператор EOR).

Еще для инверсии можно воспользоваться NEG (перевод в дополнительный код) + DEC (вычитание единицы). Вроде вместе они дают как раз инверсию.

Для выуживания бита есть стандартные команды SBRS / SBRC / SBIS / SBIC - пропуск следующей инструкции (частенько перехода куда-нибудь еще) если бит в регистре / порту ввода-вывода установлен / снят.

И обратные команды - SBR, CBR, SBI, CBI для установки/снятия бита в регистре/порту.

А что тех 5 задачек уже мало? Так не проблема.

6. Например, можно сделать световые эффекты: плавное зажигание, плавное угасание. Таймеров у этой микросхемы много, так что можно попробовать независимое управление несколькими светодиодами. Переключение от времени либо по кнопке.

7. Еще полезная задача - динамическая индикация, правда там много светодиодов понадобится.

8. А можно, углубиться в переферию. Разобраться что такое АЦП, аналоговый компаратор.

9. Или в типы памяти: запись и чтение EEPROM (только не flash!)

10. Если дома есть COM-порт, можно попробовать подключиться и к нему через преобразователь уровней на транзисторах, например, или на max232. Аналогично можно и к usb(ft232) но такая микросхема у тебя вряд ли есть. К COM-то можно на транзисторах. Либо попробовать завести выводы Rx, Tx программатора, посмотреть не удастся ли передавать что-нибудь через них.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Нет тех задачек не мало. Просто я представляю приблизительно как их решить.

Начну пожалуй с плавного зажигания (вчера как рас перед сном об этом думал).

С таймерами тоже помучаюсь - чуть по позже гляну в даташите, что есть в моем распоряжении для этой задачи.

По кнопке пока не получится))) Хотя могу сделать элементарную кнопку из двух проводочков. А напрямую на землю порт замкнуть можно?)))

Динамическую индикацию вчера опробовал. Я же давал код.

Хех)) А мерцания не видно

PORTC = 0b0000001;

_delay_ms(3);

PORTC = 0b0000100;

_delay_ms(3);

PORTC = 0b0010000;

_delay_ms(3);

PORTC = 0b0010101;

_delay_ms(3);

PORTC = 0b0010000;

_delay_ms(3);

PORTC = 0b0000100;

_delay_ms(3);

PORTC = 0b0000001;

_delay_ms(3);

}

Полезный опыт, когда бду играться с матричными диодами =))

Главное уложиться в 25 мс

Светодиоды горели как одно целое. Но по коду видно, что они постоянно то отключались то включались. Это я освоил давно. Тм у диода есть время за которое он гаснит и за которое разгорается - не будем вдаваться в химию...

Для этих светодиодов это 25мс - установил на практике.

Следующей задачей пожалуй, да, разберусь с ЦАП и АЦП - у них есть внутренний мультиплексор и демультиплексор? или там все порты задействованы? И сколько разрядное цап\ацп тут?)))

На сколько знаю в RS-232 есть выходы с подобным названием. Там есть вход приемник RD и выход передатчик TD, ну и земля самособой =))) Подключены RD-->TD TD-->RD GND-->GND

Возможно это для него и есть входы)) Ведь в промышленности тоже МК применяют

Изменено пользователем AvtoFocus

"...Не верю в этот мир, если не верю в себя сам, я вижу цель и знаю, что я буду там..." Noize MC - Сам (2011)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...