Beaglebone mmc0: error -110 whilst initialising SD card

Posted in Linux with tags , , , , , , , , on setembro 29, 2023 by Jack

Ao compilar o kernel Linux para a Beaglebone ( BeagleBoard.org ), deve-se ficar atento a qual DTB você irá carregar para as diferentes variantes da placa.

Na variante Beaglebone White é necessário carregar o am335x-bone.dtb, compilado a partir do am335x-bone.dts:

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
 */
/dts-v1/;

#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"

/ {
	model = "TI AM335x BeagleBone";
	compatible = "ti,am335x-bone", "ti,am33xx";

	chosen {
		base_dtb = "am335x-bone.dts";
		base_dtb_timestamp = __TIMESTAMP__;
	};
};

&ldo3_reg {
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <3300000>;
	regulator-always-on;
};

&mmc1 {
	vmmc-supply = <&ldo3_reg>;
};

Nota-se que a mmc1 ( mapeada como MMC0 durante o boot ) precisa habilitar a tensão de alimentação. Quando isso não é feito uma mensagem erro será exibida logo após o boot do kernel:

mmc0: error -110 whilst initialising SD card

Modemduino – Controlando um modem AT com Atmega8 e Arduino

Posted in Planeta with tags , , , , , , , on novembro 13, 2015 by Jack

A necessidade é a mãe da invenção, pois, tive a necessidade de resetar um modem ADSL enquanto estava viajando e não perder o acesso remoto aos meu dados. Pra isso tiver que chamar um amigo, pra ir lá na cara do modem e resetá-lo. Muito incomodo pro coitado. Então juntei um antigo modem externo do tempo da internet discada com um Atmega8 e dois relés pra fazer o Modemduino, e controlar os relés remotamente via chamada de voz e o tom das teclas do telefone.

Para confeccionar a placa usei uma técnica bem conhecida, que é explicada neste vídeo do youtube e outros que estão disponíveis lá.


Modemduino


Modemduino Esquemático em PDF: Modemduino Esquemático

A seguir o código fonte do arquivo modemduino.ino:

#include <avr/wdt.h>
#include <avr/interrupt.h>

char inSerial[40];
int i=0;
int ledPin = 8;
int rele1 = 2;
int rele2 = 3;
//boolean x = false;
unsigned long agora;
unsigned long antes;

ISR(TIMER1_COMPA_vect)
{
//x=!x;
setaLed(false);
setaReles(false,false);
TCCR1B =  (0 << CS10) | (0 << CS11) | (0 << CS12);
}

void setup() {
wdt_disable();
//pinMode(9, OUTPUT);
//digitalWrite(9,HIGH);

//
DDRB = 0x01;
DDRD |= (1 << 2) | (1 << 3);

//setaLed(true);

TIMSK |= (1 << OCIE1A);

TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;

OCR1A = 30000;
//TCCR1B |= (1 << WGM12)| (0 << CS10) | (0 << CS11) | (1 << CS12);
interrupts();

Serial.begin(57600);

//piscaLed(ledPin);
setaLed(true);
Serial.println(“ATH0”);
delay(100);
readresponse();
setaLed(false);
delay(5000);
initvoicemodem();
setaLed(true);

//piscaLed(100);
wdt_enable(WDTO_2S);
antes = millis();

}

void loop() {
//digitalWrite(ledPin, x);
//setaLed(x);
readresponse();
//setaReles(false,true);
//wdt_reset();

//delay(200);
agora = millis();
if ((agora-antes)>60000) {
setaLed(false);
wdt_enable(WDTO_15MS);
delay(3000);
}

}

void setaLed(boolean x){
if (x) PORTB = 0x01;
else PORTB = 0x00;
}

void setaReles(boolean rl1,boolean rl2){
if (rl1) PORTD |= (1 << 2); //seta rl1
else PORTD &= ~(1 << 2);
if (rl2) PORTD |= (1 << 3); //seta rl2
else PORTD &= ~(1 << 3);
}

void readresponse(){
i=0;
char number;
boolean desliga = false;
wdt_reset();

if (Serial.available() > 0) {
while (Serial.available() > 0) {
inSerial[i]=(Serial.read());
delay(10);
i++;
}

inSerial[i]=’\0′;

//int k = 0;
for (int j=0;j<i;j++) {
if (inSerial[j]==16)  {  //DLE
number = inSerial[j+1];
if ((number >=’0′) && (number <= ‘9’)) {
setaLed(true);

if(number==’1′) {
setaReles(true,false);
TCCR1B |= (1 << WGM12)| (0 << CS10) | (0 << CS11) | (1 << CS12);
}

if(number==’2′) {
setaReles(false,true);
TCCR1B |= (1 << WGM12)| (0 << CS10) | (0 << CS11) | (1 << CS12);
}

if(number==’0′) {

wdt_enable(WDTO_15MS);
}

break;
}

}

}

inSerial[0]=’\0′;
}
}

void initvoicemodem() {
Serial.println(“AT+FCLASS=8”);
delay(100);
readresponse();

Serial.println(“ATI6”);
delay(100);
readresponse();

Serial.println(“ATS0=4”);
delay(100);
readresponse();

Serial.println(“AT&D0”);
delay(100);
readresponse();

Serial.println(“ATT”);
delay(100);
readresponse();

delay(1000);
}

Conjunção da Lua, Júpiter e Vênus

Posted in Astronomia, Planeta with tags , , , on março 25, 2012 by Jack

Neste fim de tarde de domingo, dia 25 de março de 2012, pode ser observado um fenômeno astronômico raro, a conjunção da Lua, Júpiter e Vênus. Clique na foto para abrí-la em alta resolução (aprox.3MB).

Conjunção da Lua, Júpiter e Vênus

O Duelo

Posted in Humor with tags , , , on outubro 13, 2011 by Jack

 

 

O Duelo

O Duelo.

(Copiado de http://www.loltops.org/funny-gun-fight/)

 

 

 

 

 

 

 

 

Curitiba teve Iridium Flare de intensidade máxima encoberto pelas nuvens.

Posted in Astronomia, Planeta with tags , , , , on outubro 3, 2011 by Jack

Após semanas de espera, poderemos observar um Iridium Flare de intensidade máxima hoje, 3 de outubro de 2011. O fenômeno é o reflexo do Sol nos painéis de um satélite Iridium, que formam uma rede de telefonia via satélite de mesmo nome. Para mais informações sobre o sistema Iridium e os Iridium Flares, acesse o link: https://icatorze.wordpress.com/2009/04/16/iridium-flare/

O Iridium Flare de hoje será no satélite Iridium 7 e terá magnitude -8, considerado máximo para o fenônemo.

O ponto de maior intensidade será nas coordenadas 25.4265°S 49.2716°W, próximo ao Largo da Ordem. Como o raio do reflexo é de aproximadamente 10km, ele poderá ser observado em sua intensidade máxima de praticamente qualquer lugar da cidade.

O satélite começará a aparecer por volta das 18:53, próximo a Lua e seguirá para o Sul. O flare ocorrerá por volta de 18:55 num ângulo de 44° acima do horizonte e na direção 180°, o que corresponde exatamente na direção Sul.

Infelizmente, o amado clima curitibano não permitiu a observação do flare. O céu vinha limpo até as 18:15 quando as nuvens começaram a chegar carregadas pelo leste. Estarei atento para os próximos e aguardando que venha com um céu limpo.

20 anos do disco Nevermind do Nirvana

Posted in Planeta with tags , , , , , , , on setembro 23, 2011 by Jack

Nevermind

Nevermind

Amanhã, 24 de setembro de 2011, completam-se 20 anos do lançamento do disco Nevermind, o  mais expressivo da banda Nirvana.

Nevermind foi o segundo disco da banda de Seattle, onde Kurt Cobain afrouxou a influência do cenário grunge da época e usou a influência de bandas como Pixies, R.E.M. e The Smithereens.

Kurt Cobain, Krist Novoselic e David Grohl, que havia se juntado a banda em 1990, gravaram o disco no estúdio Sound City Studios in Vans Nuys, na Califórina, em maio e junho de 1991.  Para pagar o combustível das viagens entre Seattle e Vans Nuys, a banda promoveu um show onde tocaram pela primeira vez Smeels Like Teen Spirit.

A primeira tiragem foi de 46251 cópias, sendo 35000 cópias destinadas ao mercado inglês, onde o disco Bleach havia feito bastante sucesso. A estimativa otimista da Geffen Records era que o disco vendesse 250 mil cópias. Mas em janeiro de 1992,  o álbum já havia batido Michael Jackson como número 1 na Billboard e eram vendidas 300000 cópias por semana.

Atualmente já foram vendidas mais de 30 milhões de cópias de Nevermind.

Pra fechar assista o clip de Smeels Like Teen Spirit:

Breve História Ilustrada da Humanidade

Posted in Planeta with tags , , , on agosto 5, 2011 by Jack

Origem da humanidade - thumbnail

Esta é uma ilustração resumida da história da humanidade. O que há de comum em todos os quadros é: guerra, mulheres, sexo e intriga.

CUIDADO: algumas passagens podem ser ofencivas para alguns públicos por conter cenas explícitas da humanidade.

Fonte: http://obviousmag.org/en/archives/2007/04/brief_illustrated_history_of_mankind.html

Breve História Ilustrada da Humanidade

Breve História Ilustrada da Humanidade

Enquanto isso em Esparta

Posted in Humor with tags , , , on julho 12, 2011 by Jack

Leonidas x Chuck Norris

——————————————————————————————–

Posted in Sem categoria on julho 12, 2011 by Jack

————————————————————————–

Terremoto de 7.7 graus causa tsunami nas ilhas Mentawai na Indonésia

Posted in Planeta, Terremotos with tags , , , , , on outubro 28, 2010 by Jack

Um terremoto de 7.7 graus causou um tsunami nas Ilhas Mentawai na Indonésia, nesta segunda-feira 25 de Outubro de 2010, as 12:42 hora de Brasília, 21:42 hora local. O tremor foi detectado a 240 km de Bengkulu em Sumatra, a 20.6 km de profundidade.

O tsunami gerado pelo terremoto, já pode ter matado mais de 500 pessoas nas ilhas Mentawai, onde o sistema de alerta de tsunamis não foi instalado.