[image]

Микроконтроллеры AVR - применение и Краткий Курс - часть 10

 
1 18 19 20 21 22 38
UA Non-conformist #28.03.2012 13:44  @Serge77#28.03.2012 13:38
+
-
edit
 

Non-conformist

аксакал

Serge77> Я так и паяю обычным паяльником без проблем, подумал, может будет ещё проще.
Прикуриватель - это для BGA/LGA и им подобных корпусов. А также для съёма с платы любых SMD.
   
UA Non-conformist #28.03.2012 13:48  @Non-conformist#28.03.2012 13:44
+
-
edit
 

Non-conformist

аксакал

Прошил, проверил, прочитал. Светодиод PB3 не мигает. Включен правильно (замыкал на массу - включается). Схема немного изменена: общий анод светодиодов подключен не после диода D1, как в оригинале, а напрямую к трёхвольтовой батарейке. Может трёх вольт питания мало для 2313 без индексов? Браунаут во фьюзах выключен... ???
Прикреплённые файлы:
 
   
UA Non-conformist #28.03.2012 13:56  @Non-conformist#28.03.2012 13:48
+
-
edit
 

Non-conformist

аксакал

Вот мои фьюзы - мало ли...
Прикреплённые файлы:
111.png (скачать) [16,4 кБ]
 
 
   
RU GOGI #28.03.2012 14:13  @Non-conformist#28.03.2012 13:48
+
-
edit
 
Non-conformist>Схема немного изменена: общий анод светодиодов подключен не после диода D1, как в оригинале, а напрямую к трёхвольтовой батарейке.
Ну вообще так не надо делать, ты паразитное питание на МК подаешь через порт таким образом. Впрочем, тут не должно влиять.
>Может трёх вольт питания мало для 2313 без индексов? Браунаут во фьюзах выключен... ???
Трех вольт должно хватать. Попробуй чуть больше напряжение сделать, может на этот светодиод не хватает напряжения, АВРка не чистый ноль выдает, плюс разброс падений напряжений на светодиодах, может быть, хотя, конечно и мало вероятно.
Даташита на 2313 под рукой нет, с ходу ничего необычного, чтобы на порт B сидело не могу вспомнить.
   
И с какой частотой мигает?
   
UA Non-conformist #28.03.2012 14:42  @GOGI#28.03.2012 14:13
+
-
edit
 

Non-conformist

аксакал

GOGI> Ну вообще так не надо делать, ты паразитное питание на МК подаешь через порт таким образом.
Не понял - а если после VD1 подключиться? На 0,6 В будет меньше, и больше ведь никакой разницы, как я понимаю?

GOGI> Попробуй чуть больше напряжение сделать...
Поставил в цепь светодиода 3К3 и подал пять вольт питания. Никаких изменений. Сел осциллографом на светодиод - примерно полвольта падения есть, стало быть какой-то ток через него течёт. Но никаких импульсов осциллограф не видит вообще, чистейшая постоянка...

GOGI> И с какой частотой мигает?
Вообще ничего не мигает, на всех ногах глухая тишина. Схема не подаёт признаков жизни, кроме скачкообразно изменяющегося (период примерно пять секунд) тока потребления, с 2,7 мА до 3,7 мА. ?!?
   
RU GOGI #28.03.2012 14:53  @Non-conformist#28.03.2012 14:42
+
-
edit
 
Non-conformist> Не понял - а если после VD1 подключиться? На 0,6 В будет меньше, и больше ведь никакой разницы, как я понимаю?
Не подавай на МК сигналы, когда на него не подано питание.

Non-conformist> Вообще ничего не мигает, на всех ногах глухая тишина.
Так у тебя порт B3 не мигает или вообще ничего не мигает?
   
UA Non-conformist #28.03.2012 14:54  @Non-conformist#28.03.2012 14:42
+
-
edit
 

Non-conformist

аксакал

Non-conformist> ... скачкообразно изменяющегося (период примерно пять секунд) тока потребления, с 2,7 мА до 3,7 мА. ?!?
С трёхвольтовым питанием ток потребления точно так же скачкообразно осциллирует с 0,65 мА до 1,1 мА.

***
Опя-я-ять какая-то фигня... У меня без этого ну просто никак. Проверил плату на предмет токопроводности флюса (паял китайским жиром). Всё нормально, соседние дорожки не звонятся...
   
UA Non-conformist #28.03.2012 14:57  @GOGI#28.03.2012 14:53
+
-
edit
 

Non-conformist

аксакал

GOGI> Не подавай на МК сигналы, когда на него не подано питание.
Так там же выключатель питания общий стоит... Или ты про то время, пока заряжается конденсатор фильтра? Я понял... Щас переделаем...

Non-conformist>> Вообще ничего не мигает, на всех ногах глухая тишина.
GOGI> Так у тебя порт B3 не мигает или вообще ничего не мигает?
Ничего не мигает и не шевелится. Схема мертва.
   
UA Non-conformist #28.03.2012 15:43  @Non-conformist#28.03.2012 14:57
+
-
edit
 

Non-conformist

аксакал

Всё, разобрался. Во фьюзах был включен делитель на восемь CKDIV8. На самом деле всё работало, надо было только дождаться. А дождался только когда ток потребления измерял, а когда ток измерял, то светодиод мордой в стол светил... )) Всё работает!
   
UA alex_zeed #28.03.2012 18:56  @Non-conformist#28.03.2012 11:33
+
-
edit
 

alex_zeed

втянувшийся

Non-conformist> Вопрос: а как увидеть, что МК генерирует тактовую частоту (внутренний RС), какие ножки смотреть осциллографом? Что-то оно вообще всё глухо, только питание видно... Ну и программатор всё пишет и читает без замечаний.

Для будущих поколений - если программатор хоть что-то читает, хотя бы Chip ID - это уже 100% означает, что чип тактируется. Именно на этом основана распространенная проблема "залочки" - фьюзами выставляется скажем такт от внешнего генератора, а его реально нет. Передергивание питания применяет фьюзы - и все, программатор уже не может достучаться до чипа, потому что нет такта.
   11.011.0
UA Non-conformist #28.03.2012 22:59  @alex_zeed#28.03.2012 18:56
+
-
edit
 

Non-conformist

аксакал

Понятно.

***
Ещё одна загадка природы - твой hex мигает, а скомпилированный без ошибок листинг (ниже) не мигает вообще, сколько ни ждал.
code c
  1. //led_blink
  2.  
  3. #include <ioavr.h>
  4. #include <intrinsics.h>
  5.  
  6. void main( void )
  7.  {
  8.  DDRB=0xFF;
  9.  while(1)
  10.  {
  11.  PORTB=0xFF;
  12.  __delay_cycles(8000000);
  13.  PORTB=0x00;
  14.  __delay_cycles(8000000);
  15.  }
  16.  }

Очевидно что-то не так в настройках компилятора. RSTACK стояло 16, уменьшил до 9 - не мигает. Поставил галку enable bit definitions in I/O-include files - не мигает. Таргетом поставил 2313. А больше пока ничего и не знаю. )) ???
   
UA Non-conformist #29.03.2012 01:04  @Non-conformist#28.03.2012 22:59
+
-
edit
 

Non-conformist

аксакал

Приехал мост USB-UART. Драйвер нашёл на сайте производителя чипа CP2101 (Silicon Labs). Установил, система видит устройство как "Silicon Labs CP210x USB to UART bridge (COM1) - это я назначил ему COM1; был СОМ9. "Жёлтых вопросов" в диспетчере устройств нет.

Как теперь его проверить? С платой моей мигалки связи пока нет (использую авторскую графическую оболочку для попиксельного ввода символов в махательную строку). Видимо МК не прошит надлежащим образом. Нельзя ли какой-нибудь более простой способ применить? Я где-то читал, что надо что-то замкнуть (RXD><TXD?), и из Сериал_Монитора послать единичку, которая эхом вернётся через перемычку. А где мне взять этот Монитор? Он в ХР есть? Как его запустить? Или лучше поддержать отечественного производителя и воспользоваться ксановым продуктом? Xan, может ли твой Монитор отсылать послания?
   
RU GOGI #29.03.2012 07:06  @Non-conformist#29.03.2012 01:04
+
-
edit
 
Да, терминальной программой подключаешься к порту и начинаешь туда печатать все, что угодно. В зависимости от того, включено эхо или нет, ты или не будешь видеть никаких символов, или будешь видеть то, что печатаешь. Потом замыкаешь джампером RXD и TXD. Если ты до этого ничего не видел, то будешь видеть то что печатаешь, если и до этого видел, то символы будут удвоенные. Я использую putty.
   
RU GOGI #29.03.2012 07:10  @Non-conformist#28.03.2012 22:59
+
-
edit
 
Заархивируй папку проекта и выложи сюда - чтобы все настройки не скриншотить.
   
UA Non-conformist #29.03.2012 11:41  @GOGI#29.03.2012 07:10
+
-
edit
 

Non-conformist

аксакал

GOGI> Заархивируй папку проекта и выложи сюда - чтобы все настройки не скриншотить.
Вот проект из пролеченного IAR 5.5 - установил сегодня на рабочем компе. Тоже скомпилировалось без ошибок и тоже не мигает. Настройки поставил те же, что описывал выше.
Прикреплённые файлы:
 
   
RU GOGI #29.03.2012 12:05  @Non-conformist#29.03.2012 11:41
+
-
edit
 
У тебя выходной формат прошивки неправильный. Вот как нужно.
Прикреплённые файлы:
 
   
UA Non-conformist #29.03.2012 12:24  @GOGI#29.03.2012 12:05
+
-
edit
 

Non-conformist

аксакал

Большое спасибо! Всё работает! Пробую прошить авторскую прогу...
   
UA Non-conformist #29.03.2012 17:11  @Non-conformist#29.03.2012 12:24
+
-
edit
 

Non-conformist

аксакал

Non-conformist> Пробую прошить авторскую прогу...
Скомпилировал без ошибок. Прошил. Отсоединил программатор, нажимаю кнопку подачи трёхвольтового питания на плате устройства - включаются и постоянно светятся все восемь светодиодов. Посмотрел осциллографом - светятся действительно постоянно, т.е. прошива ногами вообще не дёргает.

Попробовал загрузить что-то из авторского GUI. Установил GUI, подключил мост USB-UART, в окошке появился номер порта - COM1. Натыкал мышкой точек по рабочему полю, нажимаю "Upload" - пишет "Connection failed". И всё. Пробовал трёхвольтовое питание, пятивольтовое, с подключенным ресетом, без него - никаких изменений. TXD><RXD, RXD><TXD, питание, земля и ресет. Пять проводков.

Меня смущает постоянное свечение порта "В" устройства. Такое впечатление, что прошивка вообще не работает. И поэтому и связь тоже не работает. Проект прилагаю...
Прикреплённые файлы:
 
   
UA Non-conformist #29.03.2012 17:35  @Non-conformist#29.03.2012 17:11
+
-
edit
 

Non-conformist

аксакал

Может фьюзы не так выставлены?

Тактовая частота 8 000 000 Гц - 0100
Делитель на восемь снят - 1
Select start-up time 0 установлен - 0
Select start-up time 1 снят - 1
Watchdog (WDTON) снят - 1
Детектор пониженного питания снят - 111
Предохранитель стирания EEPROM (EESAVE) снят - 1
RSTDSBL, само собой разумеется, снят - 1
Debug Wire Enable (DWEN) снят - 1
SELFPRGEN снят - 1
Локбиты сняты - 11
Прикреплённые файлы:
 
   
Это сообщение редактировалось 29.03.2012 в 17:50
RU GOGI #29.03.2012 17:39  @Non-conformist#29.03.2012 17:11
+
-
edit
 
Non-conformist> Посмотрел осциллографом - светятся действительно постоянно, т.е. прошива ногами вообще не дёргает.
Они и должны постоянно светить. В памяти одни FF при инверсии они дают 00, а это свечение светодиодов.
   11.011.0
UA Non-conformist #29.03.2012 17:42  @GOGI#29.03.2012 17:39
+
-
edit
 

Non-conformist

аксакал

Понял. Я думал, что все-таки какие-то мерцания на ногах должны быть, в программе же миллисекунды задержек фигурируют... А почему связи нет?
   
RU GOGI #29.03.2012 18:27  @Non-conformist#29.03.2012 17:42
+
-
edit
 
Для начала посмотри, какая скорость выставлена в свойствах ком-порта. Остальное завтра, с работы.
   11.011.0
UA Non-conformist #29.03.2012 20:05  @GOGI#29.03.2012 18:27
+
-
edit
 

Non-conformist

аксакал

Скорость (бит/с) 9600
Биты данных 8
Чётность нет
Стоповые биты 1
Управление потоком нет
Буфер приёма 14
Буфер передачи 16
Стоит галка "Использовать буферы FIFO (требуется совместимость UART c 16650)"
   
Слушай, а ты чего, RST моста соединил с ресетом МК? Так делать не надо, RST на мосту лучше вообще никуда не подключать, пусть в воздухе висит. Впрочем, в данном случае дело не в этом.
Посмотри, что у тебя при питании от батареи на пин D5 лог. 1, а при питании от USB моста лог.0 У тебя эта часть программы не отрабатывает, потому что по программе, при питании от порта светодиоды должны все погаснуть.
   11.011.0
1 18 19 20 21 22 38

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru