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

Atmega128 и DS1307 через порт G

Здравствуйте!

Решил поработать с микроконтроллерами фирмы ATMEL и чтобы не тратиться я решил найти какую-нибудь готовую плату с микроконтроллером. Поискав на работе среди хлама, нашёл плату с микроконтроллером atmega128-16au. Плата от какого-то анализатора и поэтому имеет дисплей (hd4478), кнопки (6шт.), светодиоды (11шт.), а так же впаяна микросхема реального времени ds1307 c которой и возникли проблемы.

 

С кнопками, светодиодами и экраном проблем не возникло - всё работает, а вот с микросхемой ds1307 проблемы - не могу запрограммировать.

 

Начну с того что пишу в CodeVisionAVR v3.12 и микросхема припаяна к порту G микроконтроллера (PORTG.3 и PORTG.4). В программном обеспечении CodeVisionAVR в визарде можно настроить всё пару кликами мыши, но проблема в том что там нет выбора порта G (PORTG)!!! Пробовал без визарда т.е. вручную забить порт G, но выходит ошибка что типа превышен диапазон.

 

#asm

.equ __i2c_port=0x65;

.equ __sda_bit=4;

.equ __scl_bit=3;

#endasm

 

Паяли это всё на заводе и прикол в том что эта плата работала на реальном оборудовании! Я же просто хотел перепрограммировать её чтоб поучиться)))

 

Ну и собственно вопрос: как можно реализовать работу ds1307 на порту G ?

Поделиться сообщением


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

Ну и собственно вопрос: как можно реализовать работу ds1307 на порту G ?

вытащите даташит на m128 и посмотрите для чего предназначены G3/G4..

в вашем случае работу можно реализовать программным i2c-gpio, т.е. управлять контактами эмулируя TWI шину..

 

Поделиться сообщением


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

Начну с того что пишу в CodeVisionAVR v3.12 и микросхема припаяна к порту G микроконтроллера (PORTG.3 и PORTG.4). В программном обеспечении CodeVisionAVR в визарде можно настроить всё пару кликами мыши, но проблема в том что там нет выбора порта G (PORTG)!!! Пробовал без визарда т.е. вручную забить порт G, но выходит ошибка что типа превышен диапазон.

 

Порт G находится в области оперативной памяти, поэтому обращение к нему через команды работы с оперативкой (lds/sts кажется). Ну и адреса соответствующие. Смотрите в доке - там всё написано.

Поделиться сообщением


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

Короче далёк я от этого. Пытался понять как это реализовать, но потом сдался и отрезал дорожки и припаял на свободные концы МК.

 

 

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

Поделиться сообщением


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

CodeVisionAVR в топку! Используйте avr-gcc.

 

Для начала лучше:

https://sourceforge.net/projects/winavr/files/

 

потом, когда вдруг потребуется что-то свеженькое:

http://www.microchip.com/development-tools/atmel-studio-7

+

http://www.atmel.com/ru/ru/tools/ATMELAVRT...FORWINDOWS.aspx

 

Поделиться сообщением


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

Memphis правильно писал-

В контроллере АТМега128 команды обращения к портам F и G немного отличается от обращения к остальным (А-Е) портам,

например команда ассемблера OUT заменяется на команду STS,

а команда IN на LDS (по информации от Atmel из-за удаленности в карте адресов этих портов)

 

Поэтому все обращения к этим портам F,G (даже инициализация выводов этих портов) команды IN и OUT не работают.

Ваша команда

.equ __i2c_port=0x65;

не разрешит обращаться по команде IN R16,0x65 , но разрешит по команде LDS R16,0x65

Это надо объяснить CodeVisionAVRу.

Сам стандартный порт I2C находится на D0(SCL), D1(SDA) порту.

Самое легкое - переназначить на них выводы

 

 

 

 

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

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