Прошу помощи в соединение мк с памятью

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

В клаве тоже думаю поставить мк, а то на основном может ног не хватить
Реклама
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Помогите, пожалуйста, еще и с написанием программы. Нигде не нашел примеров. Хорошо хоть в теории понял как это реализовать.
Реклама
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

начинающий пояльщик писал(а):Помогите, пожалуйста, еще и с написанием программы. Нигде не нашел примеров.
Даже на первой странице этого топика ?

Даже в Апноутах AVR ?
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Abaktyсh, пожалуйста, поделись кодом на ассемблере а не на с! Я уже вник в ассемблер а с не знаю вообще!
Реклама
Эиком - электронные компоненты и радиодетали
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

На АСМе наверно в даташите на АТмеги есть - посмотри.
Реклама
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Не кода не нашел в даташите есть только страничка about code examples. Еще нашел интересующий меня вопрос - РОН там с R0 по R31
Реклама
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

Какой МК у вас ?
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Пока по вашему совету atmega8. Вот даташит: http://www.atmel.com/dyn/resources/prod ... oc2486.pdf
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

тогда раздел "SRAM Data Memory" - это рабочие регистры общего назначения - РОН
"The 32 general purpose working registers" R0 ... R31

В ДШ ATmega8 в разделе "Two-wire Serial Interface" все подробнейше расписано, есть диаграммы сигналов и есть таблица с примерами на АСМ-е и на Си.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Спасибо большое! Пойду вникать в дебри английского...
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Вот что у меня(разумеется с вашей помощью) пока получилось:

.cseg
.org 0

ldi R15, (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);старт
out TWCR, r15

ldi R15, 10100001;посылает адрес устройства памяти и 1 - код чтения
out TWDR, r15

testACK: in R15, TWSR
andi R15, 0xf8
cpi R15, MT_SLA_ACK;проверяет наличие ответа от памяти
brne testACK;подразумевается что память работает, поэтому
;программа может ждать ответа бесконечно пока не получит



;далее чтение памяти и посылка ответа. Я что то не понял как это сделать




ldi R15, (1<<TWINT) | (1<<TWEN) | (1<<TWSTO)
out TWCR, r15;ну и стоп
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

Я АСМ-мом не балуюсь но навено СТАРТ нужно прописывать.
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

ldi R15, (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);старт
out TWCR, r15
енто вроде он. Покрайнеймере так я понял из даташита...
Мявтор!
Аватара пользователя
Сообщения: 825
Зарегистрирован: Вс дек 18, 2005 20:04:42
Откуда: Свердловская обл.

Сообщение moLCHec »

вот мои нароботки всё работает, только после записи надо подождать около 50мкс или дольше. прежде чем к памяти обращаться снова. функции чтения и записи проверяют TWSR и если значения соответствуют не корректной работе возвращается код ошибки. Работал с 24С512 выводы адрессов заземлял.
Вложения
twi_eeprom.txt
исходник на Си но алгоритм понятен на асму за полчаса(час) можно переделать
(7.79 КБ) 480 скачиваний
Настоящий кот всегда либо голоден,
либо невыспался ...
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Понял, что проще подучить С... Появилось несколько вопросов:
1) вопрос к moLCHec - а откуда эта библиотека функций для работы с i2c?
2) можно ли в мк где i2c реализована на аппаратном уровне сразу использовать функции из той библиотеки(всмысле сразу старт)?
3) как в С проверить существует ли переменная(точнее эллемент массива)?

Еще посоветуйте пожалуйста небольшой экранчик по этой шине.
Зарание благодарю.
P.S. Abaktyсh, извените, что гнал на курс - перечитал все понравилось, просто поначлу в глазах зарябило от обилия рекламы и разных цветов.
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

начинающий пояльщик писал(а):P.S. Abaktyсh, извените, что гнал на курс - перечитал все понравилось
Ни чего страшного. Рад что чем то помог.
начинающий пояльщик писал(а):2) можно ли в мк где i2c реализована на аппаратном уровне сразу использовать функции из той библиотеки(всмысле сразу старт)?
Вот я щас запустил мастер кода CVAVR и в нем включил TWI (ярлык 2 wire) затем посмотрел текст - там такие строчки:

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

// 2 Wire Bus initialization
// Generate Acknowledge Pulse: Off
// 2 Wire Bus Slave Address: 0h
// General Call Recognition: Off
// Bit Rate: 230,625 kHz
TWSR=0x00;
TWBR=0x00;
TWAR=0x00;
TWCR=0x04;
Наверно теперь можно слать СТАРТ.
начинающий пояльщик писал(а):как в С проверить существует ли переменная(точнее эллемент массива)?
Не понял вопрос. Именно существование ? или что в нем хранится ?

начинающий пояльщик писал(а):посоветуйте пожалуйста небольшой экранчик по этой шине.
Для i2c дисплеи от сотовых бывают.

Вот Апноут infineon.com AP2427 "Using an I2C LCD"
http://www.infineon.com/upload/Document ... 02701_.pdf

исходники
http://www.infineon.com/upload/Document ... 242701.exe

Можно вот такой переходничек сделать к обычному LCD
http://lcd.strony.pl/d-104v1.htm
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

как в С проверить существует ли переменная(точнее эллемент массива)?



Не понял вопрос. Именно существование ? или что в нем хранится ?
Есть массив неизвестной длинны, но заведомо меньший чем позволяет вместить память. Я думаю неиспользованную память забить нулями, тоесть в цикле пройтись по всем ячейкам памяти, и если эллемент массива для данной ячеки существует то положить туда его значение а если нет, то 0. В таком случае будет упрощено чтение. Хотя если существует функция проверяющая записанно ли что то в ячейку, то проще будет воспользоваться ей при чтении.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18677
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

начинающий пояльщик писал(а):



Не понял вопрос. Именно существование ? или что в нем хранится ?
Есть массив неизвестной длинны, но заведомо меньший чем позволяет вместить память. Я думаю неиспользованную память забить нулями, тоесть в цикле пройтись по всем ячейкам памяти, и если эллемент массива для данной ячеки существует то положить туда его значение а если нет, то 0. В таком случае будет упрощено чтение. Хотя если существует функция проверяющая записанно ли что то в ячейку, то проще будет воспользоваться ей при чтении.
Как-то странно поставлена задача: массив неизвестной длины...
Почему его длина неизвестна? Кому она не известна? Обычно, в нормальных программах так не бывает: всегда должно быть все известно хотя бы самому программисту... Может, тут что-то не так?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт мар 20, 2007 19:09:54

Сообщение начинающий пояльщик »

Я имел ввиду текст набранный с клавиатуры - ты же не знаешь какой он будет длинны.
Вечно гонимый
Аватара пользователя
Сообщения: 232
Зарегистрирован: Ср фев 28, 2007 17:48:07

Сообщение Abaktyсh »

Дак программист определяет куда и как будут помещаться данные, можешь просто посчитать их и сохранить число.
Закрыто

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